0

MigraDoc を使用して PDF を作成していますが、ちょっとした問題が発生しました。次のコードを使用して、A4 サイズの画像 (2480px x 3508px / サイズ 96KB) を PDF の背景として使用しています。

Dim frame = Section.Headers.FirstPage.AddTextFrame
frame.AddImage("background.png")
frame.WrapFormat.Style = WrapStyle.Through
frame.RelativeHorizontal = RelativeHorizontal.Page

これを使用すると、PDF は約 10 倍長く (たとえば 10 秒) レンダリングされます。これをスピードアップする方法はありますか?

これが次を使用して画像を表示する際の問題である可能性があると考えて、フレームを使用しないようにしました。

Dim backing As Image = Section.Headers.FirstPage.AddImage("background.png")

しかし、それでも結果は同じです。時間を短縮したい理由は、これらを最大 1000 個作成するためであり、現在の速度では時間がかかる可能性があります。

画像をこれ以上縮小することはできませんが、なぜサイズの問題になるのかわかりません。これが問題であり、それを回避する方法がない場合は、お知らせください。

4

1 に答える 1

2

JPEGファイルを使用すると、おそらく高速になります(それがオプションの場合)。

JPEGファイルはそのままPDFにコピーされます。PNG やその他の形式は、「PDF 画像」に変換する必要があります。

PDF ファイルのページを画像と同じように使用できます。これは、試すことができる別のオプションです。背景画像を使用して PDF を作成し、PNG の代わりにその PDF を使用して他のすべてのファイルを作成します (JPEG が画像に適していない場合)。

MigraDoc には 2 つのビルドがあります。1 つは GDI+ を使用し、もう 1 つは WPF を使用します。両方を試して、違いがあるかどうかを確認できます。

ところで: 画像は TextFrame のように配置できるため、画像を TextFrame に配置する必要はありません。

于 2013-11-13T22:51:43.427 に答える