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.
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? –
@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 –
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} ' –