如何印刷避免两栏和设置字体

本文关键字:两栏 设置 字体 何印刷 | 更新日期: 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;

我很确定问题是由于这个原因引起的,这个答案将解决你的问题。