【问题标题】:How to change advanced printing preferences via .NET?如何通过 .NET 更改高级打印首选项?
【发布时间】:2011-04-19 19:55:19
【问题描述】:

我正在使用 .NET 打印命名空间通过 Postscript 打印机将文档打印到文件,如下所示:

  • 创建 .NET System.Drawing.Printing.PrinterSettings 类的实例
  • 设置PrinterNamePrintFileNameDefaultPageSettingsPaperSizePrinterResolution等)。
  • 创建PrintDocument 类的实例并分配PrinterSettings 实例
  • 调用 Print 方法,该方法调用我的自定义处理程序进行打印

如果可能,我还需要以编程方式修改打印机特定设置。如果我右键单击打印机(在 Windows 7 中)并选择“打印首选项”然后选择“高级...”,我有以下选项:

Document Options
--PostScript Options
----PostScript Output Option
----TrueType Font Download Option
----PostScript Language Level
----etc.
--Printer Features
----PDF Settings
----PDF Compatibility
----EmbedAllFonts
----etc.

有没有办法通过 .Net 设置(或至少确认)这些自定义属性?如果没有,是否有其他方法(例如,通过注册表...虽然我在那里没有找到这些选项)?

谢谢

【问题讨论】:

    标签: .net windows printing


    【解决方案1】:

    不幸的是,我认为你做不到。您看到的高级设置是随 Windows 一起提供的 Postscript 打印机驱动程序的一部分。这些是由最终用户修改的,是驱动程序私有设置的一部分。 Postscript 驱动程序提供了一个插件接口,您可以通过它访问 API 并对所有这些设置进行更改。请参阅这些链接 - http://msdn.microsoft.com/en-us/library/ff561832%28v=VS.85%29.aspxhttp://msdn.microsoft.com/en-us/library/ff563612%28v=VS.85%29.aspx

    如果您能告诉我您要修改哪种打印机设置,我可以提供额外的输入。例如:打印机驱动程序的公共开发模式中的设置(如方向、纸张大小等)可以修改。

    【讨论】:

    • 事实证明,驱动程序特定的设置存储在注册表(HKCU)中。我刚刚捕获了二进制密钥并以编程方式设置它。
    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多