HotXLS-documentatie / API-naslag

Draagbare afdrukplannen

Scheid logische paginering van native uitvoer: lxPortablePrint maakt een onveranderlijk afdrukplan vanuit een losgemaakte render-snapshot, en lxPortableCairo tekent zijn pagina's als PDF, SVG of PNG op Linux en macOS

De planner werkt met fysieke punten en volledige celgrenzen, behoudt samengevoegde bereiken, herhaalt rij- en kolomtitels en past gescheiden afdrukbereiken, handmatige einde pagina's, oriëntatie, marges, centrering, schaling en paginavolgorde toe zonder de bronwerkmap te wijzigen

Pagina-instelling van de werkmap gebruiken

CreateXLSPortableWorkbookPrintPlan in lxPortableWorkbookPrint heeft overloads voor een geleende TXLSWorkbook en TXLSXWorkbook; beide accepteren SheetIndex, OriginRow, OriginColumn, Snapshot en Defaults

Het bladindex en de snapshot-origin zijn 1-based; de adapter vereist een snapshot uit de actuele werkmapgeneratie en een vastgelegde rechthoek die elk volledig afdrukbereik en elk herhaald titelbereik bevat

Snapshot-identiteit omvat zijn generatie, terwijl de aanroeper het matchende blad en de origin levert; houd de juiste bladcontext vast bij het transporteren van een snapshot, want het snapshotformaat codeert geen werkmap- of werkbladidentiteit

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;

Gebruik de expliciete op lettertypen gebaseerde geometrieprovider die bij directe native werkmap-capture wordt beschreven wanneer je op Linux of macOS vastlegt; paginering zelf vereist geen Cairo, lettertypebestanden, Excel of een printerdriver

De werkmapadapter neemt een tijdelijke leeslease, leest bestaande metadata en geeft losgemaakte gegevens terug; het neemt geen rauwe werkmap over via een beherende interface en houdt geen werkmaplease vast in het resultaat

Gequote bladnamen, geëscapete aanhalingstekens en kommagescheiden afdrukbereiken worden alleen voor het geselecteerde werkblad geaccepteerd; verwijzingen buiten de vastgelegde rechthoek, verwijzingen naar andere bladen, onvolledige titelbereiken en misvormde bereiken worden expliciet geweigerd

Herkenbare papierformaten zijn Letter, Tabloid, Ledger, Legal, A3, A4, A5, B4 en B5; een niet-opgegeven papierformaat gebruikt Defaults.PageWidthPoints en Defaults.PageHeightPoints, terwijl een onbekend expliciet papierformaat wordt geweigerd

Kop- en voettekstinhoud, afgedrukte rij-/kolomkoppen, ingeschakelde printrasterlijnen, zwart-wit- of concepring, opmerkingen afdrukken en foutsubstitutie worden voorlopig geweigerd omdat deze adapter die instellingen niet getrouw kan tekenen; Classic-werkmappen zetten printrasterlijnen standaard aan, dus zet PageSetup.PrintGridlines uit voor dit ondersteunde contract

Schalingsmodus en native standaardwaarden

TXLSXWorksheet.PageFitToPages kiest de passend-maken-modus onafhankelijk van zijn afmetingen: FitToWidth of FitToHeight zetten kiest de passend-maken-modus, en PageScale zetten kiest percentageschaling

XLSX-import behoudt sheetPr/pageSetUpPr/@fitToPage en de OOXML-standaardwaarde één voor een weggelaten passend afmeting; export behoudt expliciete nuldimensies, en XLS/XLSX-conversie behoudt de gekozen modus

Percentageschaling negeert verouderde passend-maken-afmetingen; passend-maken-modus negeert een opgeslagen percentageschaal, en positieve passend-maken-afmetingen negeren handmatige einde pagina's; nul op beide assen behoudt handmatige einde pagina's bij 100% schaal, terwijl positieve grenzen te grote inhoud verkleinen zonder een klein bereik te vergroten

Logische paginering hangt af van de aangeleverde snapshotgeometrie; printerdrivermetrieken en de schaling van Excel-PDF-export kunnen de fysieke uitvoer veranderen en garanderen geen exacte visuele gelijkwaardigheid

Rechtstreeks een los plan bouwen

