HotXLS-dokumentation / API-referens

Portabla utskriftsplaner

Skilj logisk sidindelning från inbyggd utmatning: lxPortablePrint skapar en oföränderlig utskriftsplan från en fristående renderingsögonblicksbild, och lxPortableCairo ritar dess sidor som PDF, SVG eller PNG på Linux och macOS

Planeraren använder fysiska punkter och kompletta cellgränser, bevarar sammanslagna områden, upprepar rad- och kolumntitlar och tillämpar disjunkta utskriftsområden, manuella brytningar, orientering, marginaler, centrering, skalning och sidordning utan att ändra källarbetsboken

Använd arbetsbokens sidinställningar

CreateXLSPortableWorkbookPrintPlan i lxPortableWorkbookPrint har överladdningar för en lånad TXLSWorkbook och TXLSXWorkbook; båda accepterar SheetIndex, OriginRow, OriginColumn, Snapshot och Defaults

Bladindexet och ögonblicksbildens origo är ettbaserade; adaptern kräver en ögonblicksbild från den aktuella arbetsboksgenerationen och en inspelad rektangel som innehåller varje komplett utskriftsområde och upprepat titelområde

Ögonblicksbildens identitet inkluderar dess generation, medan uppringaren tillhandahåller matchande blad och origo; behåll rätt bladkontext när en ögonblicksbild transporteras, eftersom ögonblicksbildsformatet inte kodar någon arbetsboks- eller kalkylbladsidentitet

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;

Använd den uttryckliga typsnittsbaserade geometrileverantören som beskrivs i direkt inbyggd arbetsboksinspelning vid inspelning på Linux eller macOS; sidindelningen i sig kräver ingen Cairo, inga typsnittsfiler, ingen Excel och ingen skrivardrivrutin

Arbetsboksadaptern tar ett tillfälligt läslease, läser befintlig metadata och returnerar fristående data; den övertar varken en rå arbetsbok via ett ägande gränssnitt eller behåller något arbetsbokslease i resultatet

Citerade bladnamn, eskapade citattecken och kommaseparerade utskriftsområden accepteras bara för det valda kalkylbladet; referenser utanför den inspelade rektangeln, främmande bladreferenser, ofullständiga titelområden och felformade områden avslås uttryckligen

Kända pappersstorlekar är Letter, Tabloid, Ledger, Legal, A3, A4, A5, B4 och B5; en ospecificerad pappersstorlek använder Defaults.PageWidthPoints och Defaults.PageHeightPoints, medan en okänd uttrycklig pappersstorlek avslås

Sidhuvuds- och sidfotsinnehåll, utskrivna rad-/kolumnrubriker, aktiverade utskriftsrutnät, svartvitt eller utkastutseende, kommentarsutskrift och felersättningar avslås för närvarande eftersom adaptern inte kan rita de inställningarna troget; Classic-arbetsböcker aktiverar utskriftsrutnät som standard, så inaktivera PageSetup.PrintGridlines för detta stödda kontrakt

Skalningsläge och inbyggda standardvärden

TXLSXWorksheet.PageFitToPages väljer anpassningsläge oberoende av sina dimensioner: att sätta FitToWidth eller FitToHeight väljer anpassningsläge, och att sätta PageScale väljer procentskalning

XLSX-import bevarar sheetPr/pageSetUpPr/@fitToPage och OOXML-standardvärdet ett för en utelämnad anpassningsdimension; exporten behåller uttryckliga nolldimensioner, och XLS/XLSX-konvertering bevarar det valda läget

Procentskalning ignorerar inaktuella anpassningsdimensioner; anpassningsläget ignorerar en lagrad procentskala, och positiva anpassningsdimensioner ignorerar manuella brytningar; noll på båda axlarna behåller manuella brytningar vid 100 % skala, medan positiva gränser krymper överdimensionerat innehåll utan att förstora ett litet område

Logisk sidindelning beror på den tillhandahållna ögonblicksbildsgeometrin; skrivardrivrutinens mått och Excel PDF-exportskalning kan ändra fysiska utdata och utgör ingen garanti för exakt visuell ekvivalens

