È possibile ottenere le posizioni delle parole utilizzando PDFBox, simile a "processTextPosition"? Sembra che processTextPosition venga chiamato solo su caratteri singoli e il codice che li unisce in parole fa parte di PDFTextStripper (nel metodo "normalize"), che restituisce la posizione del testo. C'è un metodo/utilità che estrae anche la posizione? (Per coloro che chiedono che cosa la motivazione è - l'informazione è in realtà un tavolo, e vorremmo per rilevare le cellule vuote) GraziePDFBox - ottenere posizioni di parole (e non solo caratteri ')
6
A
risposta
1
per ottenere le parole e il loro x e Y in un testo estratto da un file PDF che si dovrà estendere la classe PdfTextStripper e utilizzare la classe personalizzata per estrarre il testo da file pdf ad esempio
public class CustomPDFTextStripper extends PDFTextStripper{
public CustomPDFTextStripper() throws IOException {
}
/**
* Override the default functionality of PDFTextStripper.
*/
@Override
protected void writeString(String text, List<TextPosition> textPositions) throws IOException{
TextPosition firstProsition = textPositions.get(0);
writeString(String.format("[%s , %s , %s]", firstProsition.getTextPos().getXPosition(),
firstProsition.getTextPos().getYPosition(), text));
}
}
creare un oggetto di questa classe personalizzata ed estrarre il testo come in tal modo
PDFTextStripper pdfStripper = new CustomPDFTextStripper();
String text = pdfStripper.getText(*pdf file wrapped as a PDDocument object*);
la stringa di testo risultante è nella forma [xposition, yposition, word] separata dal separatore di parole predefinito
+0
Non funziona per PdfBox .net –
Problemi correlati
- 1. Aggiunta di caratteri ad Apache Pdfbox?
- 2. Conteggio parole e caratteri utilizzando jQuery
- 3. Come posso rimuovere caratteri non di parole da un testo?
- 4. regione PDFBox PDFTextStripperByArea coordinate
- 5. Java PDFBox - Lettura e modifica di un pdf con caratteri speciali (segni diacritici)
- 6. Couting di caratteri, parole, lunghezza delle parole e lunghezza totale in una frase
- 7. Ottenere secondo e terzo parole da stringa
- 8. RegExp espressione regolare trovare e sostituire parole intere solo
- 9. Regex corrisponde solo a esso e relativo, ma non è
- 10. Riempimento modulo PDF con PDFBox non funziona
- 11. Parole MySQL e polacco
- 12. PDFBox: cercando di decifrare PDF
- 13. Regex consente solo lettere e alcuni caratteri
- 14. parole Conteggio e caratteri in Bash senza wc
- 15. PDFBox supporta colori spot e separazioni?
- 16. RegEx: corrisponde a qualsiasi carattere non composto da parole e caratteri non numerici eccetto
- 17. Come filtrare una stringa Java per ottenere solo caratteri alfabetici?
- 18. pseudo selettore per caratteri/parole maiuscole?
- 19. parole Ricerca con tutti i caratteri ripetuti
- 20. PHP: come ottenere solo le parole tra parentesi() e cancellare tutto il resto
- 21. Interfaccia Builder Blocco posizioni posizioni?
- 22. Come ottenere il colore del font utilizzando pdfbox
- 23. Leggere le ubicazioni di testo e immagine (coordinate xy) utilizzando PDFBox
- 24. funzione di parsing Python chiama per ottenere posizioni di argomento
- 25. Ottenere Google Translate parole salvate
- 26. Le posizioni getFirstVisiblePosition e getLastVisiblePosition di ListView sono false?
- 27. Filigrana con PDFBox
- 28. IFRAME e posizioni assolute contrastanti
- 29. Python: Jaccard Distance utilizzando l'intersezione di parole ma non l'intersezione di caratteri
- 30. PDFBox involucro testo
forse questo aiuterà: http://stackoverflow.com/questions/3203790/parsing-pdf-files-especially-with -tables-with-pdfbox/12545981 # 12545981 – impeto
Grazie per il suggerimento. Alla fine la nostra soluzione è stata quella di modificare writePage, per mantenere le parole con la loro posizione (come descritto nell'URL che hai inviato). Tuttavia, nel nostro caso, il numero di colonne (e le loro posizioni) non è noto e dobbiamo trovarlo in base all'organizzazione delle informazioni (ad es. - se ci sono molte linee che hanno parole che iniziano nella posizione Y = 100, probabilmente c'è una colonna della tabella lì). Esiste un componente in grado di rilevare questa struttura? Se è così, può gestire anche pagine leggermente ruotate, quando la "Y" non è una costante? – user964797
un modo possibile è quello di tenere traccia dei caratteri aggiungendo un override al processTextPosition() della classe PDFTextStripper e controllando la parola seperator.Tenere un segno sulla parola start e mantenere un segno sulla parola fine e salvare la parola quando si verifica un delimitatore. – programer8