Mercurial > mercurial > hgweb_golang.cgi
diff src/kaigo/fwgo/fw4.pl @ 57:05f3d51ad966
add fwgo.
author | pyon@macmini |
---|---|
date | Wed, 15 Jul 2020 18:18:24 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/fwgo/fw4.pl Wed Jul 15 18:18:24 2020 +0900 @@ -0,0 +1,127 @@ +########################################################### +## 入力ファイルを 4分割割付する +## Last Change: 2020-07-14 火 17:33:00. +########################################################### + +use PDF::API2; + +my ($in_file, $out_file) = ($ARGV[0], $ARGV[1]); +if ($in_file eq '' || $out_file eq '') { + print "bad arguments.\n"; + exit; +} + +# ページごとに分割 +my $p1_pdf = PDF::API2->new(); +my $p2_pdf = PDF::API2->new(); +my $p3_pdf = PDF::API2->new(); +my $p4_pdf = PDF::API2->new(); + +my $in_pdf = PDF::API2->open($in_file); +my ($n1, $n2, $n3, $n4); +for my $p (1..$in_pdf->pages) { + if ($p % 4 == 1) { + $p1_pdf->import_page($in_pdf, $p); + $n1++; + next; + } + if ($p % 4 == 2) { + my $page = $p2_pdf->import_page($in_pdf, $p); + $page->rotate(180); + $n2++; + next; + } + if ($p % 4 == 3) { + $p3_pdf->import_page($in_pdf, $p); + $n3++; + next; + } + my $page = $p4_pdf->import_page($in_pdf, $p); + $page->rotate(180); + $n4++; +} +if ($n1 > $n2) { + my $page = $p2_pdf->page(); + $page->mediabox('B5'); +} +if ($n1 > $n3) { + my $page = $p3_pdf->page(); + $page->mediabox('B5'); +} +if ($n1 > $n4) { + my $page = $p4_pdf->page(); + $page->mediabox('B5'); +} +$p1_pdf->saveas('p1.pdf'); +$p2_pdf->saveas('p2.pdf'); +$p3_pdf->saveas('p3.pdf'); +$p4_pdf->saveas('p4.pdf'); +$p1_pdf->end; +$p2_pdf->end; +$p3_pdf->end; +$p4_pdf->end; + +# 移動 +$p2_pdf = PDF::API2->open('p2.pdf'); +my $p2m_pdf = PDF::API2->new(); +for my $p (1..$p2_pdf->pages) { + my $page = $p2m_pdf->page(); + $page->mediabox('B5'); + my $gfx = $page->gfx(); + my $xo = $p2m_pdf->importPageIntoForm($p2_pdf, $p); + $gfx->formimage($xo, -230, 200, 1.0); +} +$p2m_pdf->saveas('p2m.pdf'); +$p2m_pdf->end; + +$p4_pdf = PDF::API2->open('p4.pdf'); +my $p4m_pdf = PDF::API2->new(); +for my $p (1..$p4_pdf->pages) { + my $page = $p4m_pdf->page(); + $page->mediabox('B5'); + my $gfx = $page->gfx(); + my $xo = $p4m_pdf->importPageIntoForm($p4_pdf, $p); + $gfx->formimage($xo, -230, 200, 1.0); +} +$p4m_pdf->saveas('p4m.pdf'); +$p4m_pdf->end; + +# 割付 +my $new_pdf = PDF::API2->new(); +$p1_pdf = PDF::API2->open('p1.pdf'); +$p2m_pdf = PDF::API2->open('p2m.pdf'); +$p3_pdf = PDF::API2->open('p3.pdf'); +$p4m_pdf = PDF::API2->open('p4m.pdf'); +my $zoom = 0.82; +for my $p (1..$p1_pdf->pages) { + $page = $new_pdf->page(); + $page->mediabox('B5'); + + my $gfx = $page->gfx(); + my $xo1 = $new_pdf->importPageIntoForm($p1_pdf, $p); + $gfx->formimage($xo1, -20, 20, $zoom); + + my $xo2 = $new_pdf->importPageIntoForm($p2m_pdf, $p); + $gfx->formimage($xo2, -20, -170, $zoom); + + my $xo3 = $new_pdf->importPageIntoForm($p3_pdf, $p); + $gfx->formimage($xo3, 230, 20, $zoom); + + my $xo4 = $new_pdf->importPageIntoForm($p4m_pdf, $p); + $gfx->formimage($xo4, 230, -170, $zoom); +} +$new_pdf->saveas($out_file); +$new_pdf->end; +$p1_pdf->end; +$p2m_pdf->end; +$p3_pdf->end; +$p4m_pdf->end; + +# 掃除 +unlink 'p1.pdf'; +unlink 'p2.pdf'; +unlink 'p3.pdf'; +unlink 'p4.pdf'; +unlink 'p2m.pdf'; +unlink 'p4m.pdf'; +