Beste Möglichkeit, PDF-Dateien in TIFF-Dateien zu konvertieren [geschlossen]


72

Ich habe ungefähr 1000 PDF-Dateien und muss sie in 300-dpi-TIFF-Dateien konvertieren. Was ist der beste Weg, dies zu tun? Wenn es ein SDK oder etwas oder ein Tool gibt, das per Skript erstellt werden kann, wäre dies ideal.


Dies ist die Lösung, die ich verwende: [Pdf an Tiff mit Xpdfs pdftoppm und LibTIFFs ppm2tiff und tiffcp (optional, nur wenn mehrseitig)] [1] [1]: stackoverflow.com/a/12868254/551460
Ronald Wang

Gibt es eine endgültige Lösung mit einem vollständigen Quellcodebeispiel? Vielleicht mit Powershell-Skript.
Kiquenet

@Kiquenet Ich habe eine Lösung mit Powershell gepostet. Siehe es unten ...
Gyurisc

1
Verwenden Sie Ghrostscript als gs -q -dNOPAUSE -r300x300 -sDEVICE=tiff24nc -sOutputFile=output.tif input.pdf -c quit(unter Windows ist der Befehl gswin32c), um 300x300 dpi und 24bit Farbbild zu erzeugen
Juanmirocks

Der beste Weg, um PDF-Dateien in TIFF-Dateien zu konvertieren? Sicher: Verwenden Sie pdftoppmwie folgt : mkdir images && pdftoppm -tiff -r 300 mypdf.pdf images/pg. Einzelheiten, Verwendung und weitere Informationen finden Sie hier: askubuntu.com/questions/150100/… .
Gabriel Staples

Antworten:


64

Verwenden Sie Imagemagick oder noch besser Ghostscript.

http://www.ibm.com/developerworks/library/l-graf2/#N101C2 hat ein Beispiel für imagemagick:

convert foo.pdf pages-%03d.tiff

http://www.asmail.be/msg0055376363.html enthält ein Beispiel für Ghostscript:

gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=a.tif foo.pdf -c quit

Ich würde Ghostscript installieren und die Manpage für gs lesen, um zu sehen, welche genauen Optionen benötigt werden und experimentieren.


2
Ghostscript funktioniert wirklich gut, soweit ich verstehe, verwendet imagemagick Ghostscript für PDF-Operationen. Ist das richtig?
Gyurisc

das höre ich, aber ich bin kein Experte für ImageMagick-Interna;)
Aeon

2
handhabt imagemagick mehrseitiges pdf -> tiff richtig?
David Shaked

1
Wow, Ghostscript muss wirklich seine Kommandozeilenschnittstelle bereinigen!
CpILL

imagemagickfunktionierte gut ohne Konfiguration. Ich konnte nicht ghostscriptrichtig konfigurieren , um ein hochauflösendes Farbbild zu erhalten.
Seanny123

43

Mit GhostScript über die Befehlszeile habe ich in der Vergangenheit Folgendes verwendet:

unter 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

Für eine große Anzahl von Dateien kann ein einfaches Batch- / Shell-Skript verwendet werden, um eine beliebige Anzahl von Dateien zu konvertieren ...


3
+1. Nützlicher Befehl. Aber meine Farbfigur wird in Schwarzweiß ausgegeben. Irgendeine Idee warum?
Faheem Mitha

6
-sDEVICE=tiffg4ist ein Schwarzweiß-Faxkomprimierungsmodell. Siehe: pages.cs.wisc.edu/~ghost/doc/AFPL/8.00/Devices.htm#TIFF
HairyFotr

20
Meistens möchten Sie ein PDF in TIFF-Bilder mit einer Auflösung von 300 x 300 dpi und nicht mit einer Größe von 300 x 300 konvertieren. Aus diesem Grund ersetzen Sie den -gSchalter durch -r:gswin32c -dNOPAUSE -q -r300x300 ...
berezovskyi

5
Danke @HairyFotr. Für alle anderen Besucher sollten Sie -sDEVICE=tiff24nc24-Bit-RGB oder -sDEVICE=tiff12nc12-Bit (8/4 Bit pro Kanal) verwenden.
naught101

18

Ich habe ein kleines Powershell-Skript geschrieben, um eine Verzeichnisstruktur zu durchlaufen und alle PDF-Dateien mit Ghostscript in TIFF-Dateien zu konvertieren. Hier ist mein Skript:

$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
    }
}

Vielen Dank!! das hat mir wirklich geholfen!
Codekitty

2
Nach 7 Jahren ist dies weiterhin hilfreich! Ich möchte nur hinzufügen, dass eine Person, die keine PowerShell-Erfahrung hat, Folgendes tun muss: 1. Bearbeiten Sie den Wert $ tool so, dass er dem Pfad und der Version auf Ihrem System entspricht. 2. Öffnen Sie PowerShell und CD in das Verzeichnis, in dem die PDFs gespeichert sind. 3. Fügen Sie den Code in das PowerShell-Fenster ein. Ich musste ein paar Mal die Eingabetaste drücken, um es zum Laufen zu bringen. Vielen Dank Gyurisc
Timothy Barmann

9

1) Installieren Sie GhostScript

2) Installieren Sie ImageMagick

3) Erstellen Sie "Convert-to-TIFF.bat" (Windows XP, Vista, 7) und verwenden Sie die folgende Zeile:

for %%f in (%*) DO "C:\Program Files\ImageMagick-6.6.4-Q16\convert.exe" -density 300 -compress lzw %%f %%f.tiff

Durch Ziehen einer beliebigen Anzahl von einseitigen PDF-Dateien in diese Datei werden diese in komprimierte TIFFs mit 300 DPI konvertiert.


GhostScript ist erforderlich? Wenn ich nur ImageMagick installiere?
Kiquenet

Das hat perfekt funktioniert. Danke vielmals.
jsquaredz

6

Mit Python habe ich das erreicht

    import os
    os.popen(' '.join([
                       self._ghostscriptPath + 'gswin32c.exe', 
                       '-q',
                       '-dNOPAUSE',
                       '-dBATCH',
                       '-r300',
                       '-sDEVICE=tiff12nc',
                       '-sPAPERSIZE=a4',
                       '-sOutputFile=%s %s' % (tifDest, pdfSource),
                       ]))

1
Im Allgemeinen möchten Sie hierfür einen Unterprozess verwenden. os.popen gilt als veraltet. Die Syntax ist nahezu identisch.
mlissner

4

Das PDF Focus .Net kann dies folgendermaßen tun:

1. PDF zu 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 zu 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);
    }
}   


3

Erforderliches Ghostscript & Tiffcp In Ubuntu getestet

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')


2

Haftungsausschluss: Arbeit für Produkt, das ich empfehle

Atalasoft verfügt über eine .NET-Bibliothek, die PDF in TIFF konvertieren kann. Wir sind Partner von FOXIT, daher ist das PDF-Rendering sehr gut.


2

Vielleicht auch mal probieren? PDF-Fokus

Mit dieser .Net-Bibliothek können Sie das Problem lösen :)

Dieser Code hilft (Konvertieren von 1000 PDF-Dateien in 300-dpi-TIFF-Dateien in 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();
    }

2

https://pypi.org/project/pdf2tiff/

Sie können auch pdf2ps, ps2image verwenden und dann mit anderen Dienstprogrammen aus dem resultierenden Bild in tiff konvertieren (ich erinnere mich an 'paul' [paul - Noch ein Bildbetrachter (zeigt PNG, TIFF, GIF, JPG usw. an)).


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.