Documentación de HotXLS / Referencia de la API

Planes de impresión portátiles

Separe la paginación lógica de la salida nativa: lxPortablePrint crea un plan de impresión inmutable a partir de una instantánea de renderizado desacoplada, y lxPortableCairo dibuja sus páginas como PDF, SVG o PNG en Linux y macOS

El planificador usa puntos físicos y límites completos de celdas, preserva los rangos combinados, repite los títulos de filas y columnas, y aplica áreas de impresión disjuntas, saltos manuales, orientación, márgenes, centrado, escalado y orden de páginas sin cambiar el libro de la fuente

Usar la configuración de página del libro

CreateXLSPortableWorkbookPrintPlan en lxPortableWorkbookPrint tiene sobrecargas para un TXLSWorkbook y un TXLSXWorkbook prestados; ambas aceptan SheetIndex, OriginRow, OriginColumn, Snapshot y Defaults

El índice de hoja y el origen de la instantánea están basados en uno; el adaptador exige una instantánea de la generación actual del libro y un rectángulo capturado que contenga cada área de impresión completa y cada rango de títulos repetidos

La identidad de la instantánea incluye su generación, mientras que el llamador aporta la hoja y el origen coincidentes; conserve el contexto correcto de hoja al transportar una instantánea porque el formato de la instantánea no codifica una identidad de libro u hoja de cálculo

Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6,
  XLSDefaultPortableRenderLimits, Geometry);
Plan := CreateXLSPortableWorkbookPrintPlan(Workbook, 1, 1, 1,
  Snapshot, XLSDefaultPortablePrintOptions);
Layout := PrepareXLSPortableCairoLayout(Plan, Fonts,
  XLSDefaultPortableCairoOptions);
try
  Files := Layout.Save('/srv/output/report.pdf', xpcfPDF);
  Files := Layout.Save('/srv/output/report.svg', xpcfSVG);
  Files := Layout.Save('/srv/output/report.png', xpcfPNG);
finally
  Layout.Free;
end;

Use el proveedor de geometría explícito respaldado por fuentes descrito en la captura nativa directa de libros al capturar en Linux o macOS; la paginación en sí no exige Cairo, archivos de fuentes, Excel ni un controlador de impresora

El adaptador del libro toma una concesión de lectura temporal, lee los metadatos existentes y devuelve datos desacoplados; ni adopta un libro crudo a través de una interfaz propietaria ni retiene una concesión del libro en el resultado

Los nombres de hojas entre comillas, las comillas escapadas y las áreas de impresión separadas por comas se aceptan únicamente para la hoja de cálculo seleccionada; las referencias fuera del rectángulo capturado, las referencias a hojas ajenas, los rangos de títulos incompletos y los rangos malformados provocan rechazo explícito

Los tamaños de papel reconocidos son Letter, Tabloid, Ledger, Legal, A3, A4, A5, B4 y B5; un tamaño de papel sin especificar usa Defaults.PageWidthPoints y Defaults.PageHeightPoints, mientras que un tamaño de papel explícito no reconocido provoca rechazo

El contenido de encabezados y pies, los títulos de filas/columnas impresos, las líneas de cuadrícula de impresión habilitadas, la apariencia en blanco y negro o borrador, la impresión de comentarios y las sustituciones de errores actualmente provocan rechazo porque este adaptador no puede dibujar esas configuraciones fielmente; los libros Classic habilitan las líneas de cuadrícula de impresión de forma predeterminada, así que desactive PageSetup.PrintGridlines para este contrato admitido

Modo de escalado y valores predeterminados nativos

TXLSXWorksheet.PageFitToPages selecciona el modo de ajuste con independencia de sus dimensiones: definir FitToWidth o FitToHeight selecciona el modo de ajuste, y definir PageScale selecciona el escalado porcentual

La importación XLSX preserva sheetPr/pageSetUpPr/@fitToPage y el valor predeterminado OOXML de uno para una dimensión de ajuste omitida; la exportación retiene las dimensiones cero explícitas, y la conversión XLS/XLSX preserva el modo seleccionado

El escalado porcentual ignora las dimensiones de ajuste obsoletas; el modo de ajuste ignora una escala porcentual almacenada, y las dimensiones de ajuste positivas ignoran los saltos manuales; cero en ambos ejes retiene los saltos manuales a escala 100%, mientras que los límites positivos reducen el contenido sobredimensionado sin agrandar un rango pequeño

