画像を挿入する - PDF::API2で帳票作成
PDF::API2で、PNG,GIF,JPEGの画像を挿入する方法を解説します。
PDFには、画像を含めることができます。PDF::API2では、PNG,GIF,JPEG画像を、PDFに挿入することができます。
画像ファイルの挿入
画像ファイルを挿入するには、まず画像ファイルを読み込んで、画像表現するリソースオブジェクトを生成する必要があります。
画像ファイルの読み込み
画像ファイルを読み込んで、画像表現するリソースオブジェクトを生成しましょう。
JPEGファイルの読み込み
PDF::API2で、JPEGファイルを読み込むには、image_jpegメソッドを使用します。JPEG画像を表現するリソースオブジェクトが返されます。
# JPEG画像を表現するリソースオブジェクトを生成 my $image_file = '/path/image.jpeg'; my $image_object = $pdf->image_jpeg($image_file);
PNGファイルの読み込み
PDF::API2で、PNGファイルを読み込むには、image_pngメソッドを使用します。PNG画像を表現するリソースオブジェクトが返されます。
# PNG画像を表現するリソースオブジェクトを生成 my $image_file = '/path/image.png'; my $image_object = $pdf->image_png($image_file);
「Unsupported Interlace」というエラーがでた場合は、PNGのインターレース機能を解除する必要があります。
GIFファイルの読み込み
PDF::API2で、GIFファイルを読み込むには、image_gifメソッドを使用します。GIF画像を表現するリソースオブジェクトが返されます。
# GIF画像を表現するリソースオブジェクトを生成 my $image_file = '/path/image.gif'; my $image_object = $pdf->image_gif($image_file);
画像コンテンツオブジェクトの生成
画像を挿入するための、コンテンツオブジェクトを生成します。これはPDF::API2::Contentオブジェクトです。
# 画像を挿入するために必要なコンテンツオブジェクト my $gfx = $page->gfx;
画像ファイルの挿入
PDF::API2で、画像ファイルを挿入するには、コンテンツオブジェクトのimageメソッドを使用します。
# 指定した位置に画像を挿入 $gfx->image($image_object, $x, $y); # 指定した位置に画像挿入。幅と高さを指定 $gfx->image($image_object, $x, $y, $width, $height); # 指定した位置に画像挿入。スケールを指定(1.5倍など) $gfx->image($image_object, $x, $y, $scale);
指定した位置に画像が挿入されます。
幅と高さは、PDF単位であることに注意してください。座標は、右上に向かって進むので、指定した点から見て、右上に描画されることに注意してください。
例として、600x600のイメージを600dpiの解像度で表示したい場合は、72を指定します。
PNG画像を挿入するサンプル
PNG画像を挿入するサンプルを書いてみます。
use PDF::API2; my $pdf = PDF::API2->new; my $page = $pdf->page; # PNG画像を表現するリソースオブジェクトを生成 my $image_file = "$FindBin::Bin/rokkaku.png"; my $image_object = $pdf->image_png($image_file); # 画像を挿入するために必要なコンテンツオブジェクト my $gfx = $page->gfx; # 指定した位置に画像を挿入 my $x = 50; my $y = 500; $gfx->image($image_object, $x, $y); my $pdf_file = 'image_png.pdf'; $pdf->saveas($pdf_file);