CreateXLSPortablePrintPlan(Snapshot, Areas, Options) accepteert zero-based inclusieve TXLSPortablePrintRanges; een lege Areas-array kiest de hele snapshot, en elke TXLSPortablePrintRange bevat FirstRow, FirstColumn, LastRow en LastColumn

Begin met XLSDefaultPortablePrintOptions en stel daarna de onderstaande velden van TXLSPortablePrintOptions in

VeldenContract
PageWidthPoints, PageHeightPointsPositieve fysieke papierafmetingen in punten, standaard A4
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPointsNiet-negatieve marges die een positieve afdrukbare rechthoek overlaten, standaard 36 punten
Landscape, CenterHorizontally, CenterVerticallyLiggend wisselt de staande afmetingen om; centrering geldt per paginalichaam en zijn herhaalde titels
ScalePercent10 tot en met 400, standaard 100; geldt wanneer geen enkele passend-maken-afmeting positief is
FitToPagesWide, FitToPagesTallNiet-negatieve paginagrenzen, nul voor een onbeperkte as; positieve grenzen zoeken een uitvoerbare schaal tussen 10% en 100%
TitleFirstRow, TitleLastRow, TitleFirstColumn, TitleLastColumnVolledige zero-based inclusieve titelbereiken, of -1 op beide eindpunten om die as uit te schakelen
RowBreaks, ColumnBreaksTXLSPortablePrintBreaks-arrays met strikt oplopende unieke zero-based posities waar een nieuwe pagina begint; werkmapadaptatie sorteert losgemaakte metadata zonder het blad te bewerken
OrderTXLSPortablePrintOrder: xppoDownThenOver of xppoOverThenDown
MaxPagesPositieve totaallimiet voor pagina's, standaard 256 en maximaal 100.000
MaxPlanBytesWerkopslag, losgemaakte snapshot-payload en paginarecords delen dit positieve geheugenbudget, standaard 64 MiB en maximaal 1 GiB
MaxPlanningStepsPositief begrensd budget voor planningswerk, standaard 64 Mi stappen en maximaal 2 Gi stappen; overschrijding geeft EXLSPortablePrintBudget

Geometrie moet eindig zijn; verborgen afmetingen hebben grootte nul, een pagina-einde mag een samengevoegd gebied niet splitsen, een gebied of titel mag een samengevoegd gebied niet gedeeltelijk overlappen, en een te grote cel of samengevoegd gebied wordt geweigerd in plaats van stilletjes afgesneden te worden

Het resultaat inspecteren of renderen

IXLSPortablePrintPlan.Snapshot is eigenaar van een losgemaakte onveranderlijke render-snapshot, PageCount rapporteert het logische aantal pagina's, en zero-based Pages[Index] geeft een TXLSPortablePrintPage met een losgemaakte tegelarray terug

Elke pagina stelt AreaIndex, AcrossIndex, DownIndex, zijn zero-based inclusieve Body, Scale, PageWidthPoints, PageHeightPoints en Tiles bloot

TXLSPortablePrintTiles bevat hooguit vier TXLSPortablePrintTile-records voor de herhaalde hoek, titelrijen, titelkolommen en het lichaam; elke tegel stelt ongeschaalde bron SourceLeft, SourceTop, SourceRight, SourceBottom en fysieke bestemming DestinationLeft, DestinationTop bloot

De overload PrepareXLSPortableCairoLayout(Plan, Fonts, Options) behoudt losgemaakte paginarecords, clippt en schaalt scène-inhoud per tegel en gebruikt de papierafmetingen en marges van het plan; raster-, lettertype-, shaping- en tekenbudgetten blijven gelden voor herhaalde inhoud

Layout.PageCount matcht het plan; PDF levert één bestand met meerdere pagina's op, terwijl SVG en PNG één bestand per logische pagina opleveren; de inspectie van tekstregels in de layout houdt ongeschaalde snapshot-coördinaten vast in plaats van herhaalde posities per pagina

Bestaande uitvoerbestanden worden geweigerd, en het Windows-native Cairo-ingangspunt blijft expliciet niet-ondersteund; zie draagbare headless uitvoer voor afhankelijkheden, lettertypetoewijzing, scène- en uitvoerlimieten