我正在尝试使用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");
这可能吗?
答案 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");
}