クセロPDFの嘘つきPDF1.3を強制的にPDF1.4に変更するスクリプト
このまえ、クセロ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";
}
やっていることのわりにスクリプトが長いのですが。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/5805310
この記事へのトラックバック一覧です: クセロPDFの嘘つきPDF1.3を強制的にPDF1.4に変更するスクリプト:

![すぐ解決!DTPトラブル対策ブック―最強最後のOS9(+OSX)ガイド [単行本]](http://ec2.images-amazon.com/images/I/51895BQKEPL._SL500_AA208_.jpg)









