打印文档时的页面范围问题

0xD*_*EEF 6 c# printing printdialog

我尝试打印出我的编辑器的内容:

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);
}
Run Code Online (Sandbox Code Playgroud)

我使用的测试文档大约有14页(使用此页面大小设置).我测试了它:printdialog出现了,我选择了一个页面范围(我在文本框中键入"1-3")并单击print.上面printdocument()我设置一个断点,看着PrintDialog类对象.它说pd.PageRangeSelection = PageRangeSelection.UserPagepd.PageRange = {1-3}.我想这是对的,因为我只想打印出第1-3页.然后printdocument()执行和输出-pdf(用于测试我使用pdf打印机)有14页(整个文件被打印).

我的错在哪里?为什么页面范围设置不起作用?

谢谢你的帮助

VMA*_*Atm 1

在您的代码中手动设置:

pd.PageRangeSelection = PageRangeSelection.AllPages;
Run Code Online (Sandbox Code Playgroud)

这就是您的代码打印所有页面的原因。