2017-12-28 9 views
4

私は、PDFファイルを生成するために "com.itextpdf:itextg"というライブラリを使用しています。私の要件は、PDFファイルに画像をA4形式、ページあたり1画像に追加することです。生成されたiText内の画像の中央揃えPDFドキュメント

デフォルトでは、イメージは上部に揃えられて追加され、PDFドキュメントページの下部に空白が残ります。

イメージを中央揃えにして、すべての辺から等しいスペースを残してイメージを中央に配置したいとします。

私はメソッドsetAbsolutePositionがあることを知っていますが、absoluteXとabsoluteYが必要です。私はCENTRE_HORIZONTALやCENTRE_VERTICALのようなものが必要でした。画像を縦横に並べてPDFを生成するのに役立つ人はいますか?

答えて

3

については

Image image = Image.getInstance(stream.toByteArray()); 
image .setAlignment(Image.MIDDLE); 

あなたは本当にA4ページが必要な場合は、それが水平方向にも垂直方向に中央揃えされるようにスケーリングされた画像のためのX、Y位置を計算する必要があります。

image.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight()); 
float x = (PageSize.A4.getWidth() - image.getScaledWidth())/2; 
float y = (PageSize.A4.getHeight() - image.getScaledHeight())/2; 
image.setAbsolutePosition(x, y); 
document.add(image); 

これは、画像をA4ページの中央に配置します。

しかし私があなただったら、A4ページに画像を集中させようとはしませんでした。代わりに、私は代わりにイメージのサイズにページサイズを適応させるでしょう。画像の

-1

setAlignment()センタリングイメージ用。詳細Read this

+1

に従うことによって達成することができます。 – Tarun

+3

実際、この答えは間違っています。 –

+0

@BrunoLowagieは間違っているかもしれません。私はポストをコピーしていませんでした。 –

0

水平中心位置合わせは、垂直配向されていないコード

 Image signature = Image.getInstance(stream.toByteArray()); 
     signature.scaleAbsolute(70f, 70f); 
     signature.setAlignment(Element.ALIGN_CENTER); 
関連する問題