2012-09-22 1 views
7

Ho un programma di modifica del testo che salva l'output in un file PDF.iText, caratteri unicode e Java

Salva anche tutto il testo in un dizionario PDF da cui può essere letto nuovamente. Il problema è che nella mia lingua nativa caratteri come č, ć, đ, ž, š sono piuttosto comuni ...

Quando scrivo quei caratteri nella mia GUI dei programmi, va bene, tutti compaiono (io sono (attualmente) utilizzando il font arial di java).

Quando lo salvo e apro il PDF I AdobeReader, sono i ć mancano e đ, ž e š sono stampati come dovrebbero. Sto usando un carattere personalizzato (TrueType) (BookAntiqua, scaricato da here.

È questo un problema nella codifica, o il tipo di carattere in sé (che non supporta il DJ, z, caratteri S)?

Inoltre, quando carico nuovamente il PDF nel mio programma, mancano ancora le lettere mancanti e đ, ¼, š sono scambiate con ⎕ simboli e simili ... È un problema nel modo in cui il PDF è scritto o c'è qualcos'altro?

In conclusione, vorrei che quei cinque caratteri fossero visibili nella GUI dei miei programmi e nel documento PDF e che vengano recuperati correttamente dal dizionario PDF.

risposta

3

Ho avuto lo stesso problema. Ho risolto con la modifica di un font che supporta quelle lettere, ho dimenticato il nome, forse unicode di Arial? - Ho bisogno di sperimentare che tipo di carattere è quello- di quello che ho incorporato quel font in pdf. E 'stato perfetto Il mio nome ha alcuni di questi strani personaggi :)

Edit: C'è un esempio here come farlo, e lo mise per i campi troppo, e here un'altra frammento di codice, che può essere utilmente.

+0

So come incapsulare il carattere in PDF, non è questo il problema, sembra che il problema sia nel carattere che sto usando ... Ho cercato per un po 'ora ... Potresti mi consiglia qualsiasi tipo di carattere che assomigli a BookAntiqua o TimesNewRoman e che supporta anche caratteri unicode? –

+0

@IvanKarlovic no, ho dimenticato il nome, era come 6 o più anni fa. Sicuramente se cambi il tuo font in uno corretto e lo incorpori in pdf risolverà il problema, ma dovrai farlo su google. Ecco una lista http://en.wikipedia.org/wiki/Unicode_font –

+0

Ho trovato il font e ha aiutato, ma non ha risolto il mio problema. il testo letto da PDF non stampa ancora quei caratteri. Ho anche provato questo: 'public static String unicodize (string String) \t { \t \t String.Replace ("C", "/ u0106"); \t \t string.replace ("ć", "/ u0107"); \t \t string.replace ("Č", "/ u010C"); \t \t string.replace ("č", "/ u010D"); \t \t string.replace ("Đ", "/ u0110"); \t \t string.replace ("đ", "/ u0111"); \t \t string.replace ("Š", "/ u0160"); \t \t string.replace ("š", "/ u0161"); \t \t string.replace ("Ž", "/ u017D"); \t \t stringa.replace ("ž", "/ u017E"); \t \t stringa di restituzione; \t \t} ' –