【发布时间】:2018-08-20 11:23:44
【问题描述】:
我正在做一个项目,管理员可以创建一个卡片模板,他们可以在其中插入占位符变量,如 {first_name}、{last_name}、{website} 等。然后通过让用户填写来创建卡片他们的名字,姓氏等。所以基本上占位符将替换为用户提供的实际内容。为此,我从管理员创建的模板创建 SVG 图像,并将这些占位符变量替换为服务器端的用户数据。
问题是,如果用户提供的内容太长,那么它可能会超出画布边界,因此在打印实际卡片时可能会被截断。
有没有办法检测到,在替换占位符后,画布元素延伸到画布边界之外?如果是这样,有没有办法找到该元素并使其缩小直到它适合边界?基本上,我想要this 之类的东西,但在服务器端。
这是我用来生成 SVG 图像的一些示例代码:
$message_string = array('{first_name}','{last_name}');
$replace_string = array('Fist Name of User','Last Name Of User');
$front_svg_url = $svg_url.$res_code[0]['front_side_svg_image'];
$front_raw_svg = file_get_contents($front_svg_url);
$front_side_svg = str_ireplace($message_string, $replace_string, $front_raw_svg);
$file_name = uniqid($prefix).".svg";
$file_handle = fopen("$folder_name/".$file_name, 'w');
fwrite($file_handle, $front_side_svg);
fclose($file_handle);
在服务器端我只是替换变量,所以我不确定如何在服务器上实现这一点。我对任何可以实现我预期输出的想法持开放态度。
【问题讨论】:
标签: javascript php canvas svg fabricjs