Bygg en fristående plan direkt

CreateXLSPortablePrintPlan(Snapshot, Areas, Options) accepterar nollbaserade inklusiva TXLSPortablePrintRanges; en tom Areas-matris väljer hela ögonblicksbilden, och varje TXLSPortablePrintRange innehåller FirstRow, FirstColumn, LastRow och LastColumn

Börja med XLSDefaultPortablePrintOptions och sätt sedan fälten i TXLSPortablePrintOptions nedan

FältKontrakt
PageWidthPoints, PageHeightPointsPositiva fysiska pappersmått i punkter, standard A4
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPointsIcke-negativa marginaler som lämnar en positiv utskriftsbar rektangel, standard 36 punkter
Landscape, CenterHorizontally, CenterVerticallyLandskap byter plats på porträttmåtten; centreringen gäller varje sidas brödtext och dess upprepade titlar
ScalePercent10 till 400, standard 100; tillämpas när ingen anpassningsdimension är positiv
FitToPagesWide, FitToPagesTallIcke-negativa sidgränser, noll för en obegränsad axel; positiva gränser söker en möjlig skala mellan 10 % och 100 %
TitleFirstRow, TitleLastRow, TitleFirstColumn, TitleLastColumnKompletta nollbaserade inklusiva titelområden, eller -1 i båda ändpunkterna för att inaktivera den axeln
RowBreaks, ColumnBreaksTXLSPortablePrintBreaks-matriser med strängt stigande unika nollbaserade positioner där en ny sida börjar; arbetsboksanpassningen sorterar fristående metadata utan att redigera bladet
OrderTXLSPortablePrintOrder: xppoDownThenOver eller xppoOverThenDown
MaxPagesPositiv total sidgräns, standard 256 och max 100 000
MaxPlanBytesArbetslagring, fristående ögonblicksbildsnyttolast och sidposter delar den här positiva minnesbudgeten, standard 64 MiB och max 1 GiB
MaxPlanningStepsPositiv avgränsad arbetsbudget för planering, standard 64 Mi steg och max 2 Gi steg; att överskrida den utlöser EXLSPortablePrintBudget

Geometrin måste vara ändlig; dolda dimensioner har storlek noll, en sidbrytning får inte dela en sammanslagning, ett område eller en titel får inte delvis skära en sammanslagning, och en överdimensionerad cell eller sammanslagning avslås i stället för att tyst klippas

Granska eller rendera resultatet

IXLSPortablePrintPlan.Snapshot äger en fristående oföränderlig renderingsögonblicksbild, PageCount rapporterar det logiska sidantalet, och nollbaserad Pages[Index] returnerar en TXLSPortablePrintPage med en fristående plattmatris

Varje sida exponerar AreaIndex, AcrossIndex, DownIndex, sitt nollbaserade inklusiva Body, Scale, PageWidthPoints, PageHeightPoints och Tiles

TXLSPortablePrintTiles innehåller högst fyra TXLSPortablePrintTile-poster för det upprepade hörnet, titelrader, titelkolumner och brödtext; varje platta exponerar oskalad källa SourceLeft, SourceTop, SourceRight, SourceBottom och fysiskt mål DestinationLeft, DestinationTop

Överladdningen PrepareXLSPortableCairoLayout(Plan, Fonts, Options) behåller fristående sidposter, klipper och skalar sceninnehåll för varje platta och använder planens pappersmått och marginaler; raster-, typsnitts-, formnings- och ritningsbudgeter fortsätter att gälla upprepat innehåll

Layout.PageCount matchar planen; PDF ger en flersidig fil, medan SVG och PNG ger en fil per logisk sida; layoutens textradgranskning behåller oskalade ögonblicksbildskoordinater i stället för positioner som upprepas per sida

Befintliga utdatafiler avslås, och Windows-ingångspunkten för inbyggd Cairo förblir uttryckligen ostödd; se portabel headless-utmatning för beroenden, typsnittsmappning, scen- och utdatagränser