Perl日記

PerlとかRubyとかPHPとかPythonとか

PerlでPDFに他のPDFのページを差し込む

http://r9.hateblo.jp/entry/20120513/p1r9.hateblo.jp

の続き。(もう3年も前だ)

本体PDFに表紙PDFのページを差し込む

漫画の単行本をスキャンして自炊するときには、白黒の本体部分と、カラーの表紙部分に分けてスキャンをしている。

それらを合体するやり方がわかったのでメモ。

ライブラリ
http://search.cpan.org/~ssimms/PDF-API2-2.023/lib/PDF/API2.pm

何をするか

表紙PDFは4ページあって、1ページ目と2ページ目を本体PDFの先頭に、3ページ目と4ページ目を本体PDFの末尾に差し込みたい。

use PDF::API2;

# 保存用
my $pdf = PDF::API2->new();

# 本体PDF
my $mainpdf = PDF::API2->open("/path/to/your/main.pdf");
# 表紙PDF
my $coverpdf = PDF::API2->open("/path/to/your/cover.pdf");

# 表紙の1ページ目
$pdf->import_page($coverpdf, 1, 0);
# 表紙の2ページ目
$pdf->import_page($coverpdf, 2, 0);

# 本体部分
for my $page_number (1..$mainpdf->pages) {
  $pdf->import_page($mainpdf, $page_number, 0);
}

# 表紙の3ページ目
$pdf->import_page($coverpdf, 3, 0);
# 表紙の4ページ目
$pdf->import_page($coverpdf, 4, 0);

# 保存
$pdf->saveas("/path/to/your/merged.pdf");

結果

めっちゃ自炊が捗る。