FlowDocument、FlowDocumentPaginatorおよびPrintDialogを使用してWPFでプレーンテキストを印刷しています。私のアプローチはthis articleに基づいており、次のように実装されていますWPF FlowDocumentを小領域にのみ印刷する
var printDialog = new PrintDialog();
if (printDialog.ShowDialog() == true)
{
var flowDocument = new FlowDocument();
var paragraph = new Paragraph();
paragraph.FontFamily = new FontFamily("Courier New");
paragraph.FontSize = 10;
paragraph.Margin = new Thickness(0);
paragraph.Inlines.Add(new Run(this.textToPrint));
flowDocument.FontSize = 10;
flowDocument.Blocks.Add(paragraph);
var paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
printDialog.PrintDocument(paginator, "Chit");
}
これは、幅の狭いものを印刷するための良い作品。しかし、私は長い文字列を印刷しようとすると、それはすべてが小さな領域に詰めます:
私は印刷ダイアログのPrintTicket
中とページネータで寸法を確認し、彼らは大丈夫であるように見える。
この問題の原因は何ですか?どのように修正できますか?
私は仕事中ではありませんが、2つの列が作成されていると伝えられます。長い文書を作成すると、それが表示されます。フロー・ドキュメントに1つの列を伝え、フロー・ドキュメントにプリンタの幅を伝える必要があります。 – Paparazzi
良好な観察。あなたの答えをあなたの利便性でどう実装するかを広げてください。 [編集:私はあなたがすでに行ったことを確認します。ありがとう。] – Gigi