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.UserPage和pd.PageRange = {1-3}.我想这是对的,因为我只想打印出第1-3页.然后printdocument()执行和输出-pdf(用于测试我使用pdf打印机)有14页(整个文件被打印).
我的错在哪里?为什么页面范围设置不起作用?
谢谢你的帮助
在您的代码中手动设置:
pd.PageRangeSelection = PageRangeSelection.AllPages;
Run Code Online (Sandbox Code Playgroud)
这就是您的代码打印所有页面的原因。
| 归档时间: |
|
| 查看次数: |
2188 次 |
| 最近记录: |