我想使用虚拟打印机“Microsoft Print to PDF”将IDocumentPaginatorSource
, 例如FixedDocument
或保存为 PDF:XpsDocument
var printServer = new System.Printing.PrintServer();
var queue = printServer.GetPrintQueue("Microsoft Print to PDF");
var writer = System.Printing.PrintQueue.CreateXpsDocumentWriter(queue);
writer.Write(Document.DocumentPaginator); // Document = IDocumentPaginatorSource
这可行,但会使打印机打开文件保存对话框。我想以编程方式设置文件名,或者完全禁止此对话框,或者至少在对话框中设置初始文件名。这可能吗?
我知道,这可以在使用时System.Drawing.Printing.PrintDocument
通过设置PrinterSettings.PrintFileName
和PrinterSettings.PrintToFile
(参见1、2 )来完成,但这是不支持的旧打印框架IDocumentPaginatorSource
。
我检查了命名空间中的所有类,System.Printing
但没有找到任何方法来设置这两个设置。PrintTicket
也许可以通过扩展打印模式将这些设置改造成?如果是这样,您将如何做到这一点?