M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2005年6月 6日 00:00

むりくりPDFの余白を伸ばす(3):Illustrator8.01のPDF限定センタートンボを検知して/MediaBoxを伸ばすスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

Illustrator8.01 の PDF 限定センタートンボを検知して/MediaBox を伸ばすスクリプト、というのを作ってみました。

僕は使い捨てコードはあまり凝りませんので、ARGV でコマンドラインを参照したりするところまでは勘弁してください。入力には、pdftk hoge.pdf output fuga.pdf uncompress した後の、fuga.pdf を使ってください。

pdftk については、再三書いているとおり、PDF HACKS で説明されています。pdftk で具具って見て、わけわかんねー場合に PDF HACKS を買うというのがいいのではないかと。

(ここだけの話、PDF HACKS 紹介するよりもメグミルクのアレで使われたアニメを紹介する方がアフィリエイト的にはすっげえ効率いい)

while(<>) {
    $a.=$_;
}
 
$a =~tr/\r/\n/d;
 
$Regex = <<'REGEX';
/Group BMC
(.+?) (.+?) m
(.+?) (.+?) l
S
(.+?) (.+?) m
(.+?) (.+?) l
S
EMC
/Group BMC
(.+?) (.+?) m
(.+?) (.+?) l
S
(.+?) (.+?) m
(.+?) (.+?) l
S
EMC
/Group BMC
(.+?) (.+?) m
(.+?) (.+?) l
S
(.+?) (.+?) m
(.+?) (.+?) l
S
EMC
/Group BMC
(.+?) (.+?) m
(.+?) (.+?) l
S
(.+?) (.+?) m
(.+?) (.+?) l
S
EMC
REGEX
;
 
while ($a=~m/$Regex/gm ) {
    if (
        ($3 == $1+24) &&
        ($5 == $1+18) &&
        ($7 == $5) &&
        ($11== $9-24) &&
        ($13== $9-18) &&
        ($15== $13) &&
        ($4  == $2) &&
        ($6  == $2+36) &&
        ($8  == $2-36) &&
        ($10 == $2) &&
        ($12 == $2) &&
        ($14 == $8) &&
        ($16 == $6) &&
        ($17 == $21-36) &&
        ($19 == $21+36) &&
        ($23 == $21) &&
        ($25 == $19) &&
        ($27 == $17) &&
        ($29 == $21) &&
        ($31 == $21) &&
        ($18 == $22 - 18) &&
        ($20 == $18) &&
        ($24 == $22 - 24) &&
        ($26 == $30 + 18) &&
        ($28 == $26) &&
        ($32 == $30 + 24)
    )
    {
        $b ="/MediaBox[$1 $30 $9 $22]";
    }
}
if ($b) {
    $a =~ s#/MediaBox \[.+\]#$b#;
}
print $a;
  

実は、前回の PDF でしかテストしていないので、テストできる方はやってみてみてください。あと、トンボが二つあったらとかいうの禁止。当然考慮してねえってば。……ええと、後からの方が優先される、ように、作った、気が、するけれども。投げやりな変数名ですべてを察してください。

そして、このエントリのコメントに、
「そんなソフトもうありますよウップクプー」
なんて颯爽と書き込んでくれる人は真にカッコイイと思います。

投稿 大野 義貴 [Script] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1128

コメントする