Ich habe einen zweiseitigen Bericht in Word konvertiert, um etwas zu überprüfen, und der zweite Absatz kam wie folgt zurück:
Der Umsatz stieg in der dritten Mitarbeiterzahl um vier, das Quartal, die von zwei unterstützt wurden. Die Einstellung großer Verlängerungen wurde im Plan für das vierte Quartal August unterzeichnet. Rand flach gehalten. ist in sechs Rollen unverändert.
Zwei Spalten ganz normaler Prosa, die Zeile für Zeile über die Gosse gelesen werden, so wird jeder Satz in den neben ihm gespleißt. Nichts war kaputt. Der Konverter hat genau das getan, was ein Konverter kann, und die Lücke zwischen dem und dem, was der Ausdruck "PDF zu Wort" verspricht, ist das gesamte Thema dieses Leitfadens. Jede unten zitierte Ausgabe stammt aus der Ausführung der Konvertierung und nicht von der Beschreibung.
tl; dr: Ein PDF speichert Glyphen an Koordinaten. Es werden keine Absätze, Spalten, Tabellen oder Überschriften gespeichert, daher muss ein Konverter sie aus Positionen ableiten, und einige dieser Schlussfolgerungen sind auf eine Weise falsch, die Sie vorhersagen können. Gemessen an einem Testbericht: zwei Spalten, die Zeile für Zeile verschachtelt sind, eine vierreihige Tabelle, die in den darunter liegenden Absatz zusammengeflacht wird und "Region Q2 Q3 EMEA 412 455 Amer 388 401 APAC 120 166" und eine Überschrift, die in den darunter liegenden Absatz zusammengeführt wurde, und eine Seite ohne Textschicht, die überhaupt nichts produzierte. Was Sie zuverlässig zurückbekommen, ist die bearbeitbare Prosa in der Seitenreihenfolge, was für die meisten Jobs das ist, was Sie wollten. der PDF zu Word-Konverter Tut es im Browser, so dass das Dokument nicht hochgeladen wird.
Was wird in einem PDF gespeichert?
Anleitung zum Malen einer Seite, kein Dokument.
Ein PDF-Inhaltsstream sagt Dinge wie "Diese Schriftart in dieser Größe festlegen, auf x 60, Y 720 anzeigen" der Spezifikation selbst ist eine Beschreibung eines Malmodells, und die Textoperatoren sitzen neben denen zum Zeichnen von Linien und Füllformen. Es gibt kein Objekt in der Datei, das "Absatz" bedeutet, kein Objekt, das "dies ist eine Tabelle" bedeutet, und nichts, das aufzeichnet, dass zwei Textblöcke eher Spalten als eine breite sind. Das Format wurde so gestaltet, dass eine Seite überall identisch druckt, und dies erreicht es, indem sie die Seite eher als Markierungen als als Inhalt bezeichnet.
Ein Konverter erhält also eine Liste positionierter Läufe. pdf.js, der Parser, auf dem dieser läuft, gibt sie genau so zurück, wie die Seite sie zeichnet. In der Testdatei produzierte Seite eins 34 davon und Seite zwei produzierte 4. Jeder Lauf ist eine Zeichenfolge mit einem X, einem Y, einer Breite und einer Schrifthöhe. Die Reihenfolge, in der sie ankommen, ist die Reihenfolge, in der die Seite gezeichnet wurde, was nicht unbedingt die Reihenfolge ist, in der Sie sie lesen würden.
Alles, was ein Word-Dokument braucht, das ein PDF nicht hat, muss der Konverter aus diesen vier Zahlen rekonstruieren. Diese Rekonstruktion ist das Ganze, was folgt, auch überall, wo es schief geht.
Wie erstellt ein Konverter Absätze aus Koordinaten neu?
in zwei Durchgängen mit jeweils einer Schwelle auf.
Der erste Durchgangs-Gruppen wird nach Basislinie in Linien verlaufen: Läufe, deren Y-Werte innerhalb einer halben Schrifthöhe voneinander liegen, sind eine Linie. Die zweiten Gruppen ordnen sich in Absätze durch die vertikale Lücke zwischen ihnen. Eine Lücke, die größer als das 1,45-fache des üblichen Zeilenabstands ist, beginnt einen neuen Absatz, bei dem "üblich" die mittlere Lücke auf dieser Seite ist, anstatt eine feste Zahl, sodass sich die Regel an ein Dokument anpasst, das in 9-Punkt- oder 14-Punkt-Punkten festgelegt ist.
Innerhalb einer Linie befindet sich eine dritte Schwelle. pdf.js teilt oft ein einzelnes Wort auf mehrere Läufe ohne Lücke zwischen ihnen, so dass das Verbinden auf einem Leerzeichen "Dateiname" in "F i l e n a m e" verwandelt. Die Lösung besteht darin, einen Leerzeichen nur einzufügen, wenn der horizontale Spalt ein Viertel der Schrifthöhe überschreitet, was ungefähr der Breite eines realen Wortraums entspricht.
Diese drei Zahlen entscheiden fast alles über die Ausgabe. Wenn das Ergebnis gut ist, hatten sie Recht. Wenn sich eine Überschrift an den darunter liegenden Absatz hält, lag die Lücke unter dem 1,45-fachen des Medians und in der Regel wurde ein Absatz angegeben.
Warum kommen zwei Säulen verschachtelt heraus?
Denn der einzige Beweis für eine Spalte ist ein horizontaler Spalt, und die Liniengruppierung betrachtet zuerst die vertikale Position.
Die beiden Blöcke auf meiner Testseite saßen bei x 60 und x 320, mit ihren Linien auf gemeinsamen Basislinien. Die Gruppierung sah sechs Grundlinien, von denen jede Text von beiden Seiten trug, und las jede über. Das Ergebnis ist der Absatz oben in diesem Handbuch: jede Zeile der linken Spalte, gefolgt von der Linie daneben.
Dies ist der gleiche Fehler wie verschlüsselte Spalten in OCR und hat die gleiche Wurzel: Die Lesereihenfolge ist ein Urteil über ein Layout, das aus der Geometrie besteht, durch etwas, das nicht gelesen werden kann.
Konverter, die Spalten gut handhaben, führen zuerst einen Seitensegmentierungsschritt durch, suchen nach einem konsistenten vertikalen Leerzeichen, das die Höhe der Seite verlängert, und trennt die Seite dort vor einer Zeilengruppierung. Das funktioniert auf einer Zeitung oder einer Zeitschrift, wo die Rinne breit und regelmäßig ist. Es ist weniger zuverlässig in den allgemeinen Fällen, in denen eine Seitenleiste, ein Ziehzitat oder eine Tabelle mit zwei Spalten das Band durchbricht.
Wenn Ihr Dokument Spalten enthält, besteht die praktische Antwort darin, die Ausgabe zu überprüfen und den ersten Absatz jeder Seite zu korrigieren oder eine Spalte zu einem Zeitpunkt zu konvertieren, wenn das Dokument lang genug ist, um es wert zu sein.
Was passiert mit einem Tisch?
es wird ein Satz.
Meine Testdatei hatte eine vierzeilige Tabelle mit drei Spalten. Hier ist das Ganze nach der Umwandlung:
Region Q2 Q3 EMEA 412 455 AMER 388 401 APAC 120 166
Jeder Wert hat überlebt. Die Struktur nicht. Aus dieser Zeile kann man nicht erkennen, dass 412 EMEAs Q2-Figur ist, ohne die Positionen zu zählen und die Form des Originals zu kennen.
Der Grund ist, dass die meisten PDFs auch keine Tabellen enthalten. Eine Tabelle in einem PDF ist normalerweise ein Text, der an Koordinaten mit einigen Linien gezeichnet wird, und die Linien sind Grafikoperationen, die nichts in der Datei enthalten, die sie mit dem von ihnen eingeschlossenen Text verbinden. Ein Konverter müsste die Ausrichtung der Zahlen ermitteln, ein Gitter ableiten und entscheiden, welche Läufe zu welcher Zelle gehören, was eher ein Forschungsproblem als ein Analyseproblem ist.
Einige PDFs haben eine echte Struktur, durch Tags, die für die Barrierefreiheit hinzugefügt wurden, und diese konvertieren weitaus besser. Sie sind eine Minderheit: Tagged PDFs stammen aus einem sorgfältigen Export aus Word oder InDesign, nicht von einem Druckertreiber.
Wenn die Tabelle das gewünschte ist, kopieren Sie sie von Hand in eine Tabelle oder konvertieren Sie das PDF in Text und formen Sie es dort um. Eine konvertierte Word-Datei gibt Ihnen keine Zellen.
Warum ist meine Überschrift in den Absatz verschmelzen?
Weil der Raum darunter nicht groß genug war, um die Absatzregel auszulösen.
Auf Seite zwei der Testdatei saß die Überschrift "Notizen" 40 Punkte über dem Körpertext, während die Körperlinien 18 Punkte voneinander entfernt waren. Diese Lücke ist das 2,2-fache des Zeilenabstands, der sie hätte trennen sollen, und das nicht, da die mittlere Lücke auf einer Seite mit nur vier Läufen keine zuverlässige Schätzung von irgendetwas ist. Die Ausgabe war:
Notes Note 14 covers intercompany revenue and the treatment of
deferred items carried over from the prior year.
Dies ist die ehrliche Form des gesamten Problems. Schwellenwertregeln funktionieren gut auf einer Seite mit genügend Text, um einen Basisrhythmus zu etablieren und auf einem spärlichen. Eine Titelseite, eine kurze Notiz, ein Deckblatt oder ein Formular werden oft als ein Folgeabsatz zurückgegeben.
Es ist auch die einfachste Sache, die nachträglich zu beheben ist. Überschriften sind für einen menschlichen Leser offensichtlich, und das Drücken der Rückkehr an der richtigen Stelle dauert eine Sekunde, was weniger Zeit ist, als jedes Werkzeug benötigen würde, um es richtig zu machen.
Was passiert mit einer gescannten Seite?
Nichts kommt heraus, und das ist das richtige Verhalten.
Die dritte Seite meiner Testdatei hatte überhaupt keine Textebene, sondern nur ein graues Rechteck, das für einen Scan aufgestellt wurde. pdf.js gab keine Läufe zurück und der Konverter erzeugte keine Absätze dafür.
Die Seite wird noch gezählt. Es erscheint in der Word-Datei als leere Seite, sodass die Seite nach dem Ausrichten am Original unterbrochen wird, was wichtig ist, wenn jemand mit Seitenzahlen arbeitet. Ein Konverter, der es lautlos fallen ließ, würde jede spätere Seite um eins verschieben.
Ein PDF, dessen Seiten alle Bilder sind, ist ein Scan, und kein Konverter kann Text daraus extrahieren, da kein Text extrahiert werden muss. Was das braucht, ist OCR, das das Bild der Buchstaben und rät die Zeichen liest und die eigene Fehlerrate bringt. Die gemessene Version dieses Handels ist in Der Leitfaden für das, was OCR unterbricht: Über drei Grad nach oben neigen, ruiniert einen Scan, nicht die Auflösung.
Eine nützliche Faustregel: Öffnen Sie das PDF und versuchen Sie, einen Satz mit dem Cursor auszuwählen. Wenn der Text hervorgehoben wird, kann ein Konverter ihn lesen. Wenn Sie ein Auswahlrechteck über einem Bild erhalten, benötigen Sie zuerst OCR.
Was ist in der .docx, die herauskommt?
Drei Dateien in einem Zip, und das ist wirklich alles, was es braucht.
A .docx ist ein offenes Verpackungs-Konventionsarchiv, das standardisiert ist ECMA-376: Ein Zip mit XML-Teilen sowie ein Manifest, das die einzelnen Teile enthält. Microsoft-eigen Übersicht des Formats Geht die gleichen drei Teile. Das Minimum, das sich als Word-Dokument öffnet, sind drei Einträge:
| Teil | Zweck |
|---|---|
[Content_Types].xml |
deklariert den Medientyp jedes Teils im Paket |
_rels/.rels |
Punkte auf den Hauptdokumentteil |
word/document.xml |
der Inhalt selbst |
Alles andere, was eine Word-Datei normalerweise enthält, Stile, Schriftarten, Themen, Einstellungen, Nummerierungsdefinitionen, ist optional. Lassen Sie sie aus und der Leser wendet seine Standardeinstellungen an.
Das Testdokument, 83 Wörter über drei Seiten, kam zu einem 1.305 Byte .docx, dessen word/document.xml ist 1.169 Byte. Ich habe es mit Apples eigenem Dokumentenleser geöffnet, der TextEdit und Pages verwenden, und es wurde jeder Absatz in der Reihenfolge mit dem Seitenumbruch wiedergegeben. Ein Minimalpaket ist kein degradiertes.
Ein Detail in dieser XML ist wichtiger als es aussieht. Jeder Lauf wird mit geschrieben xml:space="preserve"drohen Ohne sie verliert ein Lauf, der mit einem Leerzeichen beginnt oder endet, und jede Zeile, die in das Original eingewickelt wurde, kommt mit dem letzten Wort zurück, das mit dem nächsten verbunden ist.
Was passiert mit den Bildern?
Sie werden gelöscht und die Word-Datei erwähnt es nicht.
Das hier geschriebene Paket besteht aus drei Teilen und keiner davon ist ein Medienteil. Ein Logo, ein Diagramm, eine gescannte Signatur, ein in den Bericht eingebetteter Screenshot: Alle weg, ohne Platzhalter, wo sie waren. Der Text, der sie umgab, schließt sich, als wären sie nie dort gewesen.
Dies ist eine Folge des gleichen Designs, das die Ausgabe klein und zuverlässig macht. Das Übertragen eines Bildes bedeutet, es aus dem PDF zu extrahieren, sein Format zu bestimmen und es in das zu schreiben word/media/, Hinzufügen eines Inhaltstyps, Hinzufügen eines Beziehungsteils und Platzieren eines Zeichnungselements am richtigen Punkt im Fluss. Jeder von diesen ist ein Ort, an dem ein Leser die Datei ablehnen kann, und ein Textverarbeitungsprogramm, das sich nicht öffnen lässt, ist schlimmer als bei einem fehlenden Logo.
Für die Dokumente ist es am wichtigsten, bei denen ein Bild eher der Inhalt als die Dekoration ist. Ein Diagramm in einem Bericht wird in nichts umgewandelt, und ein Leser der Wortdatei hat keine Möglichkeit zu wissen, dass es jemals zu einer Tabelle gekommen ist. Überprüfen Sie das Original neben der Konvertierung, wenn in der Prosa auf eine Figur Bezug genommen wird.
Warum weigert sich die Datei manchmal überhaupt, sich zu öffnen?
Steuerzeichen, die XML und PDFs verbieten.
Eine PDF-Textschicht greift Zeichen aus dem produzierten Text auf: Formular-Feeds aus einer Druckpipeline, Nullbytes aus einer defekten Codierung, andere C0-Steuercodes, die nichts in einem Dokument bedeuten. XML 1.0 Die meisten davon sind nicht zugelassen, auch nicht entgangen: Der Zeichenbereich, den die Spezifikation zulässt, beginnt bei Tab, Newline und Wagenrücklauf und überspringt den Rest des C0-Blocks.
Das Scheitern ist nicht anmutig. Word warnt oder lässt das Zeichen nicht fallen, es weigert sich, die Datei zu öffnen und sagt, dass der Inhalt nicht lesbar ist. Der Konverter entfernt diese Zeichen vor dem Schreiben, anstatt zu versuchen, ihnen zu entkommen. Sie hatten keine Bedeutung in der Quelle und würden Sie das gesamte Dokument kosten.
Wenn Sie jemals eine .docx erhalten, die ein Textverarbeitungsprogramm als unlesbar ablehnen, ist dies das erste, was Sie vermuten müssen, und deshalb muss ein Konverter, der XML von Hand schreibt, überhaupt darüber nachdenken.
Sollten Sie in Wort oder in Klartext konvertieren?
Word Wenn Sie es bearbeiten möchten, schreiben Sie Text, wenn Sie es verarbeiten möchten.
Sie teilen die gleiche Extraktion. Der Unterschied ist nur das, was am Ende geschrieben wird: Einer schreibt Absätze in eine Zip von XML, der andere schreibt sie in eine .txt-Datei.
| Du willst | einsetzen | weil |
|---|---|---|
| Bearbeiten Sie die Prosa und senden Sie sie weiter | pdf zu Wort | Absatzstruktur, Seitenumbrüche, etwas, das ein Kollege öffnen kann |
| Suchen, grep oder füttern Sie es einem Skript | pdf zu text | Kein Aufschlag im Weg |
| Halten Sie das Layout genau | Weder noch | Bearbeiten Sie das PDF oder holen Sie sich die Originaldatei |
| Lesen Sie einen Scan | OCR zuerst | Es gibt keine Textebene zum Extrahieren |
Die dritte Reihe ist diejenige, mit der es sich zu sitzen lohnt. Wenn das Layout wichtig ist, ist die Konvertierung in Wort die falsche Richtung, da die Konvertierung dort ist, wo das Layout verloren geht. Fragen Sie, wer auch immer das PDF für die Datei gesendet hat, aus der es exportiert wurde. Es braucht eine Nachricht und es ist der einzige Ansatz, der die Formatierung beibehält.
Wie lange dauert die Umstellung?
Lang genug, um die Datei zu lesen, und nicht mehr.
Es gibt keinen Codierungsschritt und keine Bildverarbeitung. Die Arbeit analysiert die PDF-Struktur, zieht den Textinhalt jeder Seite, gruppiert sich und serialisiert XML in einen Zip. Die Testdatei dauerte einige Millisekunden, was keine nützliche Zahl ist, da es sich um drei Seiten handelte. Ein zweihundertseitiger Bericht wird durch pdf.js-Parsing begrenzt, der in der Anzahl der Seiten ungefähr linear ist.
Was Sie in einem großen Dokument bemerken, ist der Speicher, da die gesamte Datei zusammen mit der analysierten Struktur auf der Registerkarte Browser gespeichert wird. Das ist hier eher die echte Decke als Geschwindigkeit.
Was sollten Sie in der Ausgabe überprüfen?
Vier Dinge, in der Reihenfolge, in der sie wahrscheinlich falsch sind.
- Der erste Absatz jeder Seite. Hier werden Spaltenverschachtelungen und Überschriftenzusammenführungen angezeigt.
- Jeder Tisch. Bestätigen Sie, dass die Zahlen vorhanden sind, und akzeptieren Sie dann, dass das Gitter verschwunden ist, und erstellen Sie es erneut, wenn Sie es benötigen.
- Bindende Wörter an Zeilenenden. Ein Wort, das in der PDF-Datei gebrochen ist, kommt mit dem Bindestrich in der Mitte zurück.
- Seitenzahl. Es sollte mit dem Original übereinstimmen, einschließlich aller leeren oder gescannten Seiten.
Diese Liste dauert eine Minute für ein zehnseitiges Dokument und ist der Unterschied zwischen einer Datei, die Sie senden können, und einer, die leise einen gespleißten Satz enthält.
Warum läuft das im Browser?
Denn die Dokumente, die Menschen konvertieren, sind Verträge, Aussagen, Briefe, medizinische Ergebnisse und Dinge unter Embargo.
Die Konvertierung ist ein Parse und ein Zip, die beide einen Browser perfekt abschneiden. Die Datei wird von Ihrer Festplatte in die Seite eingelesen, dort mit pdf.js analysiert, für das Web kompiliert, in einem .docx im Speicher zusammengestellt und als Download zurückgegeben. Keine Anfrage trägt das Dokument, nichts wird auf einem Server gespeichert und es gibt nichts, das jemand später löschen kann.
Die übliche Alternative ist eine Website, die Ihr PDF aufnimmt, es auf einem Computer konvertiert, von dem Sie nichts wissen, und Ihnen einen Link per E-Mail zusendet. Für eine öffentliche Broschüre ist das in Ordnung. Für einen Arbeitsvertrag ist es eine Entscheidung, die Sie nicht bewusst treffen müssen.
Die Kosten sind der Speicher für sehr große Dateien und keine serverseitige OCR für gescannte Seiten. Beides sind eher sichtbare als stille Grenzen, was es wert ist, gehandelt zu werden.



