coldfusion - cfprint与大型假脱机文件有关

时间:2014-06-18 20:21:37

标签: pdf printing coldfusion spool cfprint

我正在使用ColdFusion的cfprint从目录中打印多个PDF。我遇到的问题是,当文件假脱机到打印机时,文件的大小会急剧增加并减慢一切。文件夹中的文件是125K,当它在打印机假脱机中时,它增加到15.7MB。这是ColdFusion代码:

<cfprint 
    source="[FILELOCATION]/[FILE].pdf" 
    color="yes" 
    printer="[printer name]">

文件最终会打印,但最多可能需要15-20分钟。有没有人有这个问题的解决方案?我尝试过使用CF生成的PDF和我从头开始创建的PDF。感谢

1 个答案:

答案 0 :(得分:2)

一次排队两到五个。暂停以允许处理。将它们标记为已打印,移动或删除它们,移至下一批...自行计时以查看您需要多长时间允许。这样你就不会为服务器复合大量工作,并在你的CF服务器上造成瓶颈。

如果您只是在一台服务器上执行此操作,请考虑使用辅助低优先级服务器并运行开发人员版 全额支付符合EULA标准的Coldfusion注册版(或Railo并且将该服务器专用于打印,以便您的其他服务器可以执行有用的操作。

修改

所以OP有一个Coldfusion打印瓶颈。在您执行打印的服务器中(我假设您的CF服务器相同?)如果这是一个Windows服务器(不确定您的服务器版本),则有打印队列文件夹。如果您有权访问此文件夹,则可以执行一些操作。您可以创建一种方法,将文件FTP到此文件夹(如果它是同一台服务器,则复制)。打印机将排队作业并关闭它。您可以执行一些功能,例如检查打印队列中的文件计数。如果文件计数大于零,请在15分钟后再回来查看。如果计数为零,则复制几个文件。

您将在CFAdmin中创建计划任务并自动执行。有一个getprinterInfo(),因此您可以检查打印机是否脱机,如果您需要重新路由打印作业,还可以执行其他操作,例如检查其他打印机。您还可以设置多个打印服务器并将打印机连接到它们,然后点击多个打印服务器并检查打印队列文件夹。

魔术是无止境的,目标是将工作偏移到Coldfusion服务器之外的其他东西。

所以回顾一下:

  • 不做cfprint分离关注
  • 如果可以的话,创建到其他priters的转义路径。
  • 如果必须使用coldfusion,则排队专用的Coldfusion服务器以进行打印管理。
  • 使用getPrinterInfo()并转储内容以查看可以使用的内容,陷阱等。
  • Ben forta has a tool that can check for several printers, consider incorperating this.
  • 接下来使用cfftp(如果您在同一台服务器上,则使用cffile),前提是您可以访问和复制文件以打印队列文件夹,根本不使用cfprint。

Here is a link on print spool stuff (another link in the doc shows you how you can change the spool location).

当它结束时,你将成为具有逃生路线和检查以及一切的冷血印刷大师。