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

时间:2011-08-01 15:29:13

标签: c# .net pdf printing

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

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

我尝试更改默认的打印机设置,例如像这样:

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

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

非常感谢你!

2 个答案:

答案 0 :(得分:1)

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

您正在创建一个本地PrinterSettings对象,可用于配置PrintDocument,然后使用PrintDocument.Print()将其发送到打印机。

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

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

答案 1 :(得分:1)

回答我自己的问题......

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

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

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