2

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

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

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

4

1 回答 1

2

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

如果您只是在一台服务器上执行此操作,请考虑使用次要的低优先级服务器并运行为符合 EULA 的 Coldfusion(或 Railo)注册版本全额付费的开发人员 版本,并将该服务器专门用于打印,以便您的其他服务器可以做有用的事情。

编辑

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

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

魔法是无穷无尽的,目标是将工作抵消到您的 Coldfusion 服务器以外的东西上。

回顾一下:

  • 通过不执行 cfprint 来分离关注点
  • 如果可以的话,创建通往其他 priters 的逃生路线。
  • 如果您必须使用coldfusion,请排队使用专用的Coldfusion 服务器进行打印管理。
  • 使用 getPrinterInfo() 并转储东西以查看您可以使用的内容,陷阱等。
  • Ben forta 有一个可以检查多台打印机的工具,可以考虑合并它。
  • 接下来使用 cfftp(如果您在同一台服务器上,则使用 cffile),前提是您有权访问并将文件复制到打印队列文件夹,根本不执行 cfprint。

这是关于打印假脱机内容的链接(文档中的另一个链接向您展示了如何更改假脱机位置)。

当它结束时,你将成为冷熔打印大师,拥有逃生路线和检查以及一切。

于 2014-06-18T20:50:39.770 回答