我被要求制作一个php软件,管理员/用户可以导入certificate of attendance模板,然后导入名称列表,然后该软件应该会生成带有列表中的名称的证书映像。
我的初步想法是,证书应该是图像形式的,并有一个占位符替换为名称,例如:

在这里,我们可以用列表中的名称替换<Type Person's Name Here>占位符。
不幸的是,这一切都是理论上的,我不能仅仅在.jpg或.png文件中搜索占位符来替换它。
经过一些研究,我发现一些网站提供的证书模板是一种开放标准的.ai和.eps,都可以用Adobe Illustrator打开,然后你会发现所有的文本都是可编辑的,你可以简单地替换名称占位符example。
问题是,这两种文件类型都是专有的,我怀疑我能否找到一个php库来轻松地编辑它们。
这与20253386中的情况非常相似,除了需要更改证书模板之外,如果我只有一个证书模板,那么我只需要知道名称占位符的坐标并使用Imagick::annotateImage,但对于可导入的模板,我不知道应该根据证书设计放置名称。
那么我还有什么其他选择呢?是否有用于图像模板的开放标准?有没有其他方法来解决这个问题?
发布于 2020-05-13 13:48:40
我会将坐标的问题推给用户,并为模板图像设计一些简单的编码系统,可能使用文件名。例如,如果您有两个文件:
CertificateOfAttendance2020 name@200,200 description@200,300 date@100,500.png
CertificateOfEnrolment2020 name@200,200 date@100,500.png你可以解析它们的名字,比如拆分空格,取第一个作为名字,把其他的拆分成@,取第一个比特作为字段的名称,第二个比特作为放置位置的x,y。
在选取器中向用户显示模板名称部分。当他们选择例如出勤证书时,说“此证书需要三个额外的信息”,并将这些字段动态放入您的UI中:
Name:
Description:
Date: defaulted to today或者当他们选择注册时,只需向他们显示两个字段
让用户输入他们想要的东西,使用一些工具将这些东西放在坐标上。它是设计图像的人,应该提供坐标。如果你也为此编写了一个工具,那么这个工具就可以命名这个文件。也许你可以有一些方法来编码左/右/居中对齐,字体大小和字体。也许最终您只需要在文件名中添加一块css,然后丢弃整个文件,并将其替换为一个描述世界上最复杂证书的html文件,并且在html中包含占位符,图像将只是一个背景:)
生成图像,可以是一个像imagemagick这样的图像库,你可以将其作为html div,使用大图像和绝对位置,然后使用例如wkhtmltopdf来使其成为pdf。有很多选择,我们不是为你设计它的.(尽管它看起来可能就是我做的)。我们没有“为你设计你的系统”的原因是,什么是最好的是相当主观的,并且没有正确的答案--我上面谈到的方法可能有很多缺陷,可能使它不适合你的环境。我的观点纯粹是,你需要找到某种方法来存储/关联你需要询问的数据(名称,描述)和图像,该图像提供了背景和信息,驱动这些东西应该放在哪里-我试图让这个“答案”充满“可以做”和“也许”,而不是“应该做”,因此我真的认为它只是对一个基本上离题的问题的扩展评论-这里只有一个事实真正使它成为一个答案(上面以粗体显示)
https://stackoverflow.com/questions/61762704
复制相似问题