J'ai environ 1000 fichiers pdf et j'ai besoin de les convertir en fichiers tiff de 300 dpi. Quelle est la meilleure façon de procéder? S'il y a un SDK ou quelque chose ou un outil pouvant être accepté, ce serait l'idéal.
Utilisez Imagemagick ou, mieux encore, Ghostscript.
http://www.ibm.com/developerworks/library/l-graf2/#N101C2 a un exemple pour imagemagick:
convert foo.pdf pages-%03d.tiff
http://www.asmail.be/msg0055376363.html a un exemple pour ghostscript:
gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=a.tif foo.pdf -c quit
Je voudrais installer ghostscript et lire la page de manuel de gs pour voir les options exactes nécessaires et les expérimenter.
En utilisant GhostScript à partir de la ligne de commande, j'ai déjà utilisé les outils suivants:
sous Windows:
gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
sur * nix:
gs -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf
Pour un grand nombre de fichiers, un simple script batch/shell peut être utilisé pour convertir un nombre arbitraire de fichiers ...
J'ai écrit un petit script PowerShell pour passer par une structure de répertoires et convertir tous les fichiers pdf en fichiers tiff à l'aide de ghostscript. Voici mon 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
}
}
1) Installer GhostScript
2) Installer ImageMagick
3) Créez "Convert-to-TIFF.bat" (Windows XP, Vista, 7) et utilisez la ligne suivante:
for %%f in (%*) DO "C:\Program Files\ImageMagick-6.6.4-Q16\convert.exe" -density 300 -compress lzw %%f %%f.tiff
Si vous faites glisser un nombre illimité de fichiers d'une seule page PDF) sur ce fichier, ils seront convertis en fichiers TIFF compressés, à 300 DPI.
en utilisant python c'est ce que j'ai fini avec
import os
os.popen(' '.join([
self._ghostscriptPath + 'gswin32c.exe',
'-q',
'-dNOPAUSE',
'-dBATCH',
'-r300',
'-sDEVICE=tiff12nc',
'-sPAPERSIZE=a4',
'-sOutputFile=%s %s' % (tifDest, pdfSource),
]))
Le PDF Focus .Net peut le faire de cette manière:
1.PDF en 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 en 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);
}
}
ABCPDF peut également le faire - vérifiez http://www.websupergoo.com/helppdf6net/default.html
Requis ghostscript & tiffcp Testé sous 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')
Que diriez-vous de pdf2tiff? http://python.net/~gherman/pdf2tiff.html
Peut-être aussi essayer ceci? PDF Focus
Cette bibliothèque .Net vous permet de résoudre le problème :)
Ce code vous aidera (Convertissez 1000 PDF en fichiers TIFF 300 dpi en C #):
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();
}
https://pypi.org/project/pdf2tiff/
Vous pouvez également utiliser pdf2ps, ps2image, puis convertir l’image obtenue en tiff avec d’autres utilitaires (je me souviens de 'paul' [paul - Encore un autre visualiseur d’images (affiche les formats PNG, TIFF, GIF, JPG, etc.])
Avertissement: travail pour le produit que je recommande
Atalasoft possède une bibliothèque .NET qui peut convertir PDF au format TIFF - nous sommes un partenaire de FOXIT, donc le PDF rendu c'est très bien.
J'aime PDFTIFF.com à convertir PDF au format TIFF , il peut gérer un nombre illimité de pages