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ält | Kontrakt |
|---|---|
PageWidthPoints, PageHeightPoints | Positiva fysiska pappersmått i punkter, standard A4 |
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPoints | Icke-negativa marginaler som lämnar en positiv utskriftsbar rektangel, standard 36 punkter |
Landscape, CenterHorizontally, CenterVertically | Landskap byter plats på porträttmåtten; centreringen gäller varje sidas brödtext och dess upprepade titlar |
ScalePercent | 10 till 400, standard 100; tillämpas när ingen anpassningsdimension är positiv |
FitToPagesWide, FitToPagesTall | Icke-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, TitleLastColumn | Kompletta nollbaserade inklusiva titelområden, eller -1 i båda ändpunkterna för att inaktivera den axeln |
RowBreaks, ColumnBreaks | TXLSPortablePrintBreaks-matriser med strängt stigande unika nollbaserade positioner där en ny sida börjar; arbetsboksanpassningen sorterar fristående metadata utan att redigera bladet |
Order | TXLSPortablePrintOrder: xppoDownThenOver eller xppoOverThenDown |
MaxPages | Positiv total sidgräns, standard 256 och max 100 000 |
MaxPlanBytes | Arbetslagring, fristående ögonblicksbildsnyttolast och sidposter delar den här positiva minnesbudgeten, standard 64 MiB och max 1 GiB |
MaxPlanningSteps | Positiv 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