studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java pdf fonts jasper-reports

java - para - manual de programacion android pdf



¿Cómo puedo probar si mi fuente se representa correctamente en pdf? (1)

Dado que el informe jasper utiliza la biblioteca de itext , la forma más fácil de probar si su fuente se representará correctamente en pdf es probarla directamente con itext.

Programa de ejemplo * , adaptado de iText: Capítulo 11: Elegir la fuente correcta

import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.ColumnText; import com.lowagie.text.pdf.PdfWriter; public class FontTest { /** The resulting PDF file. */ public static final String RESULT = "fontTest.pdf"; /** the text to render. */ public static final String TEST = "Test to render this text with the turkish lira character /u20BA"; public void createPdf(String filename) throws IOException, DocumentException { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.open(); BaseFont bf = BaseFont.createFont( "pathToMyFont/myFont.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font font = new Font(bf, 20); ColumnText column = new ColumnText(writer.getDirectContent()); column.setSimpleColumn(36, 730, 569, 36); column.addElement(new Paragraph(TEST, font)); column.go(); document.close(); } public static void main(String[] args) throws IOException, DocumentException { new FontTest().createPdf(RESULT); } }

Algunas notas (vistas en el ejemplo):

  • Para representar caracteres especiales, use su ejemplo de valor codificado /u20BA para evitar problemas de tipo de codificación en su archivo.
  • Considere usar siempre la codificación Unicode , este enfoque se recomienda en el nuevo estándar PDF (PDF / A, PDF / UA) y le brinda la posibilidad de mezclar diferentes tipos de codificación, con la única desventaja de un tamaño de archivo ligeramente mayor.

Conclusión:

Si su fuente se representa correctamente en "fontTest.pdf", tiene un problema con sus extensiones de fuente en el informe jasper.

Si su fuente no se representa correctamente en "fontTest.pdf", no hay nada que pueda hacer en los informes de jaspe, necesita encontrar otra fuente.

* La última distribución de informes jasper utiliza una versión especial itext-2.1.7, las importaciones en esta versión son com.lowagie.text , si está utilizando una versión posterior, las importaciones son com.itextpdf.text como en el ejemplo adaptado.

Al usar diferentes fuentes en el informe jasper, debe usar font-extensions .

Sin embargo, si la fuente no se representa correctamente, ¿hay alguna manera de que pueda probar si la fuente es compatible con pdf para que pueda entender si el problema está relacionado con mis extensiones de fuente o mi fuente .ttf ?

La representación incorrecta de la fuente al exportar a PDF desde informes jasper es un ejemplo de problema común Jasper Reports PDF no exporta valores cirílicos , como se ve en el punto 1 de la lista de verificación usando extensiones de fuente no siempre es suficiente, la fuente también debe ser respaldada por biblioteca generadora de pdf y capaz de representar el carácter real. Es por eso que he decidido pasar estas preguntas de estilo de control de calidad, para que el futuro usuario cuando llegue a la lista de verificación 1 pueda tener una referencia sobre cómo probar rápidamente la fuente.