Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 邮件在RubyonRails中合并,但数量很大_Ruby On Rails_Ruby_Pdf_Printing_Mailmerge - Fatal编程技术网

Ruby on rails 邮件在RubyonRails中合并,但数量很大

Ruby on rails 邮件在RubyonRails中合并,但数量很大,ruby-on-rails,ruby,pdf,printing,mailmerge,Ruby On Rails,Ruby,Pdf,Printing,Mailmerge,我试图在RubyonRails3.2中实现打印文档的邮件合并。我在Microsoft Word中有大约8000个收件人和模板来源。模板包括图像(照片),包含约10-20页 实际情况是,我将原始模板重写为纺织(红布),图片是从互联网(http地址)插入的。我做了所有的个性化等,所以我生成的HTML文件,并必须将它分成许多小文件,每个1000页。总计我需要打印约8000 x 20页=160.000页 有人知道如何从HTML打印成PDF吗?或者如何插入用于更换纸盒(第一页和最后一页)或每20页后装订的

我试图在RubyonRails3.2中实现打印文档的邮件合并。我在Microsoft Word中有大约8000个收件人和模板来源。模板包括图像(照片),包含约10-20页

实际情况是,我将原始模板重写为纺织(红布),图片是从互联网(http地址)插入的。我做了所有的个性化等,所以我生成的HTML文件,并必须将它分成许多小文件,每个1000页。总计我需要打印约8000 x 20页=160.000页

有人知道如何从HTML打印成PDF吗?或者如何插入用于更换纸盒(第一页和最后一页)或每20页后装订的命令等


感谢您的任何想法:-)

这里有一个想法:在rails应用程序中,将其设置为每个用户返回一个html。另外,还有一个nice/users/index方法,它以某种方便的方式(可能是json格式)返回用户列表

现在,您需要一个本地脚本,用ruby、bash或任何方便的语言编写,以:

  • 从/users/方法中获取用户列表,可能会将其保存到文件中
  • 循环浏览用户列表(从文件中,这样他们就不会全部在内存中),并获取电子邮件的HTML
  • 从下载的每个HTML生成pdf,可以在循环内,也可以在保存HTML的目录中循环文件。使用wkhtmltopdf或类似文件
  • 将每个pdf发送到打印机,再次在同一循环内发送,或在保存的pdf上循环发送

如果您想变得更花哨、更高效一点,可以使用诸如resque之类的排队系统,将这些要点中的每一个都放入一个队列中,并在每个队列中运行一个worker。这样,当其他PDF文件仍在下载和转换时,您就可以开始打印一些PDF文件,因此总体而言,打印时间应该更短。但是,如果您还不熟悉这样的排队系统,也应该用一个简单的脚本来完成。

当您说“邮件合并”时,您的意思是“模板替换”,对吗?是的,我知道。在Word中,我们使用了邮件合并…您能使用吗?wkhtmltopdf中的每个页面大约为500kb=>160000页x500KB=74.5GB:-(您将74GB拆分为8000个用户,每个用户仅为10MB。减去压缩(zip、gzip等),这听起来没什么大不了的。