Dokumentacja HotXLS / Dokumentacja API

Przenośne plany wydruku

Oddziela logiczną paginację od natywnego wyjścia: lxPortablePrint tworzy niezmienny plan wydruku z odłączonej migawki renderowania, a lxPortableCairo rysuje jego strony jako PDF, SVG albo PNG na Linuksie i macOS

Planista korzysta z fizycznych punktów i kompletnych granic komórek, zachowuje scalone zakresy, powtarza tytuły wierszy i kolumn oraz aplikuje rozłączne obszary wydruku, ręczne podziały, orientację, marginesy, centrowanie, skalowanie i kolejność stron bez zmiany skoroszytu źródłowego

Korzystanie z ustawień strony skoroszytu

CreateXLSPortableWorkbookPrintPlan w lxPortableWorkbookPrint ma przeciążenia dla pożyczonych TXLSWorkbook i TXLSXWorkbook; oba przyjmują SheetIndex, OriginRow, OriginColumn, Snapshot i Defaults

Indeks arkusza i początek migawki są numerowane od 1; adapter wymaga migawki z bieżącej generacji skoroszytu oraz przechwyconego prostokąta zawierającego każdy kompletny obszar wydruku i powtarzany zakres tytułów

Tożsamość migawki obejmuje jej generację, podczas gdy wywołujący dostarcza pasujący arkusz i początek; zachowuj poprawny kontekst arkusza przy transferze migawki, bo format migawki nie koduje tożsamości skoroszytu ani arkusza

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;

Przy przechwycie na Linuksie lub macOS użyj jawnego providera geometrii opartego na fontach, opisanego w bezpośrednim natywnym przechwycie skoroszytu; sama paginacja nie wymaga Cairo, plików fontów, Excela ani sterownika drukarki

Adapter skoroszytu bierze tymczasową dzierżawę odczytu, czyta istniejące metadane i zwraca dane odłączone; ani nie przejmuje surowego skoroszytu przez posiadający interfejs, ani nie utrzymuje dzierżawy skoroszytu w wyniku

Nazwy arkuszy w cudzysłowach, escapowane cudzysłowy i obszary wydruku rozdzielane przecinkami są akceptowane wyłącznie dla wybranego arkusza; odwołania poza przechwyconym prostokątem, odwołania do obcych arkuszy, niekompletne zakresy tytułów i zniekształcone zakresy są odrzucane jawnie

Rozpoznawane rozmiary papieru to Letter, Tabloid, Ledger, Legal, A3, A4, A5, B4 i B5; nieokreślony rozmiar papieru korzysta z Defaults.PageWidthPoints i Defaults.PageHeightPoints, podczas gdy nierozpoznany jawny rozmiar papieru jest odrzucany

Treść nagłówków i stopek, drukowane nagłówki wierszy/kolumn, włączona siatka wydruku, wygląd czarno-biały albo roboczy, drukowanie komentarzy i podstawienia błędów są obecnie odrzucane, bo ten adapter nie potrafi wiernie narysować tych ustawień; skoroszyty Classic domyślnie włączają siatkę wydruku, więc wyłącz PageSetup.PrintGridlines dla tego obsługiwanego kontraktu

Tryb skalowania i domyślne natywne

TXLSXWorksheet.PageFitToPages wybiera tryb dopasowania niezależnie od swoich wymiarów: ustawienie FitToWidth albo FitToHeight wybiera tryb dopasowania, a ustawienie PageScale wybiera skalowanie procentowe

Import XLSX zachowuje sheetPr/pageSetUpPr/@fitToPage i domyślne OOXML równe jeden dla pominiętego wymiaru dopasowania; eksport zachowuje jawne zerowe wymiary, a konwersja XLS/XLSX zachowuje wybrany tryb

Skalowanie procentowe ignoruje nieaktualne wymiary dopasowania; tryb dopasowania ignoruje zapisany procent skali, a dodatnie wymiary dopasowania ignorują ręczne podziały; zero na obu osiach zachowuje ręczne podziały przy skali 100%, podczas gdy dodatnie limity zmniejszają zbyt dużą treść bez powiększania małego zakresu

Logiczna paginacja zależy od dostarczonej geometrii migawki; metryki sterownika drukarki i skalowanie eksportu PDF Excela potrafią zmienić wyjście fizyczne i nie stanowią gwarancji dokładnej równoważności wizualnej

