jpgを繋げてpdfを作ってみる。2
jpgを繋げてpdfを作ってみる。 - 永字八法の続き。
これを実行したディレクトリにあるzipの中のjpgを全部pdfにする。
use strict; use warnings; use Archive::Zip; use PDF::API2; opendir ( DIR, '.' ); my @zip = sort grep { /\.zip$/i } readdir ( DIR ); closedir ( DIR ); foreach my $zip_name ( @zip ) { print "$zip_name\n"; # pdfファイル名を決定する。 my $pdf_name = $zip_name; $pdf_name =~ s/zip$/pdf/i; # pdfファイルを作る。 my $pdf = PDF::API2->new(-twocolumnright=>1); $pdf->mediabox("B5"); # zipを読み込む。 my $zip = Archive::Zip->new($zip_name); # zip内部のファイルリストを取得 my @jpg = $zip->memberNames(); # jpgのみを処理する。 foreach my $jpg ( grep { /jpg$/ } @jpg ) { print "$jpg\n"; my $out_jpg = "work\\".$jpg; # jpgを出力する。 $zip->extractMember( $jpg, $out_jpg ); # 出力したjpgをpdfに追加する。 my $img = $pdf->image_jpeg($out_jpg); my $width = $img->width; my $height = $img->height; my $page = $pdf->page(); my $w = $width * 709 / $height; my $gfx = $page->gfx; $gfx->image($img, ( 501 - $w ) / 2, 0, 709 / $height); } # pdfを保存する。 $pdf->saveas($pdf_name); }
できたー。