2011-04-19 91 views
1

我使用的.NET命名打印打印文档通过PostScript打印机到文件如下:如何通过.NET更改高级打印首选项?

  • 创建.NET System.Drawing.Printing.PrinterSettings
  • 设置PrinterNamePrintFileNameDefaultPageSettings的实例(PaperSizePrinterResolution等)。
  • 创建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这些自定义属性?如果没有,是否有另一种方式(例如,通过注册表......尽管我没有在那里找到这些选项)?

谢谢

回答

0

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

如果您可以告诉我要修改哪种打印机设置,我可以提供额外的输入。例如:在打印机驱动程序的公共devmode中的设置(如方向,纸张尺寸等)可以修改。

+0

事实证明,驱动程序的特定设置存储在注册表(HKCU)中。我刚刚捕获了二进制密钥并以编程方式进行设置。 – Bama91 2011-05-21 15:11:31

+1

你能分享位置吗?你怎么知道要更新什么? – 2011-06-09 21:53:46