gpt4 book ai didi

WPF 将 FlowDocuments 打印到 XPS : printed content not stretching across page. 为什么?

转载 作者:行者123 更新时间:2023-12-01 18:59:04 30 4
gpt4 key购买 nike

我正在尝试使用 PrintDialogFlowDocument 打印到 XPS 文件。生成的打印内容似乎仅延伸到 XPS 页面的一半,而不是页面的整个宽度。以下是生成的 XPS 文档在 Windows XPS 查看器中的外观示例:

Example of XPS document in Windows XPS viewer(注意:如果我用打印机在普通的 8x11 打印纸上打印它看起来完全一样)

这是我用来打印此文档的代码:

void Print()
{
PrintDialog printDialog = new PrintDialog();
bool? result = printDialog.ShowDialog();
if (!result.HasValue)
return;
if (!result.Value)
return;

double pageWidth = printDialog.PrintableAreaWidth;
double pageHeight = printDialog.PrintableAreaHeight;
FlowDocument flowDocument = CreateFlowDocument(pageWidth, pageHeight);

printDialog.PrintDocument(
((IDocumentPaginatorSource)flowDocument).DocumentPaginator,
"Test print job");
}

FlowDocument CreateFlowDocument(double pageWidth, double pageHeight)
{
FlowDocument flowDocument = new FlowDocument();
flowDocument.PageWidth = pageWidth;
flowDocument.PageHeight = pageHeight;
flowDocument.PagePadding = new Thickness(30.0, 50.0, 20.0, 30.0);
flowDocument.IsOptimalParagraphEnabled = true;
flowDocument.IsHyphenationEnabled = true;
flowDocument.IsColumnWidthFlexible = true;

Paragraph header = new Paragraph();
header.FontSize = 18;
header.Foreground = new SolidColorBrush(Colors.Black);
header.FontWeight = FontWeights.Bold;
header.Inlines.Add(new Run("Title of my document (will be cut off in XPS)";));
flowDocument.Blocks.Add(header);

Paragraph test = new Paragraph();
test.FontSize = 12;
test.Foreground = new SolidColorBrush(Colors.Black);
test.FontWeight = FontWeights.Bold;
test.Inlines.Add(new Run("This text should stretch across the entire width of the page. Let's see if it really does, though."));
flowDocument.Blocks.Add(test);

return flowDocument;
}

pageWidth816.0pageHeight1056.0,应该更多比大到足以容纳我的文字。可能出了什么问题?

<小时/>

编辑:以下是我尝试过的其他一些操作:

  • 尝试将宽度较大的 StackPanel 添加到 FlowDocument 中的 Paragraph 中。文本在页面的一半处被截断。
  • 尝试将 FlowDocument.PageWidth 指定为较大的宽度。同样,文本在页面的一半左右被切断。

最佳答案

尝试将 FlowDocumentColumnWidth 属性设置为 pageWidth - 这应该可以解决问题。

关于WPF 将 FlowDocuments 打印到 XPS : printed content not stretching across page. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052356/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com