我试图打印出我的编辑器的内容:
我使用的测试文档大约有14页(使用此页面大小设置)。我进行了测试:打印对话框出现,我选择了页面范围(在文本框中键入“1-3”),然后单击
我的错误在哪里?为什么页面范围设置不起作用?
感谢您的帮助。
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()
之前,我设置了断点并查看了打印对话框对象。它显示pd.PageRangeSelection = PageRangeSelection.UserPage
和pd.PageRange = {1-3}
。我想这是正确的,因为我只想打印第1-3页。然后执行printdocument()
,输出PDF文件(为了测试我使用PDF打印机)有14页(整个文档都被打印了)。我的错误在哪里?为什么页面范围设置不起作用?
感谢您的帮助。