【问题标题】:Customizing Print to File in WIndows在 Windows 中自定义打印到文件
【发布时间】:2009-10-22 09:52:53
【问题描述】:

我有一个要求,我的客户想要安装一个自定义的“打印到文件”打印机(显然 MS 有一个 SDK?)。他们希望能够将其作为一种“应用程序”安装,这样如果有人选择打印到这台打印机,他们必须回答几个问题,文件就会被“打印”到我们选择的路径。 (然后我们会对文件做一些其他的事情,比如重命名它和 SFTP 它)

我试过谷歌搜索,寻找诸如“自定义打印到文件”之类的东西,但我什么也没找到。有没有人有这方面的经验,可以给我一个正确的方向?

编辑:我宁愿有一个面向 c# 的解决方案,但我现在愿意接受任何事情。

编辑 2: 这个“自定义打印驱动程序”的想法是让文档成像公司为其客户提供一种简单的方法来存储/存档文档。这个想法是,如果客户想要存储/归档文档,他们会从 Word、Excell、Acrobat Reader、网页等标准 Windows 应用程序打印到“公司 X”打印机驱动程序。这样做时,文档将被“打印”到特定位置的文件中,而另一个应用程序(它上面有一个文件观察器服务,它将重命名它并将其发送到 SFTP 服务器)知道要观察。理想情况下,打印到文件中的文档也应该能够在纸上打印出来(AKA 就像平常一样)。当打印到“自定义打印驱动程序”时,我们还需要填写一个表格,该表格将为归档系统提供元标记,该元标记也将上传到文档成像系统。

我不打算重新创建打印应用程序,也不打算将“打印”添加到自定义应用程序中。这需要在 Windows 级别上工作。

我对 SFTP、FileWatcher、Alchemy 集成(文档归档应用程序)或文档重命名部分没有任何问题。这是我遇到问题的“自定义打印驱动程序”。更复杂的是,在安装应用程序时,我需要自动安装“自定义打印驱动程序”,并在安装过程中对其进行配置。本质上,该解决方案需要安装为“我的打印机”下可用的打印机,并且应该可用于任何类型的文档、Word、Excell、PDF 等。哦,它需要可用于 XP、Vista 和 Windows 7 . . . . :(

提前感谢大家的帮助。我有一种感觉,这会很糟糕:(

【问题讨论】:

  • 这是一个有趣的问题(我刚刚发现我回答错了!)。根据您所说,我猜您想从“随机”应用程序中获取输出,然后使用该输出进行处理,而不是处理您控制的应用程序或应用程序的输出。 Windows 驱动程序开发工具包在这里:microsoft.com/whdc/Devtools/wdk/default.mspx。嗯 - 这里是开源 PDF 驱动程序:en.pdfforge.org/pdfcreator - 我想我已经看到了其他免费/廉价 PDF 驱动程序的自定义选项。您可能想研究 XML 纸张规范 (XPS)。
  • 如果您有自定义驱动程序,则不需要文件监视应用程序,因为您可以将逻辑包装到打印过程中。或者,只需使用现有的打印驱动程序(XPS 或 PDF),然后让文件观察器应用程序提示元数据。正如我在之前的评论中所说,对于打印驱动程序,我怀疑您最好的选择可能是找到已经拥有 PDF 驱动程序的人,您可以扩展该驱动程序以满足您的要求 - 尽管无疑会产生成本。 (我见过这么多 PDF 打印机驱动程序...)
  • @Murph,我想我真的不明白。 . .你为什么要打PDF?我说的是 windows 中的自定义“打印机”。 . .当您选择 File->Print 然后您可以选择将文件发送到的打印机,尽管将“元数据”弹出窗口作为目录观察程序的一部分让我思考。 +1 给你。
  • 1) 您想要存档文档 - 因此打印的存档必须采用随后可用于忠实地重新生成打印文档的格式,这导致我建议使用 XPS 或 PDF。 2)可靠的打印机需要做很多工作,但是那里有很多 pdf 打印驱动程序(写入 PDF 而不是打印机的自定义打印机)至少其中一些具有供程序员使用的钩子(参见我的实际回答)。
  • 墨菲,这就是有趣的地方。 . .这些通常是扫描的图像。 .因此 .tiff 文件在幕后带有 OCR 应用程序。增加打印“word”文件到磁盘,FTP是客户端业务模式的扩展。

标签: winforms printing


【解决方案1】:

哈!我知道我至少见过一个……

ActMask Virtual Printer Driver

如果没有尝试过这个特定的工具包,无法提出任何建议 - 但在我看来,它与您所追求的解决方案非常相似。

【讨论】:

  • 抱歉,我不是在编写需要“打印”能力的应用程序。我正在尝试创建一个自定义“打印机”,就像您转到 Fil-> Print 时一样,您可以选择将文件发送到的打印机。我想创建自己的“打印机”,它将打印到磁盘(而不是纸),在另一个应用程序知道的目的地。
  • 呃,是的 - 这正是我所指出的工具包所做的,它们提供了一个可再发行的 printer driver 可以输出为各种格式(您需要选择合适的) 然后将调用指定的应用程序 - 即您的代码 - 使用参数文件允许您对生成的文档进行后处理。所以:不是编写自定义打印机(这不是我想承担的),而是采用经过验证的解决方案并将其与自定义逻辑相结合以实现所需的结果。更简单、更快捷...
【解决方案2】:

您说的是哪种定制?你不能用.Net inbuilt one吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2017-05-24
    相关资源
    最近更新 更多