创建自定义打印就绪图像


Create a custom print ready image

我希望创建一个小应用程序,允许用户为一本书创建自定义封面。客户不希望只提供客户选择的内容,而是提供可打印的300dpi JPEG或PDF。

我知道PHP可以处理这些。但定制似乎有点难做好。我尝试过使用画布来创建客户端预览,它工作得足够好。

只是为了看看我是否在浪费时间试图重新创造轮子,有人知道我需要的东西是否已经存在吗?

基本上和这个有点类似,但是用于创建可打印的图像。

谢谢!

如果您正在使用Canvas构建编辑器,为了获得最佳效果,我建议您在服务器上使用任何适合PHP需求的技术重新渲染自定义,而不是试图将他们正在查看的图像发送到服务器以使其工作。如果你以标准方式使用Canvas, DPI将是错误的(它将在屏幕上DPI)。

例如,如果他们有能力放置图像,那么只需注意坐标并将图像放置在web服务器以300 DPI创建的图像中。文本,同样的东西,等等。是的,这将是额外的工作,但它应该是更高的质量和更好的一致性。

这意味着有一个简单的序列化格式来表示发送到web服务器的自定义封面。

您可能能够使用SVG,但是您必须引入可靠的SVG来进行PDF转换并处理字体。也许是这样的?(我不确定构建SVG编辑器是否比基于Canvas的编辑器更容易)。

从你的"work ok enough预览"开始,jsPDF将能够在浏览器中轻松生成PDF。

  • 将画布转换为图像/jpeg (toDataURL将是您最好的朋友)
  • 实例化一个jsPDF对象,添加图像
  • 输出jsPDF对象

棘手的细节:

    注意,你的屏幕显示的东西是72dpi,但打印的期望是300dpi。所以你可以放大画布然后在pdf文件中绘制图像pdf
  • 注意跨域资源:如果你使用的是你域名以外的图片,你注定要失败(或者你需要一个代理)