【发布时间】:2020-05-12 21:55:27
【问题描述】:
我被要求制作一个 php 软件,如果管理员/用户可以导入 certificate of attendance 模板,然后导入名称列表,那么该软件应该会生成带有列表中名称的证书图像。
我的初步想法是证书应该是图片形式,并有一个占位符可以替换为名称,例如:
在这里,我们可以将<Type Person's Name Here> 占位符替换为列表中的名称。
不幸的是,这都是理论上的,我不能只在 .jpg 或 .png 文件中搜索占位符来替换它。
经过一番研究,我发现一些网站提供了一种开放标准的证书模板.ai和.eps都可以通过Adobe Illustrator打开然后你发现所有的文本都是可编辑的,你可以简单地替换名称占位符example。
问题是这两种文件类型都是专有的,我怀疑我是否可以找到一个 php 库来轻松编辑它们。
这和20253386的情况很相似,只是需要更改证书模板,如果我只有一个证书模板那么我只需要知道名称占位符的坐标并使用Imagick::annotateImage但是对于可导入的模板,我不知道应该根据证书设计放置名称。
那么我还有什么其他选择?是否有任何开放标准可用于图像模板?有没有其他方法可以解决这个问题?
【问题讨论】:
-
我认为你想错了;图像不是您在里面“搜索这些字符,用这些字符替换”的字符串。加载图像,然后在其上绘制一个字符串并保存。 google.com/search?q=php+draw+text+on+image
-
如果您使用 SVG 图像可能会起作用,因为它只是带有纯文本的标记。
-
PDF 文档可以吗?我过去曾使用FPDF 做这种事情(发票,但同样的程序也可以)。导入 PNG 或 JPG 背景图像,并添加文本对象以填写每个证书的详细信息。导入和嵌入字体很容易,您可以使用 GetStringWidth 函数创建居中文本。
-
@CaiusJard 我知道无法搜索图像,这就是为什么我说这只是一种理论思考,正如我所说,在图像上写文本是不可能的,因为我需要知道将文本写入到的坐标,并且由于管理员/用户可以设计自定义模板并导入它,我无法知道这些坐标
-
CSS,使用您的证书作为背景图片,然后将文本放在应该显示文本的 div 上。您可以嵌套文本 div 并使用网格或引导程序或普通 ole CSS。
标签: php adobe-illustrator image-editing