我尝试打印出我的编辑器的内容:
PrintDialog pd = new PrintDialog();
pd.PageRangeSelection = PageRangeSelection.AllPages;
pd.UserPageRangeEnabled = true;
FlowDocument fd = DocumentPrinter.CreateFlowDocumentForEditor(CurrentDocument.Editor);
DocumentPaginator dp = ((IDocumentPaginatorSource)fd).DocumentPaginator;
bool? res = pd.ShowDialog();
if (res.HasValue && res.Value)
{
fd.PageHeight = pd.PrintableAreaHeight;
fd.PageWidth = pd.PrintableAreaWidth;
fd.PagePadding = new Thickness(50);
fd.ColumnGap = 0;
fd.ColumnWidth = pd.PrintableAreaWidth;
pd.PrintDocument(dp, CurrentDocument.Editor.FileName);
}
我使用的测试文档大约有 14 页(使用此页面大小设置)。我测试了它:出现打印对话框,我选择了一个页面范围(我在文本框中输入了“1-3”)并点击了print
。在上面printdocument()
我设置了一个断点并查看了 printdialog-object。它说pd.PageRangeSelection = PageRangeSelection.UserPage
和pd.PageRange = {1-3}
。我想这是对的,因为我只想打印第 1-3 页。然后printdocument()
执行并在输出pdf(用于测试我使用pdf打印机)有14页(打印了整个文档)。
我的错误在哪里?为什么页面范围设置不起作用?
感谢您的帮助