使用更改的默认打印机设置打印PDF

Google / Bing没有为我的以下问题提出任何解决方案,希望有人可以帮助我:

我们必须在基于C#的程序中打印各种PDF文件。 在我们打印之前,我们必须配置打印机,例如将方向设置为横向。

我试图更改默认的打印机设置,例如:

PrinterSettings settings = new PrinterSettings(); settings.PrinterName = "\\\\SomeNetworkPrinter\\"; settings.DefaultPageSettings.Landscape = true; settings.Duplex = Duplex.Horizontal; 

我们通过PDFSharp将PDF发送到打印机,这基本上可以正常工作,但我的设置完全被忽略了。 是不是可以通过这种方式更改默认打印机设置? 我们有机会更改设置并打印我们的PDF文件吗?

非常感谢你提前!

不,我认为这不会起作用。

您正在创建一个本地PrinterSettings对象,该对象可用于配置PrintDocument ,而PrintDocument又可以使用PrintDocument.Print()发送到打印机。

如果您正在调用PDFSharp来编排打印,它将使用默认的任何打印机设置,除非您以某种方式通过API将PrinterSettings传递给PDFSharp?

如果您可以发布用于调用PDFSharp的代码,那么在确定如何执行此操作时会有所帮助。

回答我自己的问题……

经过3天的反复试验,我认为没有机会通过.NET配置打印机并随后打印PDF。 您不能将System.Drawing.Printing.PrintDocument类与PDF结合使用,但使用PrintDocument似乎是更改打印机设置的先决条件。

我的配置打印机的解决方案受到了这篇关于codeplex的post的启发: http : //www.codeproject.com/KB/dotnet/NET_Printer_Library.aspx

为了最终打印pdf,我通过命令行参数将其发送到Adobe Reader。