【问题标题】:Printing PDFs with changed default printer settings使用更改的默认打印机设置打印 PDF
【发布时间】:2011-10-17 13:30:02
【问题描述】:

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

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

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

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

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

非常感谢您!

【问题讨论】:

  • 见这里:pdfSharp printing with page size 看来您必须自行更改 PDF 文件。
  • 如果您可以发布用于调用 PDFSharp 的代码,或许可以提供更多帮助
  • 谢谢乔治!可以直接在 PDF 中设置 Duplex、PageSize 和 Orientation 等设置吗?
  • 嗯,您可以直接在 PDF 中设置双面、方向等设置(例如通过 iText),但我们的打印机完全忽略了这些设置

标签: c# .net pdf printing


【解决方案1】:

不,我认为这行不通。

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

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

如果您可以发布用于调用 PDFSharp 的代码,这将有助于弄清楚如何执行此操作。

【讨论】:

  • 感谢您的评论!我在这个问题中调用 PDFSharp:stackoverflow.com/questions/6277554/… 我们可以使用 PrintDocument 打印我们的 PDF 文件还是必须使用 Acrobat Reader/GhostScript,...?
【解决方案2】:

回答我自己的问题...

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

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

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

【讨论】:

  • 您好,您能否发布组合传递命令行参数的代码,然后使用此codeproject.com/KB/dotnet/NET_Printer_Library.aspx 设置打印机设置,因为我无法将这两个组合在一起谢谢
  • 您可以发布您使用的代码吗? codeproject 代码不是很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多