2012-09-22 62 views
7

Tengo un programa de edición de texto que guarda su salida en un archivo PDF.iText, caracteres Unicode y Java

También guarda todo el texto en un diccionario de PDF desde el que se puede volver a leer. El problema es que en mi lengua materna los caracteres como č, ć, đ, ž, š son bastante comunes ...

Cuando escribo esos caracteres en la GUI de mi programa, está bien, todos aparecen (estoy (actualmente) usando la fuente arial de java).

Cuando lo guardo y abro el PDF I AdobeReader, č i ć faltan y đ, ž y š se imprimen como deberían. Estoy usando una fuente personalizada (TrueType) (BookAntiqua, descargado de here.

Es éste un problema en la codificación, o en la fuente en sí (que no es compatible con el DJ, Z, caracteres s)?

Además, cuando vuelvo a cargar el PDF en mi programa, todavía faltan letras faltantes y đ, ž, š se cambian con ⎕ símbolos y similares ... ¿Eso es un problema en cómo se escribe PDF o hay algo más?

En pocas palabras, me gustaría que esos cinco caracteres sean visibles en la GUI de mi programa y en un documento PDF y que se recuperen correctamente del diccionario del PDF.

Respuesta

3

Tuve el mismo problema. Lo he solucionado cambiando una fuente que soporte esas letras, olvidé el nombre, tal vez Arial Unicode? - Necesito experimentar qué fuente es esa- de lo que he incrustado esa fuente en pdf. Eso fue perfecto. Mi nombre tiene algunos de esos caracteres extraños :)

Editar: Hay una muestra here cómo hacerlo, y lo puso en los campos también, y here otro fragmento de código, que puede ser provechoso.

+0

Sé cómo emmbed la fuente en PDF, ese no es el problema, parece que el problema está en la fuente que estoy usando ... He estado buscando por un tiempo ahora ... ¿Podría usted recomendarme cualquier tipo de letra que se parezca a BookAntiqua o TimesNewRoman y que también sean compatibles con caracteres Unicode? –

+0

@IvanKarlovic no, olvidé el nombre, fue como hace 6 o más años. Por supuesto, si cambias la fuente a una correcta e insertas en pdf, se solucionará el problema, pero tendrás que buscarlo en google. Aquí está una lista http://en.wikipedia.org/wiki/Unicode_font –

+0

Encontré la fuente y me ayudó, pero no resolvió mi problema. el texto leído desde PDF aún no imprime esos caracteres. aun He probado esto: 'public String unicodize estática (String cadena) \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 cadena.reemplazar ("ž", "/ u017E"); \t \t cadena de retorno; \t \t} ' –

Cuestiones relacionadas