M.C.P.C.

―むり・くり―プラスコミュニケーション


| トップページ |

2005.09.06

クセロPDFの嘘つきPDF1.3を強制的にPDF1.4に変更するスクリプト

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

このまえ、クセロPDFの嘘つきPDF1.3を強制的にPDF1.4に変更するワンライナー を作ったとき、Win32 の ActivePerl じゃあワンライナーがうまく動かなかったので、せめてもの罪滅ぼしにこれを作りました。

#!/usr/bin/perl -w
 
# Filename: 2pdf14.pl
#           ActivePerl 5.8.6 (Win32) で確認したよ。
# Usage: ドラドロしてください。
#        (要ドラドロできるようになるソフト)
#        もしくはコマンドライン
#        C:\> perl 2pdf14.pl ほげ.pdf
 
use strict;
use File::Basename;
use encoding "cp932", Filter => 1;
 
# 正規表現パターン設定
 
my $Regex = <<'REGEX';
PDF-\d\.\d.*
REGEX
 
# コマンドライン引数分繰り返し
 
foreach my $argv (@ARGV) {
 
    my ( $pdfversion, $pdf );
 
    my $fullpath = $argv;
    ( my $base, my $dir ) = fileparse( $fullpath, '\.[^\.]+$' );
    my $filename = $base . ".pdf";
    my $newpath = $dir . '#' . $filename;
 
    print "PDF 読み込み中...\n";
 
    open( IN, $fullpath )
      || die "can't open $fullpath \n";
    binmode(IN);
    read IN, $pdf, -s $fullpath;
    close(IN);
 
    # ヘッダのバージョンを強制的に %PDF-1.4 に書き換える。
 
        $pdf =~
          s/^%PDF-\d\.\d/%PDF-1.4/;
 
    # 置換結果書き込み
 
    print "処理用PDF書き込み中...\n";
 
    open FH, ">$newpath";
    binmode(FH);
    print FH $pdf;
    close FH;
 
    print "正規化PDF書き込み中...\n";
 
}
 

やっていることのわりにスクリプトが長いのですが。

[Script] | |

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/5805310

この記事へのトラックバック一覧です: クセロPDFの嘘つきPDF1.3を強制的にPDF1.4に変更するスクリプト:

コメント

コメントを書く