2017-06-13 1 views
3

J'utilise pour obtenir la taille de la police à partir de fichiers PDF.PDFBox getFontSize renvoie -1

J'ai étendu PDFTextStripper et remplacé la fonction writeString qui me donne accès à l'objet TextPosition.

Cela fonctionne bien la moitié du temps. Mais les autres fois, la taille de la police est '-1'. Pourquoi donc? Cela affecte le reste de mon algorithme. J'ai essayé les fonctions getHeight, getHeightDir et getFontSize. Je reçois les mêmes résultats avec tout cela.

Voici la fonction writeString:

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

La fonction getChar traite les informations.

Comment résoudre ce problème? Merci d'avance.

EDIT: J'utilise PDFBox 2.0.2. Mon application me demande de convertir un fichier donné en pdf, puis de le traiter en utilisant PDFBox. Ce problème -1 arrive à tous les fichiers Spreadsheet. J'utilise Apache POI 3.15 pour convertir le document en PDF. Cela fonctionne très bien pour doc, docx, ppt, pptx, odt, odd

+1

Veuillez partager votre pdf et mentionner quelle version vous utilisez –

+0

J'utilise PDFBox 2.0.2. Mon application nécessite que je convertisse un fichier donné en pdf, puis le traiter en utilisant PDFBox. Ce problème -1 arrive à tous les fichiers Spreadsheet. J'utilise Apache POI 3.15 pour convertir le document au format PDF. Cela fonctionne très bien pour doc, docx, ppt, pptx, odt, odp. –

+0

La version actuelle est 2.0.6. Je peux seulement jeter un coup d'oeil au problème si vous partagez un pdf. Si ce n'est pas le cas, essayez l'exemple PrintTextLocations et voyez ce que getFontSize() renvoie. –

Répondre

0

Comme vous n'avez pas partagé un exemple de document, à partir de votre question, voici mes inférences.

En supposant que PDFBox fonctionne correctement, si getFontSize renvoie -1, la taille de la police n'a pas été définie du côté source, c'est-à-dire lors de la génération du PDF. Si, d'après votre observation, les caractères pour lesquels getFontSize renvoie -1 ont tous la même taille, cela peut être considéré comme taille par défaut. Si cela ne vous aide pas, pour une solution réelle, vous pouvez fournir un exemple de pdf, comme mentionné dans les commentaires par d'autres.