java - parse - Cómo crear una tabla usando Apache PDFBox
pdfbox read pdf example java (2)
Como también necesitaba la funcionalidad de dibujo de tablas para un proyecto paralelo, yo mismo implementé una pequeña biblioteca de "cajones de tablas", que cargué en github .
Para producir tal tabla, por ejemplo, ...
... necesitarías este código . En el mismo archivo también se encuentra el código para esa tabla:
La "lista de características" actual incluye:
- establecer la fuente y el tamaño de la fuente en el nivel de la tabla, así como en el nivel de celda
- defina celdas individuales con ancho de borde inferior, superior, izquierdo y derecho por separado
- definir el color de fondo en la fila o nivel de celda
- definir el relleno (arriba, abajo, izquierda, derecha) en el nivel de celda
- definir el color del borde (en la tabla, fila o nivel de celda)
- especificar alineación del texto (vertical y horizontal)
- expansión de celda y división de fila
- ajuste de texto y espaciado de línea
Además, no debería ser demasiado difícil agregar elementos faltantes, como tener diferentes colores de borde para los bordes superior, inferior, izquierdo y derecho, si es necesario.
Estamos planeando migrar nuestras utilidades de generación de pdf de iText a PDFBox (debido a problemas de licencia en iText). Con un poco de esfuerzo, pude escribir y colocar texto, dibujar líneas, etc. Pero crear Tablas con texto incrustado en las celdas de la Tabla es un desafío, repasé la documentación, ejemplos, Google, Stackoverflow no pudo encontrar nada. Me preguntaba si PDFBox proporciona soporte nativo para crear tablas con texto incrustado. Mi último recurso sería utilizar este enlace https://github.com/eduardohl/Paginated-PDFBox-Table-Sample
Gracias a los enlaces proporcionados por Tilman. Usando la API de cuadro ( github.com/dhorions/boxable ) pude crear la tabla que quería. Solo un FYI quería crear la tabla con un número variable de celdas. Por ejemplo, la fila 1 tendría 2 celdas, la fila 2 podría tener 5 celdas y la fila 3 podría tener solo 3 celdas. Pude hacerlo con facilidad. Seguí Example1.java en el enlace mencionado anteriormente.