Я пытаюсь распечатать содержимое моего редактора:
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 страниц (с помощью этих страниц-настроек).
Я проверил его: появляется printDialog, и я выбрал PageRange (я набрал «1-3» в текстовое поле) и нажал Print
. Над PrintDocument ()
Я устанавливаю точку останова и посмотрел в объект PrintDialog. Он говорит pd.pagerangeselection = pagerangeselection.userpage
и pd.pageRange = {1-3}
. Я думаю, это правильно, потому что я хотел распечатать только только Page 1-3. Тогда выполняется PrintDocument ()
PrintDocument ()
, выполненная и в выходе PDF (для тестирования я использую PDF-принтер), имеет 14 страниц (весь документ был напечатан).
Где моя ошибка? Почему PageRange - не работает не работает?
Спасибо за вашу помощь