PDFからTIFFに変換する

もすちゃん@deratege

2011年11月30日 02:10

あるCADから高解像度のTIFFが欲しいのに
直接には150DPI程度しか出ないことが分かったので、
ベクトルであるPDFに吐いて、
GPL GhostScriptでTIFFに変換するスクリプトを通すことにした。
複数シートのPDFは個別のファイルに分解したかったので、
pdftkを使ってプロパティを取得する小ワザも加えてある。







TIFF 変換バッチスクリプト
// 複数のPDFをDrag&Dropで渡すとTIFFに変換する
// 同じフォルダに、変換元PDFデータと
// gswin32c.exe、gsdll32.dll (GPL GhostScript 9.04 http://www.ghostscript.com/)
// pdftk.exe、libiconv2.dll (pdf toolkit 1.44 http://www.pdflabs.com/)
// が必要。
// このコードの元ネタは
// 「@IT:Windows TIPS -- Tips:複数ファイルの文字列置換をワンクリックで行なう」
// http://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html
//----------------------------------------------------------------------
var objArg=WScript.Arguments; /* D&Dしたファイルをオブジェクトにする */
for(i=0;i=0) {
cnt=strLne.substring(14,20);
}
}while(!objTs.AtEndOfStream);
objTs.Close();
objFs.DeleteFile(strTmp);
//複数枚数ならば、元のファイル名に枝番をつけて個別に出力する。
if(cnt>1){
strTs=objFs.GetBaseName(objArg(i))+"-%d.tiff";
}else{
strTs=objFs.GetBaseName(objArg(i))+".tiff";
}
strTs=objFs.BuildPath(objFs.GetParentFolderName(WScript.ScriptFullName),strTs);
strGs=objFs.BuildPath(objFs.GetParentFolderName(WScript.ScriptFullName),"gswin32c.exe");
var objWshShell = WScript.CreateObject("WScript.Shell");
ReturnCode = objWshShell.Run(strGs+" -q -dBATCH -dNOPAUSE -sDEVICE=tiffg4 -r400 -sOutputFile="+strTs+" "+objArg(i), 0, true);
}
]]>





関連記事