使用自定义的PrintTicket在WPF中打印PDF文件

时间:2012-10-02 20:24:04

标签: c# wpf pdf printing reporting-services

在当前项目中,我需要打印我从SSRS以Pdf格式收到的报告。到目前为止,我已经了解到Pdf和WPF根本就不是朋友。但是还有更多要求:

  • 应将Pdfs打印到打印机而不显示打印件 对话。
  • 某些报告需要来自特定InputBin的纸张(所以必须这样 可配置)

我已经看到很多方法。我还调查了一些WPF - PDF库,但它们都没有涵盖这些要求。

我的解决方案是将报告作为SSRS的Imagesource,然后为每个源创建Image WPF控件。然后创建FixedDocument,每个页面都包含Image控件。

然而,这是有效的,创建的文件非常大,打印它们需要很长时间。因此,打印原生PDF文件的方法会更好。

我想要的是:

var bytes = GetSomeReportFromReportingServices();
var pdfDocuments = new PdfDocument(bytes);

var printQueue = LocalPrintServer.GetDefaultPrintQueue();
var printTicket = printQueue.DefaultPrintTicket();

//Extension method to set the input bin
printTicket.SetInputBin("SomeInputBinDifferentFromDefault");

//Set some other PrintTicket Properties
//[...]

pdfDocument.Print(printQueue, printTicket);

很容易。我想要的只是配置PrintTicket并将该pdf打印到打印机。是否有一些库/组件能够做到这样的事情?

0 个答案:

没有答案