【问题标题】:Save All Print Jobs As PDF将所有打印作业另存为 PDF
【发布时间】:2012-01-10 19:16:25
【问题描述】:

目标

我工作的公司目前使用黑盒运输系统。每天早上,我们的货运经理都会为他的司机打印货运单。使用 C#,我想将打印的每张票的副本保存为 PDF。保存为 PDF 的操作应在幕后完成。

注意:PDF副本将是硬拷贝的补充,但是,我想在打印硬拷贝时生成PDF副本(或者如果我可以使用保存的打印作业)。

最终结果:经理打印一份硬拷贝,PDF 被保存到存档文件夹中,无需经理进行任何交互。

我的尝试

我已指示打印机在打印后“保留打印的文档”。这会在打印假脱机文件夹中留下一个 .shd 和一个 .spl 文件。我已经尝试过 PrintDocument 类,但我找不到任何方法来指示使用已完成的打印作业重新打印作业(到 PDF 驱动程序)。

问题

我想要完成的事情可能吗?

进一步说明

如果不清楚,我希望经理再次将文档打印到 PDF 打印驱动程序。平均而言,他每天早上必须打印 60 张罚单,然后才能派司机出去。我不想将这个数字增加到 120 并强迫他输入文件名。

此外,“黑匣子”运输系统包括运行我们制造工厂其他部分的其他模块 - 更改软件是一种选择。

【问题讨论】:

  • 你能告诉经理使用不同的打印机吗?
  • @DanielHilgarth,我不确定这会有什么帮助?我希望他能够继续为他的司机打印一份硬拷贝。 PDF 将是硬拷贝的补充。
  • 我明白这一点。你在问你想要实现的目标是否可行。如果您可以使用其他打印机,则可以: 编写(或安装)打印机驱动程序,将打印作业转发到打印机,另外还转发到 PDF 打印机。但我不确定这是最简单的方法:)
  • @James Hill : 经理可以使用计算机上安装的另一台打印机进行打印吗? (而不是默认打印机)
  • @JamesHill:作为我对打印机驱动程序的评论的后续,请看一下:frogmorecs.com/printdistributor。特别有趣:截图“虚拟打印机”。看看第二台打印机。它被命名为“打印并保存”...链接来自here,我自己对这个工具没有经验。

标签: c# pdf printing automation pdf-generation


【解决方案1】:

发出两个打印命令...一个到纸质打印机,一个到 PDF 打印机。

【讨论】:

  • 请重新阅读我的要求。这根本不能回答我的问题。
【解决方案2】:

捕获发送到打印机的东西可能非常棘手。

更简单的方法是使用以下软件设置“pdf 打印机”: http://www.bullzip.com/products/pdf/info.php

将此配置为输出到特定目录,然后编写一个 windows 服务来监视该目录并自动将 PDF 文件发送到物理打印机并将文件归档到网络文件夹。

[并从他的 PC 中删除打印机驱动程序,这样他就无法绕过你的新系统]

【讨论】:

  • +1。告诉他总是打印到 PDF,然后您可以将 PDF 重新打印到物理打印机。正是我的想法。
【解决方案3】:

根据你不想强迫他输入文件名的目标,你应该这样做:

使用提供自动文件命名的 PDF 打印机软件,如下所示:

PDF Desk

Cute PDF

并告诉经理只用那台 PDF 打印机打印票。

然后,编写一个 c# 或 vb.net 应用程序。使用 FileSystemWatcher 检测是否在 PDFs 目录中创建了新文件。并在创建新的 PDF 时将其打印出来。

这里有一些教程解释了如何在 c# 中打印 PDF 文件:

Print existing PDF (or other files) in C#

Printing PDF documents in C#

【讨论】:

    【解决方案4】:

    我建议您使用现有的解决方案来解决此类问题:使用可以安装虚拟打印机的软件,以便在您想要的打印机上打印文档。一种这样的软件是PrintDistributor。我没有使用此软件的任何经验,但名为“虚拟打印机”的屏幕截图看起来很有希望:第二台打印机名为“打印并保存”。

    还有其他类似的软件,见here

    【讨论】:

    • 仅供参考 - 我最终购买了这个:shop2.leadtools.com/shopdisplayproducts.asp?catalogID=3。感谢您帮助我跳出框框思考!有时作为程序员,我只想到程序化的解决方案。
    • @JamesHill:我知道,有时这确实是个大问题。
    • @JamesHill:这个解决方案是否仍然适用于您的系统。
    • @JamesHill:根据您同样的问题,在打印收据时,我需要与 POS 系统打印机类似的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2021-10-27
    • 2016-03-16
    • 2019-10-20
    相关资源
    最近更新 更多