如何印刷避免两栏和设置字体
本文关键字:两栏 设置 字体 何印刷 | 更新日期: 2023-09-27 18:02:02
在WPF中,我使用以下例程在打印机上打印字符串:
public static bool PrintString(String str, string strTitle = null)
{
PrintDialog printDialog = new PrintDialog();
if ((bool)printDialog.ShowDialog().GetValueOrDefault())
{
FlowDocument flowDocument = new FlowDocument();
foreach (string line in str.Split(''n'))
{
Paragraph myParagraph = new Paragraph();
myParagraph.Margin = new Thickness(0);
myParagraph.Inlines.Add(new Run(line));
flowDocument.Blocks.Add(myParagraph);
}
// Create IDocumentPaginatorSource from FlowDocument
IDocumentPaginatorSource idpSource = flowDocument;
printDialog.PrintDocument(idpSource.DocumentPaginator, strTitle);
return true;
}
else
return false;
}
问题是,它出乎意料地打印在两列上,而且字体族很奇怪。我想打印使用整个A4页,并能够改变字体系列了。谢谢帕特里克。
要使用A4大小的打印,您必须设置FlowDocument对象的ColumnWidth和PageWidth。我也遇到过同样的问题,我用谷歌搜索了标准A4尺寸的正确宽度。
标准A4尺寸为8.27 X 11.69英寸,像素为793.92 X 1122.24。
你可以这样试试。
FlowDocument flowDocument = new FlowDocument();
flowDocument.PageWidth = 793.92;
flowDocument.ColumnWidth = 793.92;
flowDocument.PageHeight = 1122.24;
此宽度以像素为单位,用于纵向方向。
对于横向,你可以使用
FlowDocument flowDocument = new FlowDocument();
flowDocument.PageWidth = 1122.24;
flowDocument.ColumnWidth = 1122.24;
flowDocument.PageHeight = 793.92;
我很确定问题是由于这个原因引起的,这个答案将解决你的问题。