【问题标题】:Need to print a PDF from .net and select different trays for output需要从 .net 打印 PDF 并选择不同的托盘进行输出
【发布时间】:2012-05-09 15:21:58
【问题描述】:

我的公司正在迁移到一个新系统,该系统的打印系统非常差,但它确实在文件系统上创建了 PDF。

我的老板让我创建一个应用程序来打印所有基于 JOB 编号的 PDF。

我已经让文件系统搜索工作了,我已经使用 acrobat sdk 打开每个文件并找到某些字符串来确定哪些页面去哪里。

我正在处理的问题是 Acrobat SDK 似乎不支持选择打印机设置。

我的第一个想法没什么大不了的,我只是更改了默认的 windows 打印机并更改了托盘,因此发票部分和设备清单从托盘 1 转到白纸,而汇款转到蓝纸上的托盘 2。

.net 中的打印文档似乎可以处理很多打印机设置,但我不确定 PDF 是否可以与打印文档一起使用。

寻求任何建议或帮助。

谢谢,

约书亚

【问题讨论】:

  • 小心更改默认打印机技巧。有人同时打印其他东西,或者更糟糕的是使用相同技术的其他应用程序。更不用说礼貌并将默认打印机设置回原来的样子。尽可能避免。
  • 是的,我有一个设置默认打印机的类库,然后在应用程序关闭时恢复原始默认打印机。幸运的是,我们将在专门为此任务的非用户桌面设置上设置应用程序。这将是大约 3000 张发票 (PDF),大约 15k 多页纸。
  • 我可能在寻找最后一两个小时后找到了答案。我仍然需要对其进行测试,但找到了这个网站:edinkapic.blogspot.com/2011/01/… 如果这符合我的要求,我会更新。
  • 好吧,该网站为我工作,但我不理解任何 win32 代码。我不明白,但有没有办法用.net托管代码做到这一点?我还没有找到一个简单的解决方案。

标签: vb.net printing printdocument acrobat-sdk


【解决方案1】:

我发现答案是使用 Win32。

以下网站帮助我克服了一些障碍:

http://edinkapic.blogspot.com/2011/01/how-to-set-printer-default-paper-bin-in.html

【讨论】:

    【解决方案2】:

    根本问题是 PDF 是文本和位图图像的矢量图形的组合。所有这些都需要在可打印之前呈现为打印机可以理解的格式。

    Ghostscript 可以很好地做到这一点,如果您需要从 .Net 中执行此操作,GhostScript.Net 提供了出色的 vb.Net 接口。

    我正在处理的问题是 Acrobat SDK 似乎不支持选择打印机设置。

    您不能为此使用 Acrobat 的桌面版本,因为它不是为无人值守操作而设计的,并且需要用户界面。另外,我认为它违反了 Adob​​e 的许可。

    【讨论】:

    • 我通过为具有不同设置的同一台打印机创建不同的 Windows 打印机对象来解决这个问题。然后,每次从 Adob​​e SDK 打印之前,我都会使用 Windows 控件更改默认打印机。我必须在机器上安装 Acrobat,这样 SDK 才能正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2015-11-30
    • 2017-08-04
    • 2014-03-08
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多