約 1000 個の pdf ファイルがあり、それらを 300 dpi の tiff ファイルに変換する必要があります。これを行う最善の方法は何ですか?スクリプト化できるSDKまたは何かまたはツールがあれば、それが理想的です。
13 に答える
Imagemagick を使用するか、Ghostscript を使用してください。
http://www.ibm.com/developerworks/library/l-graf2/#N101C2に imagemagick の例があります。
convert foo.pdf pages-%03d.tiff
http://www.asmail.be/msg0055376363.htmlには、ghostscript の例があります。
gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=a.tif foo.pdf -c quit
Ghostscript をインストールし、gs の man ページを読んで、正確に必要なオプションを確認し、実験します。
コマンドラインからGhostScriptを使用して、私は過去に以下を使用しました:
Windows の場合:
gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
*nix:
gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
多数のファイルの場合、単純なバッチ/シェル スクリプトを使用して、任意の数のファイルを変換できます...
ディレクトリ構造を調べ、ghostscriptを使用してすべてのpdfファイルをtiffファイルに変換する小さなPowerShellスクリプトを作成しました。これが私のスクリプトです:
$tool = 'C:\Program Files\gs\gs8.63\bin\gswin32c.exe'
$pdfs = get-childitem . -recurse | where {$_.Extension -match "pdf"}
foreach($pdf in $pdfs)
{
$tiff = $pdf.FullName.split('.')[0] + '.tiff'
if(test-path $tiff)
{
"tiff file already exists " + $tiff
}
else
{
'Processing ' + $pdf.Name
$param = "-sOutputFile=$tiff"
& $tool -q -dNOPAUSE -sDEVICE=tiffg4 $param -r300 $pdf.FullName -c quit
}
}
1)GhostScriptをインストールします
2)ImageMagickをインストールします
3)「Convert-to-TIFF.bat」(Windows XP、Vista、7)を作成し、次の行を使用します。
for %%f in (%*) DO "C:\Program Files\ImageMagick-6.6.4-Q16\convert.exe" -density 300 -compress lzw %%f %%f.tiff
任意の数の単一ページのPDFファイルをこのファイルにドラッグすると、300DPIの圧縮TIFFに変換されます。
Pythonを使用すると、これが私が最終的に得たものです
import os
os.popen(' '.join([
self._ghostscriptPath + 'gswin32c.exe',
'-q',
'-dNOPAUSE',
'-dBATCH',
'-r300',
'-sDEVICE=tiff12nc',
'-sPAPERSIZE=a4',
'-sOutputFile=%s %s' % (tifDest, pdfSource),
]))
PDF Focus .Net は、次のような方法でそれを行うことができます。
1.PDF からTIFFへ
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
string pdfPath = @"c:\My.pdf";
string imageFolder = @"c:\images\";
f.OpenPdf(pdfPath);
if (f.PageCount > 0)
{
//Save all PDF pages to image folder as tiff images, 200 dpi
int result = f.ToImage(imageFolder, "page",System.Drawing.Imaging.ImageFormat.Tiff, 200);
}
2. PDF からマルチページ TIFF へ
//Convert PDF file to Multipage TIFF file
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
string pdfPath = @"c:\Document.pdf";
string tiffPath = @"c:\Result.tiff";
f.OpenPdf(pdfPath);
if (f.PageCount > 0)
{
f.ToMultipageTiff(tiffPath, 120) == 0)
{
System.Diagnostics.Process.Start(tiffPath);
}
}
ABCPDFも同様に行うことができます -- チェックアウトhttp://www.websupergoo.com/helppdf6net/default.html
pdf2tiffはどうですか?http://python.net/~gherman/pdf2tiff.html
https://pypi.org/project/pdf2tiff/
また、pdf2ps、ps2image を使用して、結果の画像を他のユーティリティで tiff に変換することもできます ('paul' を覚えています [paul - さらに別の画像ビューア (PNG、TIFF、GIF、JPG などを表示します)])。
免責事項:私が推奨している製品のために働く
Atalasoft には、 PDF を TIFF に変換できる .NET ライブラリがあります。私たちは FOXIT のパートナーであるため、PDF のレンダリングは非常に優れています。
これも試してみては?PDF フォーカス
この .Net ライブラリを使用すると、問題を解決できます:)
このコードが役に立ちます (1000 個の PDF ファイルを C# で 300 dpi の TIFF ファイルに変換します):
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
string[] pdfFiles = Directory.GetFiles(@"d:\Folder with 1000 pdfs\", "*.pdf");
string folderWithTiffs = @"d:\Folder with TIFFs\";
foreach (string pdffile in pdfFiles)
{
f.OpenPdf(pdffile);
if (f.PageCount > 0)
{
//save all pages to tiff files with 300 dpi
f.ToImage(folderWithTiffs, Path.GetFileNameWithoutExtension(pdffile), System.Drawing.Imaging.ImageFormat.Tiff, 300);
}
f.ClosePdf();
}
私はPDFTIFF.comがPDFをTIFFに変換するのが好きです、それは無制限のページを扱うことができます