Come faccio a capire la famiglia di caratteri e la dimensione del carattere delle parole in un documento pdf? Stiamo effettivamente cercando di generare un documento pdf utilizzando iText, ma non siamo sicuri di come trovare la famiglia di font e la dimensione del font del documento originale che deve essere generato. le proprietà del documento non sembrano contenere queste informazioniCome faccio a capire la famiglia di caratteri e la dimensione del carattere delle parole in un documento pdf?
risposta
I caratteri sono memorizzati nel catalogo (suppongo in un sottocatalogo di tipo carattere). Se apri un pdf come file di testo, dovresti riuscire a trovare le voci del catalogo (iniziano e terminano con "< <" e ">>" rispettivamente
Su un semplice file pdf, ho trovato il seguente:
<</Type/Font/BaseFont/Helvetica-Bold/Subtype/Type1/Encoding/WinAnsiEncoding>>
ricerca in tal modo per il prefisso dovrebbe aiutare (in alcuni file pdf, ci sono spazi tra le commponents ma '/ tipo/font' dovrebbe essere ok).
naturalmente questo è un manuale processo, mentre probabilmente preferiresti uno automatico.
In un'altra nota, a volte usiamo identifont o what the font per trovare caratteri non comuni che ci danno problemi (logo font).
riguarda Guillaume
Edit: il seguente codice troverà tutte carattere nelle pagine. Per essere brevi, si cerca il dizionario di ogni pagina per il subdictionnary "ressource" e quindi il "font" subdictionnary. Ogni voce in seguito è un dizionario di font, che descrive un font.
PdfReader reader = new PdfReader(
new FileInputStream(new File("file.pdf")));
int nbmax = reader.getNumberOfPages();
System.out.println("nb pages " + nbmax);
for (int i = 1; i <= nbmax; i++) {
System.out.println("----------------------------------------");
System.out.println("Page " + i);
PdfDictionary dico = reader.getPageN(i);
PdfDictionary ressource = dico.getAsDict(PdfName.RESOURCES);
PdfDictionary font = ressource.getAsDict(PdfName.FONT);
// we got the page fonts
Set keys = font.getKeys();
Iterator it = keys.iterator();
while (it.hasNext()) {
PdfName name = (PdfName) it.next();
PdfDictionary fontdict = font.getAsDict(name);
PdfObject typeFont = fontdict.getDirectObject(PdfName.SUBTYPE);
PdfObject baseFont = fontdict.getDirectObject(PdfName.BASEFONT);
System.out.println(baseFont.toString());
}
}
Il nome ("nome" variabile nel codice seguente) è quello che viene utilizzato nel testo per cambiare il font. Nel PDF, dovrai trovarlo accanto a un testo. Il seguente numero è la dimensione. Qui per esempio, è la dimensione 12. (mi spiace, ancora nessun codice per questa parte).
BT
/F13 12 Tf
288 720 Td
the text to find Tj
ET
A seconda del formato PDF, se non è stato delineato si può essere in grado di aprirlo in Adobe Illustrator, fare doppio clic sul testo e selezionare una parte per vedere che è di carattere familiare, dimensioni, ecc
Se il testo è delineato, utilizzare uno di quegli strumenti online che PATRY suggerisce di trovare il carattere.
Buona fortuna
Se si dispone di Adobe Acrobat è possibile visualizzare i caratteri all'interno ed esaminare gli oggetti e flussi di testo. Ho scritto un post su questo post a http://pdf.jpedal.org/java-pdf-blog/bid/10479/Viewing-PDF-objects
- 1. dimensione della matrice e la dimensione del puntatore carattere carattere
- 2. Come specificare la dimensione del carattere in un grafico (per l'output PDF)?
- 3. Come leggere la dimensione del carattere di ogni parola in un documento word utilizzando il POI?
- 4. Come posso impostare la dimensione del carattere di UITextView?
- 5. Modifica la dimensione del carattere della tela senza conoscere la famiglia di font
- 6. Assegnare caratteri diversi per ogni carattere in un font-famiglia
- 7. La dimensione dei caratteri CSS cambia quando la famiglia dei font ritorna indietro
- 8. Unità predefinita per la dimensione del carattere?
- 9. Come cambio la dimensione e il colore del carattere in un elenco a discesa di Excel?
- 10. Come modificare la dimensione del carattere e la larghezza e altezza delle linguette jQuery-UI
- 11. imposta la dimensione del carattere in jquery
- 12. JTextPane: Come impostare la dimensione del carattere
- 13. come impostare la dimensione del carattere LaTeX in millimetri?
- 14. Come modificare la famiglia di caratteri di Highchart per il Bootstrap famiglia di font CSS predefinito
- 15. LaTeX - Modifica la dimensione del carattere per un documento, ma nel preambolo, non la classe del documento?
- 16. Ridimensiona la dimensione del carattere in UITextView
- 17. Come modificare la dimensione del carattere del PDF di esportazione nei datatables?
- 18. Come cambiare la dimensione del carattere in html?
- 19. Aumentare la dimensione del carattere dei caratteri emoji in un UITextView in iOS 5.x
- 20. Come modificare la dimensione del carattere e il colore del carattere da un file Java?
- 21. Come modificare il carattere e la dimensione del carattere di un tag di input HTML?
- 22. Come impostare la dimensione del carattere del testo in Unity?
- 23. rileva la dimensione del carattere del browser
- 24. Come capire la dimensione del font di un UILabel quando -adjustsFontSizeToFitWidth è impostato su YES?
- 25. Cambiare la dimensione del carattere e la direzione del testo degli assi in ggplot2
- 26. Come cambiare la dimensione del font in PdfPTable?
- 27. Swift Aumenta la dimensione del carattere di UITextview, come?
- 28. La dimensione del carattere * è uguale alla dimensione di int *?
- 29. Come impostare la famiglia di caratteri nell'elenco di selezione a discesa HTML in IE?
- 30. Voglio cambiare la dimensione del carattere di NetBeans
Guardando un PDF qui e vedo sempre/TT1 1 Tf per un PDF di solo testo abbastanza semplice, ma il font è un po 'più grande della dimensione 1. Sto indovinando devi anche combinare le trasformazioni che portano a quel punto, ma non ho trovato un buon modo per farlo, a meno di implementare un renderer. – Trejkaz