2011-11-22 17 views
5

La mia applicazione Java crea PDF usando iText. A volte il contenuto è asiatico, che non funziona. I caratteri asiatici non sono visibili.Come configurare iText per supportare caratteri asiatici?

Ho trovato iTextAsian.jar nella pagina di download di iText, ma non so come usarlo.

L'obiettivo è utilizzare il mio carattere preferito come predefinito. Ma quando un personaggio non è disponibile, per questo personaggio viene usato un altro font. Ho letto, iText può selezionare i caratteri in questo modo automaticamente, ma come configurare questo?

Desidero anche che tutti i caratteri richiesti siano inclusi nel PDF, quindi gli utenti non devono installare caratteri asiatici sui loro computer.

+0

Non sono "simboli", sono caratteri. – NullUserException

+0

Tutti i tuoi utenti hanno installato il pacchetto di font asiatici con i loro visualizzatori di PDF o hai il controllo sulla base installata dei visualizzatori di PDF, in modo che tu possa assicurarti che lo facciano? In caso contrario, utilizzare i font PDF incorporati renderà il PDF risultante troppo grande - iText incorpora solo i glifi necessari per il documento? –

+0

Nessun controllo sugli utenti. È un'applicazione web che crea PDF. PDF di grandi dimensioni sono meglio di PDF senza caratteri asiatici. Il prossimo passo sarebbe quello di rilevare se il contenuto dell'utente contiene caratteri asiatici e saltare includendo caratteri aggiuntivi basati su quello. – Witek

risposta

2
  • È possibile definire un "FontSelector" e quindi aggiungere i propri font (fontSelector.AddFont). Ora iText sceglierà il carattere non disponibile dal successivo carattere definito usando il metodo fontSelector.Process.
  • I caratteri asiatici sono in genere Unicode, quindi è necessario impostare "BaseFont.IDENTITY_H" anziché Ansi (come FontFactory.GetFont ("tahoma", BaseFont.IDENTITY_H)).
  • Se è RTL, è necessario avvolgere il testo in elementi con proprietà di direzione di esecuzione e impostarlo su rtl.
+0

Quali caratteri devo aggiungere tramite addFont()? – Witek

+0

BaseFont.IDENTITY_H incorpora i caratteri .ttf selezionati nel PDF finale. Quindi cerca i caratteri che hanno i caratteri completi di quella lingua. – VahidN

+0

Poiché gli utenti dei siti Web possono provenire da qualsiasi luogo, devo aggiungere caratteri al selettore per tutti i caratteri, giusto? Come scoprire quali (10?) Font gratuiti coprono insieme il 99% di tutti i caratteri? – Witek

Problemi correlati