Kopieren Sie die PDF-Textebene in eine andere PDF-Datei

1

Angenommen, Sie haben 2 "gescannte" PDF-Dateien.

  1. Groß, aber ohne Textebene.
  2. Kleiner (mit Bildern von geringerer Qualität), aber mit korrekter Textebene.

Beide Dateien enthalten gleiche Bilder, die sich nur durch ihre Komprimierung unterscheiden.

Ziel ist es, die gleiche Textebene in das 1. PDF einzubetten .

"Just OCR 1st file" ist keine Lösung. Ich weiß, dass Acrobat (und einige andere Tools) OCR-fähig sind, ohne die Bildebene zu ändern, aber ich bin mit ihrer OCR-Qualität nicht zufrieden.

Ich sehe also zwei Möglichkeiten:

  1. Export-Import-Textebene irgendwie
  2. Ersetzen Sie Bilder in der Bildebene irgendwie.

Zum 1. Weg habe ich nichts gefunden. 2. Art und Weise betrifft, so habe ich zwei Werkzeuge gefunden, die ganz in der Nähe sind hocr2pdf und pdf2text , aber sie sind immer noch nicht genug, soweit ich das verstanden. :(

PS: Anwendungsbeispiel:

Ich habe gerade ein anderes Beispiel gefunden, in dem eine solche Operation auf systematische Weise nützlich ist.

Wenn Sie pdf-1 (ohne Textebene) mit der Bildkomprimierung "jpg" gescannt haben, erhalten Sie mit Abbyy finereader das OCR-PDF pdf-2. Es wäre entweder ziemlich groß, wenn Sie eine verlustfreie Bildkomprimierung wählen, oder die Bildqualität wäre erheblich geringer als bei PDF-1. In vielen Fällen empfiehlt es sich, die Quellbildkomprimierung unverändert zu lassen und das Bild nicht erneut zu komprimieren.

i3v
quelle
Wie ist es möglich, dass das gescannte Dokument eine bessere Qualität als das Original hat? Vermisse ich etwas?
Gronostaj
@gronostaj Em .. Das habe ich nicht gesagt ... Es gibt pdf-1 mit Bildern in besserer Qualität und pdf-2 mit Bildern in geringerer Qualität, aber mit Textebene. Keiner von ihnen ist "original". Tatsächlich kann man pdf-2 wie OCR und komprimiertes pdf-1 behandeln. In diesem Fall möchte ich beide kombinieren, um sowohl eine Textebene als auch Bilder mit höherer Qualität zu erhalten.
i3v

Antworten:

2

Diese Antwort auf Stackoverflow hat eine Lösung. Sie können den Text mit Koordinaten aus Ihrem PDF-2 mit pdftotext -bboxoder dem Python-Paket PDFMiner extrahieren , diesen verborgenen Text mit dem Python-Paket ReportLab in ein neues PDF schreiben und dieses PDF mit Ihrem PDF-1 mit PDFtk zusammenführen eine GUI für Windows auf der Webseite, die Kommandozeile für Unix heißt jetzt PDFtk Server.)

Sie können auch versuchen, PDF-1 und PDF-2 mit PDFtk direkt zusammenzuführen. Rennen pdftk pdf-2 multistamp pdf-1 output out.pdf. Dadurch wird jede Seite von pdf-1 vor die entsprechende Seite von pdf-2 gestellt, sodass Sie nur die Bilder von pdf-1 sehen (vorausgesetzt, es handelt sich um gescannte Bilder, die keinen transparenten Hintergrund haben), sondern den verborgenen Text von pdf-2 wird mitgeliefert. Der Nachteil ist, dass dies sehr groß sein kann, da es zwei Kopien von jedem Seitenbild enthält. Ich habe überprüft, dass dies funktioniert, und die Größe der PDF-Ausgabe ist die Summe der Größen der Eingaben.

Nick Matteo
quelle
Vielen Dank für den Hinweis, PDFtk hat mir tatsächlich ermöglicht, dieses Problem zu lösen. Übrigens kann die Windows-Version „PDFtk Free“ dasselbe tun, sofern es auch ein Befehlszeilentool „pdftk.exe“ gibt.
i3v
Um eine Situation zu vermeiden, in der die Größe des Ausgabe-PDFs gleich der Summe der Größen der Original-PDFs ist, habe ich das PDF einfach mit der PDF-Optimierungsfunktion von Abode Acrobat „optimiert“ (Datei-> Speichern unter-> Speichern als-> Typ->) Adobe PDF-Dateien, optimiert (* .pdf) -> Einstellungen -> Bilder -> [niedrigstmögliche ppi für alle Bildtypen einstellen, 9 für mich usw.] -> OK -> Speichern). Dies würde zu einer relativ kleinen PDF-Datei führen, daher ist es keine große Sache, die Größe der Original-PDF-Datei zu ändern. Dieser Workflow funktioniert sogar für PDFs mit eingebetteten Kommentaren fast in Ordnung (das Problem ist - Hervorheben wird "nicht transparent")
i3v
0

Wenn dies im Einzelfall erforderlich ist, sollte LibreOffice + GIMP die Aufgabe übernehmen. Verwenden Sie zunächst LibreOffice Draw, um die qualitativ hochwertigen Scans zu extrahieren. Bearbeiten Sie sie anschließend mit GIMP, um gescannten Text zu entfernen. Fügen Sie das Bild schließlich der OCR-Datei auf einer niedrigeren Ebene hinzu.

Aber wenn Sie es als Teil einer Routine tun, dann haben Sie wahrscheinlich ein Problem mit Ihrem Workflow.

gronostaj
quelle
1) Tatsächlich muss ich gescannten Text nicht entfernen. Die Textebene sollte unterhalb der Bildebene liegen. 2) Ich kann Seitenbilder einzeln ersetzen ... Die einzige Frage ist: Wie automatisiere ich dies für eine große Anzahl von Seiten? Es tut mir leid, dass meine erste Frage so irreführend war. Ich habe gerade "PS" zu der ersten Frage hinzugefügt, hoffe, es zeigt ein mögliches Anwendungsbeispiel.
i3v