Mercurial > mercurial > hgweb_golang.cgi
comparison src/kaigo/fwgo/fw4.pl @ 57:05f3d51ad966
add fwgo.
| author | pyon@macmini |
|---|---|
| date | Wed, 15 Jul 2020 18:18:24 +0900 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 56:7396e7407abd | 57:05f3d51ad966 |
|---|---|
| 1 ########################################################### | |
| 2 ## 入力ファイルを 4分割割付する | |
| 3 ## Last Change: 2020-07-14 火 17:33:00. | |
| 4 ########################################################### | |
| 5 | |
| 6 use PDF::API2; | |
| 7 | |
| 8 my ($in_file, $out_file) = ($ARGV[0], $ARGV[1]); | |
| 9 if ($in_file eq '' || $out_file eq '') { | |
| 10 print "bad arguments.\n"; | |
| 11 exit; | |
| 12 } | |
| 13 | |
| 14 # ページごとに分割 | |
| 15 my $p1_pdf = PDF::API2->new(); | |
| 16 my $p2_pdf = PDF::API2->new(); | |
| 17 my $p3_pdf = PDF::API2->new(); | |
| 18 my $p4_pdf = PDF::API2->new(); | |
| 19 | |
| 20 my $in_pdf = PDF::API2->open($in_file); | |
| 21 my ($n1, $n2, $n3, $n4); | |
| 22 for my $p (1..$in_pdf->pages) { | |
| 23 if ($p % 4 == 1) { | |
| 24 $p1_pdf->import_page($in_pdf, $p); | |
| 25 $n1++; | |
| 26 next; | |
| 27 } | |
| 28 if ($p % 4 == 2) { | |
| 29 my $page = $p2_pdf->import_page($in_pdf, $p); | |
| 30 $page->rotate(180); | |
| 31 $n2++; | |
| 32 next; | |
| 33 } | |
| 34 if ($p % 4 == 3) { | |
| 35 $p3_pdf->import_page($in_pdf, $p); | |
| 36 $n3++; | |
| 37 next; | |
| 38 } | |
| 39 my $page = $p4_pdf->import_page($in_pdf, $p); | |
| 40 $page->rotate(180); | |
| 41 $n4++; | |
| 42 } | |
| 43 if ($n1 > $n2) { | |
| 44 my $page = $p2_pdf->page(); | |
| 45 $page->mediabox('B5'); | |
| 46 } | |
| 47 if ($n1 > $n3) { | |
| 48 my $page = $p3_pdf->page(); | |
| 49 $page->mediabox('B5'); | |
| 50 } | |
| 51 if ($n1 > $n4) { | |
| 52 my $page = $p4_pdf->page(); | |
| 53 $page->mediabox('B5'); | |
| 54 } | |
| 55 $p1_pdf->saveas('p1.pdf'); | |
| 56 $p2_pdf->saveas('p2.pdf'); | |
| 57 $p3_pdf->saveas('p3.pdf'); | |
| 58 $p4_pdf->saveas('p4.pdf'); | |
| 59 $p1_pdf->end; | |
| 60 $p2_pdf->end; | |
| 61 $p3_pdf->end; | |
| 62 $p4_pdf->end; | |
| 63 | |
| 64 # 移動 | |
| 65 $p2_pdf = PDF::API2->open('p2.pdf'); | |
| 66 my $p2m_pdf = PDF::API2->new(); | |
| 67 for my $p (1..$p2_pdf->pages) { | |
| 68 my $page = $p2m_pdf->page(); | |
| 69 $page->mediabox('B5'); | |
| 70 my $gfx = $page->gfx(); | |
| 71 my $xo = $p2m_pdf->importPageIntoForm($p2_pdf, $p); | |
| 72 $gfx->formimage($xo, -230, 200, 1.0); | |
| 73 } | |
| 74 $p2m_pdf->saveas('p2m.pdf'); | |
| 75 $p2m_pdf->end; | |
| 76 | |
| 77 $p4_pdf = PDF::API2->open('p4.pdf'); | |
| 78 my $p4m_pdf = PDF::API2->new(); | |
| 79 for my $p (1..$p4_pdf->pages) { | |
| 80 my $page = $p4m_pdf->page(); | |
| 81 $page->mediabox('B5'); | |
| 82 my $gfx = $page->gfx(); | |
| 83 my $xo = $p4m_pdf->importPageIntoForm($p4_pdf, $p); | |
| 84 $gfx->formimage($xo, -230, 200, 1.0); | |
| 85 } | |
| 86 $p4m_pdf->saveas('p4m.pdf'); | |
| 87 $p4m_pdf->end; | |
| 88 | |
| 89 # 割付 | |
| 90 my $new_pdf = PDF::API2->new(); | |
| 91 $p1_pdf = PDF::API2->open('p1.pdf'); | |
| 92 $p2m_pdf = PDF::API2->open('p2m.pdf'); | |
| 93 $p3_pdf = PDF::API2->open('p3.pdf'); | |
| 94 $p4m_pdf = PDF::API2->open('p4m.pdf'); | |
| 95 my $zoom = 0.82; | |
| 96 for my $p (1..$p1_pdf->pages) { | |
| 97 $page = $new_pdf->page(); | |
| 98 $page->mediabox('B5'); | |
| 99 | |
| 100 my $gfx = $page->gfx(); | |
| 101 my $xo1 = $new_pdf->importPageIntoForm($p1_pdf, $p); | |
| 102 $gfx->formimage($xo1, -20, 20, $zoom); | |
| 103 | |
| 104 my $xo2 = $new_pdf->importPageIntoForm($p2m_pdf, $p); | |
| 105 $gfx->formimage($xo2, -20, -170, $zoom); | |
| 106 | |
| 107 my $xo3 = $new_pdf->importPageIntoForm($p3_pdf, $p); | |
| 108 $gfx->formimage($xo3, 230, 20, $zoom); | |
| 109 | |
| 110 my $xo4 = $new_pdf->importPageIntoForm($p4m_pdf, $p); | |
| 111 $gfx->formimage($xo4, 230, -170, $zoom); | |
| 112 } | |
| 113 $new_pdf->saveas($out_file); | |
| 114 $new_pdf->end; | |
| 115 $p1_pdf->end; | |
| 116 $p2m_pdf->end; | |
| 117 $p3_pdf->end; | |
| 118 $p4m_pdf->end; | |
| 119 | |
| 120 # 掃除 | |
| 121 unlink 'p1.pdf'; | |
| 122 unlink 'p2.pdf'; | |
| 123 unlink 'p3.pdf'; | |
| 124 unlink 'p4.pdf'; | |
| 125 unlink 'p2m.pdf'; | |
| 126 unlink 'p4m.pdf'; | |
| 127 |
