У меня около 1000 PDF файлов, и мне нужно преобразовать их в файлы с разрешением 300 dpi. Каков наилучший способ сделать это? Если есть SDK или что-то или инструмент, который может быть сценарием, это было бы идеально.
Лучший способ конвертировать PDF файлы в файлы tiff
Ответ 1
Используйте 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 и прочитал страницу man для gs, чтобы узнать, какие точные параметры необходимы и экспериментировать.
Ответ 2
Используя GhostScript из командной строки, я использовал в прошлом следующее:
в Windows:
gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
on * nix:
gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
Для большого количества файлов для преобразования произвольного количества файлов можно использовать простой пакет/оболочку script...
Ответ 3
Я написал немного powershell script, чтобы пройти через структуру каталогов и преобразовать все файлы PDF в файлы tiff с помощью ghostscript. Вот мой script:
$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
}
}
Ответ 4
1) Установите GhostScript
2) Установите ImageMagick
3) Создайте "Конвертировать в 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 файлов в этот файл преобразует их в сжатые TIFF, при 300 DPI.
Ответ 5
используя python, это то, что я закончил с
import os
os.popen(' '.join([
self._ghostscriptPath + 'gswin32c.exe',
'-q',
'-dNOPAUSE',
'-dBATCH',
'-r300',
'-sDEVICE=tiff12nc',
'-sPAPERSIZE=a4',
'-sOutputFile=%s %s' % (tifDest, pdfSource),
]))
Ответ 6
PDF Focus.Net может сделать это следующим образом:
1. PDF to 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 для Multipage-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);
}
}
Ответ 7
ABCPDF также может это сделать - проверьте http://www.websupergoo.com/helppdf6net/default.html
Ответ 8
Требуется ghostscript и tiffcp Протестировано в Ubuntu
import os
def pdf2tiff(source, destination):
idx = destination.rindex('.')
destination = destination[:idx]
args = [
'-q', '-dNOPAUSE', '-dBATCH',
'-sDEVICE=tiffg4',
'-r600', '-sPAPERSIZE=a4',
'-sOutputFile=' + destination + '__%03d.tiff'
]
gs_cmd = 'gs ' + ' '.join(args) +' '+ source
os.system(gs_cmd)
args = [destination + '__*.tiff', destination + '.tiff' ]
tiffcp_cmd = 'tiffcp ' + ' '.join(args)
os.system(tiffcp_cmd)
args = [destination + '__*.tiff']
rm_cmd = 'rm ' + ' '.join(args)
os.system(rm_cmd)
pdf2tiff('abc.pdf', 'abc.tiff')
Ответ 9
Как насчет pdf2tiff? http://python.net/~gherman/pdf2tiff.html
Ответ 10
https://pypi.org/project/pdf2tiff/
Вы также можете использовать pdf2ps, ps2image, а затем преобразовать полученное изображение в tiff с другими утилитами (я помню "paul" [paul - еще один просмотрщик изображений (отображает PNG, TIFF, GIF, JPG и т.д.])
Ответ 11
Отказ от ответственности: работайте над продуктом, который я рекомендую
Atalasoft имеет библиотеку .NET, которая может конвертировать PDF в TIFF - мы являемся партнером FOXIT, поэтому рендеринг PDF очень хорошо.
Ответ 12
Может быть, попробуйте это? Фокус в PDF
Эта библиотека .Net позволяет решить проблему:)
Этот код поможет (конвертировать 1000 файлов PDF в файлы TIFF с разрешением 300 dpi в С#):
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();
}
Ответ 13
Мне нравится PDFTIFF.com для конвертировать PDF в TIFF, он может обрабатывать неограниченные страницы