0

私はpdfに背景を設定しようとしていますが、私のpdfには大きなテーブルがあるため、ページはDocument.NewPage()メソッドではなく自動的に追加されるため、画像の背景は最初のページにのみ設定されます。背景を追加するコードは次のとおりです。

    Image backImg = Image.GetInstance(@"D:\websites\DIS\bugs\130208\A4.png");
    backImg.SetAbsolutePosition(0, 0);
    backImg.Alignment = Image.UNDERLYING;

    var doc = new Document(pageSize);
    PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create));
    doc.Open();

    doc.Add(backImg);
    ...
    creating a big table

doc.NewPage()メソッドを使用していません。ドキュメントを閉じる前に、すべてのページをループして最後に背景画像を追加する必要がありますが、他の要素の上ではなく背景に配置するにはどうすればよいですか?

4

2 に答える 2

5

すべてのページに何かを適用したいときはいつでも、ページイベントを使用する必要があります。具体的PdfPageEvent.onEndPage(),にはそれを実行するためです。キーワードPageevents>onEndPageで使用法のサンプルを見つけることができます---これらのサンプルは、 Action2ndEditionのiTextから取得されています。サンプルは主にフッターとヘッダーを追加しますが、背景グラフィックを追加します。

Documentここでインスタンスにコンテンツを追加するのではなく、直接にコンテンツを追加する必要があることに注意してくださいPdfWriter,。画像をページコンテンツの上ではなく下に配置する必要があるためPdfWriter.getDirectContentUnder()、サンプルのように使用する必要があり、他のインスタンスのようには使用Stationeryしないでください。PdfWriter.getDirectContent()サンプル。

PS: The analogous samples for .Net can be found here.

PPS: The sample ImageDirect.java / ImageDirect.cs shows how to add an image to some direct content which might be the information missing here.

于 2013-02-11T14:02:02.120 に答える
0

をやる

PdfPageEvent.onStartPage()

. このイベントでは、イメージを挿入するコードを記述します (実際に行っているように)。新しいページが作成されるとすぐに、そのページに画像が追加され、その上にコンテンツが追加されます。透かし効果を与えます。

于 2013-02-17T06:44:29.223 に答える