2017-06-13 5 views
3

zurück Ich verwende , um die Schriftgröße von PDFs zu erhalten.PDFBox getFontSize gibt -1

Ich habe PDFTextStripper erweitert und überschrieb die writeString Funktion, die mir Zugriff auf TextPosition Objekt gibt.

Es funktioniert gut die Hälfte der Zeit. Aber die anderen Male gibt es Schriftgröße als "-1" zurück. Warum das? Dies betrifft den Rest meines Algorithmus.

Ich habe die Funktionen getHeight, getHeightDir und getFontSize versucht. Ich bekomme die gleichen Ergebnisse mit all diesen. Hier

ist die writeString Funktion:

@Override 
protected void writeString(String string, List<TextPosition> textPositions) throws IOException { 
    for (TextPosition text : textPositions) { 
     getChar(text); 
     writeString(string); 
    } 
} 

Die getChar Funktion verarbeitet die Informationen.

Wie behebe ich das? Danke im Voraus.

BEARBEITEN: Ich benutze PDFBox 2.0.2. Meine Anwendung erfordert, dass ich jede Datei in eine PDF konvertiere und sie dann mit PDFBox weiterbearbeite. Dieses -1-Problem tritt bei allen Spreadsheet-Dateien auf. Ich verwende Apache POI 3.15, um das Dokument in PDF zu konvertieren. Es funktioniert gut für doc, docx, ppt, pptx, odt, odp

+1

Bitte teilen Sie Ihre PDF und erwähnen Sie, welche Version Sie verwenden –

+0

Ich benutze PDFBox 2.0.2. Meine Anwendung erfordert, dass ich eine beliebige Datei in eine PDF konvertiere und sie dann mit PDFBox weiterbearbeite. Dieses -1-Problem tritt bei allen Spreadsheet-Dateien auf. Ich verwende Apache POI 3.15, um das Dokument in PDF zu konvertieren. Es funktioniert gut für doc, docx, ppt, pptx, odt, odp. –

+0

Aktuelle Version ist 2.0.6. Ich kann das Problem nur betrachten, wenn Sie ein PDF teilen. Wenn Sie dies nicht tun, versuchen Sie das PrintTextLocations-Beispiel und sehen Sie, was getFontSize() zurückgibt. –

Antwort

0

Da Sie kein Beispieldokument von Ihrer Frage geteilt haben, hier sind meine Schlussfolgerungen.

Angenommen, PDFBox funktioniert gut, wenn getFontSize -1 zurückgibt, dann wurde die Schriftgröße nicht auf der Quellseite festgelegt, d. H. Beim Generieren der PDF. Wenn aus Ihrer Beobachtung die Zeichen, für die getFontSize -1 zurückgibt, alle die gleiche Größe haben, könnte dies als Standardgröße gedacht werden.

Wenn dies nicht hilft, für eine tatsächliche Lösung, können Sie jede Probe pdf, wie in den Kommentaren von anderen erwähnt.