1

レポートを印刷するために MigraDoc をいじっています。何らかの理由で、フッターを印刷できません。ただし、プレビューアーと生成された PDF では問題なく表示されます。

これが私のコードです-テストのために必要最小限に切り詰めましたが、まだ動作しません。

    Dim doc = New MigraDoc.DocumentObjectModel.Document

    Dim sec = doc.AddSection

    Dim f = sec.Footers.Primary
    f.AddParagraph("test")

    'Footer appears just fine on previewer
    Dim ddl As String = MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToString(doc)
    Me.Preview.Ddl = ddl

    'Here's where I tried to print the doc directly.  No footer printed.
    'Dim d As New MigraDoc.Rendering.Printing.MigraDocPrintDocument()
    'd.Renderer = New MigraDoc.Rendering.DocumentRenderer(doc)
    'd.Renderer.PrepareDocument()
    'd.Print()

    'Here's where I tried to use the previewer's renderer.  Still no footer printed
    'Dim d As New MigraDoc.Rendering.Printing.MigraDocPrintDocument(Me.Preview.Renderer)
    'd.Print()

Preview という名前のフォームに MigraDoc.Rendering.Forms.DocumentPreview コントロールがあります。フォームをそのまま実行すると、プレビュー コントロールは空白のページを表示し、フッターには "Test" と表示されます。すべて順調ですが、そのフッターを印刷できません。直接印刷しようとすると (コメント付きコードの最初のブロック)、空白のページが表示されます。プレビューアのレンダラー (コメント付きコードの 2 番目のブロック) を使用して印刷しようとした場合も同じです。

何か案は?

4

3 に答える 3

0

私はこの問題を抱えていて、ページの下部からフッターまでの距離を設定し、それを下部マージンのサイズ以上に設定すると、それが表示されることがわかりました。

下余白は 0.75 インチでした。このコードは、フッターをページの一番下に配置します。 doc.DefaultPageSetup.FooterDistance = new Unit(.75, UnitType.Inch);

それはかなり奇妙です。PDF のデジタル コピーには常にフッターがありました。それが消えたのは、それが印刷されたときだけでした。デジタル コピーを開いて Adob​​e Reader で印刷すると、常にフッターも印刷されます。

MigraDoc には、いくつかの Post Script / PDF プロセッサと互換性のないものがあるに違いないと思います。いずれにせよ、これは簡単な回避策です。

于 2015-07-07T15:54:25.400 に答える
0

私の知る限り、MigraDoc 1.32 の WPF ビルドで印刷しようとすると問題が発生します。何も印刷されません。

テスト ドキュメントにはフッターのみが含まれているようです。「Hello, World!」を追加するかもしれません。通常の本文の段落。欠けているのはフッターだけではないと思います。

GDI+ ビルドでの印刷は IIRC で機能します。

于 2013-11-20T07:43:01.417 に答える