Lightweight Language Lovers

PDF-merge.pl

オリジナルを# で残しています。

   1 use PDF::API2;
   2 
   3 if(2 > scalar @ARGV) {
   4     print <<"EOT";
   5 #Usage: $0 <outfile> <infile1> ... <infileN>
   6 Usage: $0 <outfile> <infile1,from,to> ... <infileN>
   7 
   8 
   9 merges serveral pdf files into on ;-)
  10 
  11 cheers, 
  12 fredo
  13 EOT
  14 }
  15 
  16 my $outfile=shift @ARGV;
  17 
  18 my $pdf=PDF::API2->new;
  19 
  20 foreach my $in (@ARGV) {
  21 # insert
  22     (my $infile, my $page_from, my $page_to) = split /,/, $in;
  23 #   print STDERR 'loading file $in .';
  24     print STDERR "loading file $in .";
  25 #   my $inpdf=PDF::API2->open($in);
  26     my $inpdf=PDF::API2->open($infile);
  27     my $pages=scalar @{$inpdf->{pagestack}};
  28 #   foreach my $page (1..$pages) {
  29     foreach my $page ($page_from..$page_to) {
  30         print STDERR "$page.";
  31         $pdf->importpage($inpdf,$page);
  32     }
  33     $inpdf->end();
  34     print STDERR " done.\n";
  35 }
  36 
  37 $pdf->saveas($outfile);
  38 
  39 __END__

オリジナルの28行目のforeach の範囲 - 1ページ~PDFファイルのページ数分 - を、from~toで限定するように変更しています。

使用方法は以下のように、切り出し後のPDFファイルの名前 切り出し元のPDFファイルの名前,開始ページ,終了ページの順で指定します。切り出し元ファイルは複数指定出来ます。

pdf-merge2.pl newpdf.pdf srcpdf.pdf,2,2


CategoryPerl GreatMotherPerl

GreatMotherPerl/PdfMerge (last edited 2007-10-10 09:59:25 by ymd)