4 Stimmen

Suche nach einem Parser für PDF-Dateien

Kennt jemand einen Parser für PDF-Dateien, mit dem ich Textabschnitte aus der Klartext-PDF-Datei herausziehen kann? Insbesondere möchte ich einen Weg finden, um zuverlässig die Textabschnitte herauszuziehen, die sich auf Anmerkungen beziehen?

Delphi, C# RegEx macht mir nichts aus.

5voto

Richard Szalay Punkte 80740

El PDF-Datei-Parser Artikel über xactpro scheint genau das zu sein, was Sie brauchen. Er erklärt das Format der PDF-Datei und enthält den vollständigen Quellcode für einen Parser (und ein weiteres Projekt zur Visualisierung des Modells).

Der Parser verwendet formatspezifische Begriffe, aber Sie können den Visualisierer leicht verwenden, um zu lernen, wonach Sie suchen müssen.

0 Stimmen

Der Link scheint defekt zu sein.

1 Stimmen

@automatic - Es sieht so aus, als ob die gesamte Website ausgefallen ist

2voto

Mihai Nita Punkte 5324

Sie können auch einen Blick auf Xpdf werfen ( http://www.foolabs.com/xpdf/download.html )

1voto

Jeremy Punkte 42888

Ich bin nicht sicher, ob es die von Ihnen benötigte Funktionalität unterstützt, aber wir haben mit abcPDF mit einigem Erfolg.

0 Stimmen

Ich glaube nicht, dass abcPDF Parsing unterstützt.

0 Stimmen

@Richard Szalay, ich war mir nicht sicher. Die Feature-Matrix sagt, dass es das Lesen von PDFs unterstützt, aber ob es Ihnen ein Objektmodell in der API für den Zugriff auf Teile des PDFs geht, kann ich nicht mit Sicherheit sagen.

0 Stimmen

Ich würde nicht so weit gehen, die beworbenen Funktionen abzulehnen :) Als ich es das letzte Mal benutzt habe, hat es das nicht unterstützt, aber seine Schreibfähigkeiten haben die Aufgabe sicherlich gut erfüllt.

1voto

Abhijith Punkte 889

Siehe pdfbox

1voto

Mike Edgar Punkte 39

AbcPDF erlaubt es, Anmerkungen zu extrahieren, es gibt einen sehr guten Abschnitt in der Hilfe dazu, aber der Code, um dies zu handhaben, ist im Allgemeinen :

    for (int objectIndex = 0; objectIndex < theDoc.ObjectSoup.Count; objectIndex++)
        {
            try
            {
                IndirectObject element = theDoc.ObjectSoup.ElementAt(objectIndex);

                string elementType = element.GetType().ToString();
                switch (elementType)
                {
                    case "WebSupergoo.ABCpdf8.Objects.Annotation":
                       //process the annotation, which could be all kinds of stuff
                        WebSupergoo.ABCpdf8.Objects.Annotation annotation = (WebSupergoo.ABCpdf8.Objects.Annotation)element; 

                        ProcessAnnotation(annotation);

...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X