从PHP站点生成大量图像,然后合并成PDF(1000到10000页)

从PHP站点生成大量图像,然后合并成PDF(1000到10000页),php,pdf,imagemagick,gdlib,Php,Pdf,Imagemagick,Gdlib,我已经创建了一个站点,在OpenCart上构建了一个自定义模块。它允许您在线设计名片、宣传册或明信片(类似vistaprint,但更简单),并生成打印就绪文件 请求的功能之一是用于明信片的邮件合并类型功能。基本上,客户将创建他们的设计,然后上传一个csv文件,其中包含他们希望将文档邮寄到的名称和地址 我的想法是,订单下达后,服务器上的脚本将遍历csv文件,并为每一行创建一个图像。基本上是将邮寄地址插入图形并将其保存为副本。一旦完成,它会将它们打包成pdf,并向打印机发送一个下载文件的链接 如果他

我已经创建了一个站点,在OpenCart上构建了一个自定义模块。它允许您在线设计名片、宣传册或明信片(类似vistaprint,但更简单),并生成打印就绪文件

请求的功能之一是用于明信片的邮件合并类型功能。基本上,客户将创建他们的设计,然后上传一个csv文件,其中包含他们希望将文档邮寄到的名称和地址

我的想法是,订单下达后,服务器上的脚本将遍历csv文件,并为每一行创建一个图像。基本上是将邮寄地址插入图形并将其保存为副本。一旦完成,它会将它们打包成pdf,并向打印机发送一个下载文件的链接

如果他们将它发送给100人或更少的人,这将非常有效,但是如果他们想将它发送给10000人,我认为它不起作用

有没有人有过制作大量图形和巨型PDF的经验?如果是这样的话,我会喜欢他们关于如何实施它的建议

我完全控制服务器,可以安装或修改服务器上的任何软件。它是Cent OS,包含PHP、MySQL和works。我没有安装任何额外的pdf扩展,因为我还不需要它们,但我可以添加它们

其他说明:

- The resolution will be at 300dpi. Meaning each page of the pdf will be as much as 2,550 x 3,300px
- The final product doesn't have to be a pdf, it just needs to be a single file and printable
- I am currently rendering the graphics as a jpg or png

我确实计划在所有模块正常工作后将其发布到OpenCarts扩展目录中,因此,如果它适合任何人的需要,它将在所有模块正常工作后出现。

如果您有权访问box,请安装ImageMagick,然后使用“转换”应用程序

convert *.jpg pdf/export.pdf -density 960x570 -units PixelsPerInch

是一个很好的工具,可以让PDF脱离。不是免费的,但我从中得到了很好的效果。你可以试用一下。。。。唯一的缺点是它会在生成的pdf的屏幕版本上显示水印(而不是打印)。如果你用它做了这么重的事情,它是值得的。谢谢你的建议。我没有试过。3800美元的标价有点吓人。我一直在玩mPDF(),这似乎是类似的。我可以设置pdf的bg图像,这允许我反复使用相同的图像。然后我可以用纯文本把地址信息放在上面。这是一个局部解决方案,还不是100%。它给了我非常合理的文件大小,一个10000页的pdf文件设置为4“x6”,300dpi,最终只有10mb。它仍然在杀死服务器来处理文件(150mb ram和10分钟的运行时间)。我的下一步是浏览mPDF代码并删除我不需要的任何类/函数,看看它对性能的影响有多大。在静态背景上进行邮件合并可能有些过分。除非PDF是可交付的,否则就创建PDF而言,将处理过程脱机可能是有意义的。在prince的帮助下,我每3分钟打印出约900本12页的书(约5400 12x18页)。可变图像、图表、9种不同语言。。。。那是个怪物。