Mercurial > mercurial > hgweb_golang.cgi
comparison src/kaigo/Nk/fw4.pl @ 41:34a474fb83c3
add perori/porori/nk.
author | pyon@macmini |
---|---|
date | Wed, 04 Mar 2020 23:46:59 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
40:c6df3bae683e | 41:34a474fb83c3 |
---|---|
1 ########################################################### | |
2 ## 入力ファイルを 4分割割付する | |
3 ## Last Change: 2020-01-21 火 14:34:27. | |
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 my $tmpdir = $ARGV[2]; | |
14 $tmpdir = '.' if $tmpdir eq ''; | |
15 | |
16 ## 入力ファイルの後半を上下反転させ 前半の下部に印字 | |
17 my $in_odd = 0; # 奇数? | |
18 | |
19 # 後半のページ(回転付き) | |
20 my $in_pdf = PDF::API2->open($in_file); | |
21 $in_odd = 1 if $in_pdf->pages % 2 == 1; | |
22 | |
23 my $n = int($in_pdf->pages / 2) + 1; | |
24 $n++ if $in_odd; | |
25 my $lh_pdf = PDF::API2->new(); | |
26 for my $p ( $n..$in_pdf->pages ) { | |
27 my $page = $lh_pdf->import_page($in_pdf, $p); | |
28 $page->rotate(180); | |
29 } | |
30 $lh_pdf->saveas("$tmpdir/lasthalf.pdf"); | |
31 $lh_pdf->end; | |
32 | |
33 # 移動 | |
34 $lh_pdf = PDF::API2->open("$tmpdir/lasthalf.pdf"); | |
35 my $lhm_pdf = PDF::API2->new(); | |
36 for my $p ( 1..$lh_pdf->pages ) { | |
37 my $page = $lhm_pdf->page(); | |
38 $page->mediabox('B5'); | |
39 my $gfx = $page->gfx(); | |
40 my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p); | |
41 $gfx->formimage($xo, -230, 330, 1.0); | |
42 } | |
43 $lhm_pdf->saveas("$tmpdir/lasthalfmove.pdf"); | |
44 $lhm_pdf->end; | |
45 | |
46 # 割付 | |
47 my $page; | |
48 my $new2_pdf = PDF::API2->new(); | |
49 $lhm_pdf = PDF::API2->open("$tmpdir/lasthalfmove.pdf"); | |
50 for my $p ( 1..$n-1 ) { | |
51 $page = $new2_pdf->page(); | |
52 $page->mediabox('B5'); | |
53 | |
54 my $gfx = $page->gfx(); | |
55 my $xo1 = $new2_pdf->importPageIntoForm($in_pdf, $p); | |
56 $gfx->formimage($xo1, -30, 0, 1.0); | |
57 | |
58 last if $p == $n-1 && $in_odd; | |
59 my $xo2 = $new2_pdf->importPageIntoForm($lhm_pdf, $p); | |
60 $gfx->formimage($xo2, 0, -350, 1.0); | |
61 } | |
62 | |
63 $new2_pdf->saveas("$tmpdir/2.pdf"); | |
64 $new2_pdf->end; | |
65 | |
66 ## 入力ファイルの後半を前半の右側に印字 | |
67 $in_odd = 0; # 奇数? | |
68 | |
69 # 後半のページ(回転なし) | |
70 $in_pdf = PDF::API2->open("$tmpdir/2.pdf"); | |
71 $in_odd = 1 if $in_pdf->pages % 2 == 1; | |
72 | |
73 $n = int($in_pdf->pages / 2) + 1; | |
74 $n++ if $in_odd; | |
75 $lh_pdf = PDF::API2->new(); | |
76 for my $p ( $n..$in_pdf->pages ) { | |
77 my $page = $lh_pdf->import_page($in_pdf, $p); | |
78 #$page->rotate(180); | |
79 } | |
80 $lh_pdf->saveas("$tmpdir/lasthalf2.pdf"); | |
81 $lh_pdf->end; | |
82 | |
83 # 移動 | |
84 $lh_pdf = PDF::API2->open("$tmpdir/lasthalf2.pdf"); | |
85 $lhm_pdf = PDF::API2->new(); | |
86 for my $p ( 1..$lh_pdf->pages ) { | |
87 my $page = $lhm_pdf->page(); | |
88 $page->mediabox('B5'); | |
89 my $gfx = $page->gfx(); | |
90 my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p); | |
91 $gfx->formimage($xo, 130, 0, 1.0); | |
92 } | |
93 $lhm_pdf->saveas("$tmpdir/lasthalf2move.pdf"); | |
94 $lhm_pdf->end; | |
95 | |
96 # 割付 | |
97 my $new4_pdf = PDF::API2->new(); | |
98 $lhm_pdf = PDF::API2->open("$tmpdir/lasthalf2move.pdf"); | |
99 for my $p ( 1..$n-1 ) { | |
100 $page = $new4_pdf->page(); | |
101 $page->mediabox('B5'); | |
102 | |
103 my $gfx = $page->gfx(); | |
104 my $xo1 = $new4_pdf->importPageIntoForm($in_pdf, $p); | |
105 $gfx->formimage($xo1, 0, 0, 0.98); | |
106 | |
107 last if $p == $n-1 && $in_odd; | |
108 my $xo2 = $new4_pdf->importPageIntoForm($lhm_pdf, $p); | |
109 $gfx->formimage($xo2, 125, 0, 0.98); | |
110 #$gfx->formimage($xo2, 122, 0, 0.98); | |
111 } | |
112 | |
113 $new4_pdf->saveas($out_file); | |
114 $new4_pdf->end; | |
115 |