En Xojo 2022r3 incorporamos la capacidad de añadir tablas de forma sencilla a los documentos PDF creados con Xojo. Ahora, desde Xojo 2022r4, dicha capacidad se ha mejorado de modo que también puedas combinar las celdas en cada una de las filas de la tabla.
Para ello hemos añadido un nuevo método a la interfaz de clase PDFTableDataSource: MergeCellsForRow(row As Integer, ByRef CellsToMerge() As CellRange) As Boolean
. Dicho método se invocará por cada una de las filas de la tabla a dibujar, de modo que puedas indicar el rango de celdas a combinar mediante el uso de instancias CellRange
.
Por ejemplo, la siguiente instrucción combinará las celdas de una fila en una tabla formada por un total de cinco columnas:
CellsToMerge.Add New CellRange(0,4)
Donde CellsToMerge es un parámetro de tipo Array recibido por referencia; de modo que si aplicamos la siguiente sentencia sobre cada fila par de la tabla:
If row Mod 2 = 0 Then CellsToMerge.Add New CellRange(0,4) Return True End If
Obtendremos el siguiente PDF como resultado (basado en el projecto de ejemplo de tablas en PDF disponible en la anterior versión de Xojo):
Márgenes Superior e Inferior
Además, la clase PDFTable
incorpora ahora dos nuevas propiedades: TopMargin As Double
y BottomMargin As Double
.
Como puedes suponer, estas propiedades te permitirán definir los márgenes superior e inferior cuando se añada la tabla a las páginas PDF del documento; algo especialmente interesante cuando la tabla recorra varias páginas dado que no tendrás que realizar ningún tipo de cálculo para saber cuándo se ha de añadir una nueva página al documento. PDFDocument se encargará de ello teniendo en cuenta los valores de los márgenes establecidos además de la altura de cada una de las filas de la tabla.
¡Hey, ya se ha dibujado la tabla!
Por último, también hemos añadido el método Completed(x As Double, y As Double)
a la interfaz de clase PDFTableDataSource
, de modo que tu código pueda conocer el punto exacto en el que se ha finalizado el dibujado de la tabla. Esto resulta especialmente interesante cuando la tabla recorre varias páginas, de modo que puedas continuar añadiendo contenido adicional en la misma página justo después de la tabla propiamente dicha.
Por ejemplo, el siguiente código en el método Completed
de nuestro ejemplo dibujará el texto “Drawing Table Completed!” en la última página añadida justo debajo de la tabla, añadiendo 20 puntos sobre el valor Y recibido, y utilizando el mismo valor X para que el texto se dibuje con el mismo margen izquierdo que el usado en el dibujado de la tabla:
En resumen
Como puedes ver, con estas incorporaciones tendrás un mayor control cuando se trata de añadir tablas a tus documentos PDF: ajustando tanto los márgenes superior e inferior para la página, conociendo cuándo ha finalizado el dibujado de la tabla (y en qué posición), así como la capacidad de combinar las celdas de tu interés por cada una de las filas de la tabla.