Budowanie odłączonego planu bezpośrednio

CreateXLSPortablePrintPlan(Snapshot, Areas, Options) przyjmuje numerowane od zera włączne TXLSPortablePrintRanges; pusta tablica Areas wybiera całą migawkę, a każdy TXLSPortablePrintRange zawiera FirstRow, FirstColumn, LastRow i LastColumn

Startuj od XLSDefaultPortablePrintOptions, po czym ustaw pola TXLSPortablePrintOptions poniżej

PolaKontrakt
PageWidthPoints, PageHeightPointsDodatnie fizyczne wymiary papieru w punktach, domyślnie A4
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPointsNieujemne marginesy zostawiające dodatni prostokąt druku, domyślnie 36 punktów
Landscape, CenterHorizontally, CenterVerticallyLandscape zamienia wymiary portretu; centrowanie dotyczy treści każdej strony i jej powtarzanych tytułów
ScalePercentOd 10 do 400, domyślnie 100; stosowane, gdy żaden wymiar dopasowania nie jest dodatni
FitToPagesWide, FitToPagesTallNieujemne limity stron, zero dla osi nieograniczonej; dodatnie limity szukają wykonalnej skali między 10% a 100%
TitleFirstRow, TitleLastRow, TitleFirstColumn, TitleLastColumnKompletne numerowane od zera włączne zakresy tytułów albo -1 na obu końcówkach, aby wyłączyć daną oś
RowBreaks, ColumnBreaksTablice TXLSPortablePrintBreaks ściśle rosnących unikalnych pozycji numerowanych od zera, gdzie zaczyna się nowa strona; adaptacja skoroszytu sortuje odłączone metadane bez edycji arkusza
OrderTXLSPortablePrintOrder: xppoDownThenOver albo xppoOverThenDown
MaxPagesDodatni łączny limit stron, domyślnie 256 i maksymalnie 100,000
MaxPlanBytesPraca, ładunek odłączonej migawki i rekordy stron dzielą ten dodatni budżet pamięci, domyślnie 64 MiB i maksymalnie 1 GiB
MaxPlanningStepsDodatni ograniczony budżet pracy planowania, domyślnie 64 Mi kroków i maksymalnie 2 Gi kroków; przekroczenie podnosi EXLSPortablePrintBudget

Geometria musi być skończona; ukryte wymiary mają rozmiar zerowy, podział strony nie może przecinać scalenia, obszar albo tytuł nie mogą częściowo przecinać scalenia, a zbyt duża komórka albo scalenie jest odrzucane zamiast być cicho ucinane

Inspekcja lub renderowanie wyniku

IXLSPortablePrintPlan.Snapshot posiada odłączoną niezmienną migawkę renderowania, PageCount raportuje logiczną liczbę stron, a numerowane od zera Pages[Index] zwraca TXLSPortablePrintPage z odłączoną tablicą kafli

Każda strona ujawnia AreaIndex, AcrossIndex, DownIndex, swój numerowany od zera włączny Body, Scale, PageWidthPoints, PageHeightPoints i Tiles

TXLSPortablePrintTiles zawiera co najwyżej cztery rekordy TXLSPortablePrintTile dla powtarzanego narożnika, wierszy tytułów, kolumn tytułów i treści; każdy kafel ujawnia nieskalowane źródłowe SourceLeft, SourceTop, SourceRight, SourceBottom i fizyczne przeznaczenie DestinationLeft, DestinationTop

Przeciążenie PrepareXLSPortableCairoLayout(Plan, Fonts, Options) zachowuje odłączone rekordy stron, przycina i skaluje treść sceny dla każdego kafla oraz korzysta z wymiarów papieru i marginesów planu; budżety rastra, fontów, kształtowania i rysowania dalej dotyczą powtarzanej treści

Layout.PageCount zgadza się z planem; PDF produkuje jeden wielostronicowy plik, podczas gdy SVG i PNG produkują jeden plik na logiczną stronę; inspekcja linii tekstu układu zachowuje nieskalowane współrzędne migawki zamiast powtarzanych pozycji per strona

Istniejące pliki wyjściowe są odrzucane, a punkt wejścia natywnego Cairo w Windows pozostaje jawnie nieobsługiwany; zobacz przenośne wyjście headless dla zależności, mapowania fontów, scen i limitów wyjścia