La paginación lógica depende de la geometría de la instantánea aportada; las métricas del controlador de impresora y el escalado de la exportación PDF de Excel pueden cambiar la salida física y no constituyen una garantía de equivalencia visual exacta

Construir un plan desacoplado directamente

CreateXLSPortablePrintPlan(Snapshot, Areas, Options) acepta TXLSPortablePrintRanges inclusivos basados en cero; un arreglo Areas vacío selecciona la instantánea completa, y cada TXLSPortablePrintRange contiene FirstRow, FirstColumn, LastRow y LastColumn

Comience con XLSDefaultPortablePrintOptions, y luego defina los campos de TXLSPortablePrintOptions siguientes

CamposContrato
PageWidthPoints, PageHeightPointsDimensiones físicas positivas del papel en puntos, con A4 como valor predeterminado
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPointsMárgenes no negativos que dejan un rectángulo imprimible positivo, con 36 puntos como valor predeterminado
Landscape, CenterHorizontally, CenterVerticallyLandscape intercambia las dimensiones del retrato; el centrado aplica a cada cuerpo de página y a sus títulos repetidos
ScalePercentDe 10 a 400, con 100 como valor predeterminado; aplica cuando ninguna dimensión de ajuste es positiva
FitToPagesWide, FitToPagesTallLímites de páginas no negativos, cero para un eje sin restricciones; los límites positivos buscan una escala factible entre 10% y 100%
TitleFirstRow, TitleLastRow, TitleFirstColumn, TitleLastColumnRangos de títulos completos inclusivos basados en cero, o -1 en ambos extremos para deshabilitar ese eje
RowBreaks, ColumnBreaksArreglos TXLSPortablePrintBreaks de posiciones basadas en cero estrictamente ascendentes y únicas donde comienza una página nueva; la adaptación del libro ordena los metadatos desacoplados sin editar la hoja
OrderTXLSPortablePrintOrder: xppoDownThenOver o xppoOverThenDown
MaxPagesLímite positivo total de páginas, con 256 como valor predeterminado y 100,000 como máximo
MaxPlanBytesEl almacenamiento de trabajo, la carga de la instantánea desacoplada y los registros de páginas comparten este presupuesto positivo de memoria, con 64 MiB como valor predeterminado y 1 GiB como máximo
MaxPlanningStepsPresupuesto positivo acotado de trabajo de planificación, con 64 Mi de pasos como valor predeterminado y 2 Gi de pasos como máximo; excederlo lanza EXLSPortablePrintBudget

La geometría debe ser finita; las dimensiones ocultas tienen tamaño cero, un salto de página no puede dividir una combinación, un área o un título no puede intersectar parcialmente una combinación, y una celda o combinación sobredimensionada provoca rechazo en lugar de cortarse silenciosamente

Inspeccionar o renderizar el resultado

IXLSPortablePrintPlan.Snapshot es dueño de una instantánea de renderizado inmutable desacoplada, PageCount reporta el conteo lógico de páginas, y el Pages[Index] basado en cero devuelve un TXLSPortablePrintPage con un arreglo desacoplado de mosaicos

Cada página expone AreaIndex, AcrossIndex, DownIndex, su Body inclusivo basado en cero, Scale, PageWidthPoints, PageHeightPoints y Tiles

TXLSPortablePrintTiles contiene como máximo cuatro registros TXLSPortablePrintTile para la esquina repetida, las filas de títulos, las columnas de títulos y el cuerpo; cada mosaico expone el SourceLeft, SourceTop, SourceRight, SourceBottom de la fuente sin escalar y el DestinationLeft, DestinationTop físico de destino

La sobrecarga PrepareXLSPortableCairoLayout(Plan, Fonts, Options) retiene los registros desacoplados de páginas, recorta y escala el contenido de la escena para cada mosaico, y usa las dimensiones de papel y los márgenes del plan; los presupuestos de raster, fuentes, conformación y dibujo siguen aplicándose al contenido repetido

El Layout.PageCount coincide con el plan; el PDF produce un archivo multipágina, mientras que el SVG y el PNG producen un archivo por página lógica; la inspección de líneas de texto del diseño retiene las coordenadas sin escalar de la instantánea en lugar de las posiciones repetidas por página

Los archivos de salida existentes provocan rechazo, y el punto de entrada nativo Cairo de Windows sigue explícitamente sin admitir; consulte la salida headless portable para conocer los límites de dependencias, mapeo de fuentes, escenas y salida