私は自分のエディタの内容を印刷しようとしています:
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ページがあります(ドキュメント全体が印刷されました)。
私の間違いはどこですか?pagerange-setting が機能しないのはなぜですか?
ご協力いただきありがとうございます