如何在wpf c#中为FlowDocument选择打印机

时间:2018-02-22 18:10:22

标签: c# wpf

我正在尝试使用Microsoft Print to pdf将FlowDocument直接打印到pdf。每次我要打印时,都会将打印机设置为最后使用的打印机,我需要将其设置为“Microsoft Print to PDF”。

// Create a PrintDialog 
PrintDialog printDlg = new PrintDialog();
// Create a FlowDocument dynamically. 
FlowDocument doc = CreateFlowDocument();
doc.Name = "OrderReceipt"+orderNo;
// Create IDocumentPaginatorSource from FlowDocument 
IDocumentPaginatorSource idpSource = doc;
// Call PrintDocument method to send document to printer 
printDlg.PrintDocument(idpSource.DocumentPaginator, "Save PDF");

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可能正在使用默认打印机设置,该设置可以设置为上次使用的打印机: https://support.microsoft.com/en-us/help/4028622/windows-10-how-to-set-a-default-printer

答案 1 :(得分:0)

您是否尝试过调用PrintDialog.ShowDialog()?它会弹出打印机选项,让您选择要发送到的打印机并设置首选项。

// Create IDocumentPaginatorSource from FlowDocument 
IDocumentPaginatorSource idpSource = doc;
// Display printer options
if( printDlg.ShowDialog() ?? false )
{
   // Call PrintDocument method to send document to printer 
   printDlg.PrintDocument(idpSource.DocumentPaginator, "Save PDF");
}