Napredno iscrtavanje i izvoz
Putevi PDF-a, SVG-a, bitmape, metafile-a, pregleda i ispisa dijele jedinstveni model paginacije i geometriju neovisnu o pozadinskom sustavu, zadržavajući enkodere specifične za format
Prilagođena grafička sučelja
TXLSGraphicsTextAlign definira lijevo, središnje i desno poravnanje teksta za TXLSGraphicsBackend; pozivi za iscrtavanje sa stilom koriste preostala zajednička nabrajanja — stilove fonta (TXLSGraphicsFontStyles), završetke crta (TXLSGraphicsLineCap), obrasce crtki (TXLSGraphicsLineDash) i okomito poravnanje teksta (TXLSGraphicsTextVAlign)
| Životni ciklus stranice | BeginPage i EndPage |
| Primitivi | FillRect, StrokeRect, DrawLine, DrawStyledLine, DrawEllipse, DrawPath, DrawText, DrawStyledText, DrawCellText i DrawImage |
| Ulazna točka paginacije | TXLSPaginationModel.RenderPageToBackend šalje jednu logičku stranicu bilo kojoj implementaciji pozadinskog sustava |
Implementacije primaju koordinate u točkama, razriješene efekte teksta i slika, odsijecanje i postavljanje crteža unutar stranice, bez potrebe za ponavljanjem logike izgleda radne knjige. Svaki crtež na logičkoj stranici stiže kao zapis TXLSPageDrawingPlacement čije polje Kind (TXLSPageDrawingKind: xpdkImage, xpdkChart, xpdkTextBox, xpdkShape, xpdkControl) govori pozadinskom sustavu što se slika; pločice pozadine radnog lista stižu kao dekodirani TXLSSheetBackgroundRenderData
Geometrija iscrtavanja u vlasništvu operacije
TXLSPaginationModel.RenderBackend bira identitet pozadinskog sustava koji snima sljedeći poziv Build, a RenderGeometry izlaže rezultirajuću nepromjenjivu kalibraciju, generaciju radne knjige, pozadinski sustav i stanje predmemorije metrika s ograničenim kapacitetom; aktivna sesija iscrtavanja putuje kao ručka TXLSRenderSession, a politika boja je TXLSRenderColorMode (xlsrcColor ili xlsrcMonochrome)
PDF modeli koriste xlsrgbPdf, SVG koristi xlsrgbSvg, slike stranica koriste xlsrgbBitmap, modeli ispisa i pregleda ispisa koriste xlsrgbPrintPreview, a TXLSWorkbookViewer koristi xlsrgbViewer; PaginationModel na SVG, slikovnim, ispisnim i pregledničkim komponentama izlaže aktivni model za dijagnostiku bez prijenosa vlasništva
Klasični i XLSX ulazni točke za HTML snimaju xlsrgbHtml; TXLSHTMLExport.RenderGeometry izlaže najsvježiju klasičnu snimku, dok TXLSXHtmlExportSession.RenderGeometry izlaže snimku zadržanu kroz sve listove tijekom postupnog izvoza
Izlaz stupaca u HTML-u pretvara model širine znaka radne knjige preko maksimalne širine znamenke fonta Normal i konfiguriranog skaliranja zaslona prije nego ispiše fiksnu CSS duljinu u pikselima; pretvorba između točaka i piksela koristi isti snimljeni DPI mjerenja
Svaka operacija zadržava svoju snimljenu kalibraciju čak i ako se radna knjiga kasnije promijeni, a iscrtavanje nikada ne zapisuje visine redaka ni širine stupaca radnog lista. Paginacija gradi stranice od objekata TXLSLogicalPage čiji crteži, orijentacija (TXLSPageOrientation: xpoPortrait ili xpoLandscape) i smještaj komentara (TXLSPrintComments: xpcNone ili xpcAtEnd) dolaze iz razriješene postavke stranice
Logička stranica izlaže sve što pozadinskom sustavu ili povratnom pozivu treba: identitet (DocumentPageNumber, SheetPageNumber, SheetName, vlasnički ClassicWorksheet odnosno XlsxWorksheet), geometriju (PageWidth, PageHeight, Scale te vrijednosti LeftMargin, RightMargin, TopMargin, BottomMargin, HeaderMargin i FooterMargin), podatkovni pravokutnik (DataFirstRow, DataLastRow, DataFirstCol, DataLastCol) sa zahvaćenim naslovima ispisa (RepeatFirstRow, RepeatLastRow, RepeatFirstCol, RepeatLastCol), smještaj pozadine (BackgroundOffsetX, BackgroundOffsetY), ispis mrežnih linija (PrintGridlines, GridlineColor), šest tekstova traka zaglavlja i podnožja (LeftHeader, CenterHeader, RightHeader, LeftFooter, CenterFooter, RightFooter) te kosture redaka i stupaca stranice (RowCount uz Rows i RowEdges, ColumnCount uz Columns i ColumnEdges) zajedno s njezinim popisom crteža (DrawingCount i Drawings). ExpandHeaderFooter razrješuje formatne kodove zaglavlja i podnožja na razini stranice, a ExpandHeaderFooterStyled dodatno javlja vodeću veličinu u točkama i boju kako bi prilagođeni slikari mogli oponašati Excelovo vlastito iscrtavanje zaglavlja
Iscrtavanje pozadine radnog lista
Preglednik radnih knjiga prikazuje valjane klasične i XLSX pozadine radnih listova kao ponavljajuće pločice iza neispunjenih ćelija, dok eksplicitna i uvjetna ispuna ćelija ostaje iznad pozadine
TXLSPaginationModel, TXLSSvgExport, TXLSPageImageExporter, TXLSPrintDocument, TXLSPDFExport, TXLSHTMLExport, TXLSXHtmlExportOptions i TXLSWorkbookViewer izlažu ExportSheetBackgroundImages; zadano je False za ispis, pregled, metafile, PDF, SVG, bitmapu i HTML izlaz. Radni listovi pohranjuju svoj sadržaj uz format slike TXLSSheetBackgroundFormat, a dekodirani bajtovi putuju kao TXLSSheetBackgroundResource indeksiran generacijom, DPI-jem i načinom boja
Uključeni izlaz s paginacijom sidri fazu pločica na koordinate radnog lista preko granica stranica i zadržava jednu dekodiranu sliku po radnom listu, generaciji resursa, pozadinskom sustavu, DPI-ju i načinu boja za trajanje sesije iscrtavanja; BackgroundDecodeCount izlaže ukupan broj dekodiranja za dijagnostiku, a oštećeni se sadržaji preskaču uz dijagnostički zapis radne knjige. Aktivna TXLSRenderSession sama upravlja tom zajedničkom predmemorijom: AcquireBackground dohvaća (ili jednom dekodira) pločičasti TXLSSheetBackgroundRenderData radnog lista, DrawTiledBackground iscrtava ga preko odsječene regije stranice, a DecodeCount javlja koliko je sadržaja dosad dekodirano
Politika prikaza objekata radne knjige
ObjectDisplayMode bira xlsodmShowAll, xlsodmShowPlaceholders ili xlsodmHideAll i za klasične XLS i za XLSX radne knjige; preglednik podržava sva tri stanja i u načinu rezerviranih mjesta koristi jeftine okvire s vrstom, nazivom, tekstom i alternativnim tekstom
PDF, SVG, bitmapni, fizički ispisni i XLSX HTML izvoznici zadano tretiraju način rezerviranih mjesta kao izlaz punih objekata; postavite ExportObjectPlaceholders na odgovarajućem izvozniku ili HTML opcijama da zatražite okvire bez dekodiranja slika ni izgradnje scene grafikona
xlsodmHideAll je ranije globalno vrata koje sprječava prikupljanje crteža, proširenje raspona potaknuto objektima, testiranje pogotka i iscrtavanje medija; pozadine radnih listova, ikone uvjetnog oblikovanja, slike zaglavlja ili podnožja, ćelije i izvozniku specifični filtri objekata za ispis ostaju neovisni
Kalendarski svjesne osi datuma grafikona
XLSX grafikoni čija os kategorija koristi xlsxAxisDate preslikavaju svaku valjanu kategoriju kroz 1900 ili 1904 sustav serijskih datuma radne knjige te zadržavaju stvarni razmak između rijetkih datuma umjesto da dodjeljuju jednake položaje točaka
BaseTimeUnit upravlja normalizacijom na dan, mjesec ili godinu, dok MajorUnit, MinorUnit, MajorTimeUnit i MinorTimeUnit pomiču očitaje u kalendarskim jedinicama; mjesečni i godišnji intervali stoga ostaju poravnati kroz nejednake duljine mjeseci i prijestupne godine
Isti skup očitaja s ograničenim kapacitetom osigurava koordinate, oznake, očitaje i tražene mrežne linije za PDF, SVG, bitmapu, pregled, ispis i izlaz preglednika temeljene na paginaciji, dok XLSX HTML koristi zajedničku kalendarsku aritmetiku za svoj ugrađeni SVG grafikona
Samostalni PDF writer
TXLSPDFWriter stvara PDF dokumente koji ne potječu iz radne knjige — račune, ulaznice, naljepnice i preklapajuće obrasce; BeginDoc postavlja okvir stranice precizan u točkama, NewPage zatvara trenutačnu stranicu, a SaveToStream ili SaveToFile dovršavaju dokument
Metode iscrtavanja koriste PDF točke mjerene od donjeg lijevog kuta i boje biblioteke u obliku $00BBGGRR ili $AABBGGRR; dostupni primitivi pokrivaju ispunjene i obrubljene pravokutnike, crte, elipse, stilizirani tekst s točnim mjerenjem širine, afine transformacije, pravokutno odsijecanje te izričito spremanje i vraćanje grafičkog stanja kroz FillRectangle, StrokeRectangle, ClipRectangle, MeasureText, SaveGraphicsState i RestoreGraphicsState, dok PageWidth i PageHeight javljaju trenutačni okvir stranice u točkama
SVG izvoz
TXLSSvgExport nudi sedam preopterećenja metode SaveAsSVG za klasične i XLSX raspone, radne listove, radne knjige i pripremljene logičke stranice, uz izlaz imenovanih objekata gdje je podržan
UseWorksheetPageSetup, Orientation i Margin koriste iste odluke o postavci stranice kao PDF i izlaz za pregled
TXLSSvgExport.PrintComments (vrsta TXLSPrintComments) bira kako se ćelijski komentari ispisuju u SVG izlazu s paginacijom; pri xpcAtEnd posljednja stranica lista dodaje popis komentara (adresa ćelije, autor i tekst) ispod podatkovnog područja, a xpcNone izostavlja komentare
ExportPages šalje po jedan cjelovit SVG dokument kroz OnPage, javlja broj potvrđenih stranica kroz ExportedPageCount i prestaje prije generiranja kasnijih stranica kada povratni poziv otkaže izvoz; IdPrefix stvara determinističke nazivne prostore dokumenta i stranica za putanje odsijecanja, filtre, uzorke i zajedničke resurse
HyperlinkMode (vrsta TXLSSvgHyperlinkMode) s xshmSafe dodaje prozirna područja pogotka s odsijecanjem nakon vizualnog sadržaja; dopuštene su vanjske sheme HTTP, HTTPS, mail, FTP i relativne poveznice, dok se aktivne, lokalne, UNC i ciljevi s kontrolnim znakovima izostavljaju; LinksInNewWindow dodaje zaštitu noopener noreferrer, a ScreenTipovi postaju SVG naslovi
Postupni PNG, JPEG i višestranični TIFF izlaz
TXLSPageImageFormat bira PNG ili JPEG izlaz, a TXLSPageImageExporter održava jednu sesiju paginacije dok svaku završenu bitmapu odmah oslobađa
| Sesija | Šest preopterećenja metode BeginExport prihvaća klasične ili XLSX raspone, radne listove i radne knjige; ExportNext zapisuje jednu stranicu, a EndExport oslobađa sesiju |
| Višestranični TIFF | ExportAllAsTiff zapisuje odabrane logičke stranice u tok ili datoteku kao jedan TIFF sažet LZW-kompresijom, zadržavajući semantiku napretka, otkazivanja i atomičnog odredišta |
| Postavka stranice | UseWorksheetPageSetup, Orientation, Margin, DefaultRowHeight, PaperWidthOverride i PaperHeightOverride |
| Rasterski izlaz | Scale, ImageFormat i JpegQuality, dok ExportObjectAsPNG iscrtava jedan objekt crteža u posjedovanu PNG sliku |
| Zbijeni rasponi | ExportRange iscrtava klasični ili XLSX raspon kao jednu zbijenu raster sliku bez papira, margina, zaglavlja, podnožja, naslova za ispis i prijeloma stranica |
| Događaji platna | BeforeRenderPage se izvršava nakon brisanja pozadine, a AfterRenderPage nakon iscrtavanja radne knjige ali prije kodiranja; PNG, JPEG i TIFF kadrovi dijele isti put događaja |
| Stanje | Active, Aborted, TotalPageCount, PageCount i ExportedPageCount |
Označeni PDF i PDF/A
TXLSPDFExport.TagMode omogućuje automatsku strukturu dokumenta, tablice, retka, ćelije zaglavlja, ćelije podataka i informativne slike s gustim označiteljima sadržaja lokalnima stranici, točnim preslikavanjima stabla nadređenih, spojevima spojenih ćelija i izolacijom artefakata; reci naslova za ispis i reci zaglavlja tablice postaju semantičke ćelije zaglavlja, XLSX slike s nepraznim AltText postaju samostalni Figure elementi s Unicode alternativnim tekstom, a slike bez alternativnog teksta ostaju dekorativni artefakti
Svaka vidljiva instanca informativne slike dobiva vlastiti Figure element i označitelj sadržaja čak i kada jednaki sadržaji slika dijele jedan PDF XObject; AltTextTitle ne zamjenjuje nedostajući alternativni tekst, grafikoni ostaju artefakti, i ova fokusirana potpora strukturi ne tvrdi potpunu PDF/UA sukladnost
TXLSPDFExport.PDFAProfile bira PDF/A-1, PDF/A-2 ili PDF/A-3 na razini sukladnosti a ili b; nekompatibilno šifriranje, fontovi, privitci, prozirnost, potpisi i metapodaci provjeravaju se prije nego što se izlazni tok potvrdi
TXLSPDFExport.ExportCommentsAsAnnotations postavlja Unicode tekst autora i komentara na pravokutnike izvornih ćelija, dok tradicionalni izlaz komentara na kraju ostaje neovisno konfigurabilan
UsePDFA je preklopnik kompatibilnosti za PDF/A-1b, dok UseXRefStream bira tokove unakrsnih referenci tamo gdje ih odabrani profil dopušta
Geometrija i odabir stranice
Šest preopterećenja metode CalculatePageCount prihvaća klasične i XLSX raspone, radne listove ili radne knjige bez izgradnje PDF objekata
PaperWidth i PaperHeight nadjačavaju dimenzije papira u točkama, LastPage zatvara izlazni interval koji počinje od jedan, Orientation (vrsta TXLSPDFOrientation) bira uspravni ili vodoravni izlaz, HidePrintObjects (skup TXLSPDFHidePrintObject: xlsPdfHideHeaders, xlsPdfHideFooters) potiskuje odabrane trake zaglavlja ili podnožja, a PageLayout (vrsta TXLSPDFPageLayout) postavlja početni raspored stranica u pregledniku
PDF način stranice i radnja otvaranja
TXLSPDFExport.PageMode (vrsta TXLSPDFPageMode) postavlja kako PDF preglednik raspoređuje panele pri otvaranju dokumenta, kroz xlsPdfModeDefault, xlsPdfModeUseOutlines, xlsPdfModeUseThumbs, xlsPdfModeFullScreen, xlsPdfModeUseOC i xlsPdfModeUseAttachments
OpenAction (vrsta TXLSPDFOpenAction) bira početno ponašanje preglednika kroz xlsPdfOpenNone, xlsPdfOpenPage ili xlsPdfOpenOutlines. Za xlsPdfOpenPage, OpenActionPage je ciljna stranica s jediničnim početkom (ograničava se brojem stranica), a OpenActionZoom je početni faktor povećanja, pri čemu 0 zadržava zadani zoom ili prilagodbu preglednika
Zajednička prilagodljiva vektorska geometrija
XLSBuildEllipticArcCubics pretvara eliptični luk u kubične Bézierove segmente rekurzivnim nametanjem granice ravnosti koju bira pozivatelj; PDF, SVG i bitmapno iscrtavanje koriste tu zajedničku geometriju tako da veliki ili jako ekscentrični lukovi dobivaju više segmenata, a jednostavni lukovi ne plaćaju porez
XLSDecodeVectorScene provjerava EMF i WMF zaglavlja, poravnanje i veličine zapisa, deklarirane ukupnosti, točan smještaj EOF-a i ograničenja resursa bez pozivanja platformskog reproduktora metazapisa; izvorni popis dopuštenih reprodukcija ponavlja slogove stanja uređajnih konteksta sa spremanjem i vraćanjem, mapiranje prozora i pogleda u kombinaciji sa world transformacijama, tablice objekata olovaka, četki i proširenih olovaka uključujući standardne objekte, pravokutnike, elipse, lance crta, poligone, polilinije i Bézierove krivulje sa stilovima crta, zagrade putanja s ispunom, obrubom i kombiniranim prolazima obruba-plus-ispuna, zaobljene pravokutnike, lukove, tetive, kružne isječke i kutne lukove kroz točnu pretvorbu luka u Bézier, ispune i obrube regija iz ograničenih RGNDATA pravokutnika, ograničene tekstovne nizove s fontovima, bojama i poravnanjem te ograničene stretch-DIB slike ponovno kodirane u PNG kroz Canvas i SVG, odbija escape zapise, a odsijecanje i privatne zapise prepušta postojećem ograničenom rezervnom putu
PDF konture i povratni pozivi stranica
PDF konture žive u zbirci Bookmarks (vrsta TXLSPDFBookmarks): Add i AddForSheet dodaju unose, Delete uklanja jedan, a Count uz Items nabraja stablo. Svaki TXLSPDFBookmark unos podržava nadređene i podređene unose (Children), lance rođaka, Unicode naslove, boje (Color), cilj PageNumber, izvorni SheetName za oznake radnih listova te oznake podebljanog ili kurzivnog stila (skup TXLSPDFBookmarkStyle: xlsPdfBookmarkBold, xlsPdfBookmarkItalic), plus raširene ili skupljene potomke; automatske oznake radnih listova koriste isti model hijerarhije, a AutoSheetBookmarks uključuje i isključuje njihovo generiranje
BeforeNewPage može podesiti okvir svake stranice, dok BeforeGeneratePage i AfterGeneratePage iscrtavaju pozadinski ili preklapajući sadržaj kroz javne pomoćne metode stranice AppendPageContent, FillPageRectangle, StrokePageRectangle i DrawPageText
Potpisi i privitci
TXLSPDFSignature konfigurira vidljiva ili nevidljiva polja potpisa, dok CertificationPolicy izbornim DocMDP potpisom certificiranja dopušta bez izmjena, ispunjavanje i potpisivanje obrazaca, ili ispunjavanje, potpisivanje i bilješke; PDF/A-1 ne dopušta tu značajku PDF 1.5 formata i odbija se prije potvrđivanja izlaza
TXLSPDFCertificationPolicy pruža xlsPdfApprovalSignature, xlsPdfCertifyNoChanges, xlsPdfCertifyFormFillingAndSigning i xlsPdfCertifyFormFillingSigningAndAnnotations za izričiti odabir politike potpisivanja
TXLSPDFSignDigestEvent prima sažetak i vraća CMS podatke koje je stvorio domaćin, tako da HotXLS nikada ne treba privatni ključ
TXLSPDFExport.Signature prilaže konfiguraciju potpisa, a PDF/A-3 profili mogu uključiti validirane pridružene datoteke kroz AddAttachment koji stavlja u red TXLSPDFAttachment; detaljno preopterećenje prihvaća Unicode prikazni naziv, MIME vrstu, opis, vrijeme izmjene, sadržaj i vrijednost TXLSPDFAttachmentRelationship — Source, Data, Alternative, Supplement ili Unspecified — dok AttachmentCount javlja ukupan broj u redu, a AttachmentDuplicatePolicy (vrsta TXLSPDFAttachmentDuplicatePolicy) bira kako se postupa s jednakim nazivima
TXLSPDFSignature.ImageData, ImageFormat i ImageFit (vrsta TXLSPDFSignatureImageFit: contain, cover ili stretch) smještaju PNG u Form uobičajenog prikaza prije nego se raspon bajtova zamrzne; načini contain, cover i stretch dijele predmemoriju slika dokumenta, a nevaljane slike propadaju prije potpisivanja
Preopterećenje s IXLSPDFAttachmentSource odgađa dohvat do spremanja, poziva svaki izvor jednom po spremanju i u međuspremnik prebacuje najviše 256 MiB prije nego se stvori objekt EmbeddedFile, tako da greške pružatelja ostavljaju transakciju odredišta netaknutom
Završno sastavljanje ispisuje objekte u odredište sekvencijski umjesto da gradi cijeli dokument kao jedan string: izvozi bez potpisa teku izravno u tokove koji se pišu samo unaprijed, svaki EmbeddedFile referencira svoju veličinu u bajtovima kroz neizradni objekt /Length ispisan nakon sadržaja, a bajtovi pružatelja kopiraju se iz međuspremnika u fiksnim blokovima; izvozi s potpisom sastavljaju se u međuspremnik dokumenta s ograničenim kapacitetom koji prima zakrpe ByteRange i sadržaja potpisa, inkrementalni SHA-256 nad dva pokrivena raspona i jedno kopiranje unaprijed
Izlaz PDF/A-3 zapisuje svaku pridruženu datoteku i u stablo naziva EmbeddedFiles i u AF polje kataloga, s Unicode UF nazivom, eskapiranim MIME PDF Name, AFRelationship, veličinom u bajtovima, izbornim datumom izmjene i izbornim opisom; PDF/A-1 i PDF/A-2 odbijaju privitke u redu prije potvrđivanja izlaza
Metapodaci dokumenta
DocumentTitle, DocumentAuthor, DocumentSubject, DocumentKeywords i DocumentFileName popunjavaju informacijske i metapodatkovne rječnike PDF-a
Zamjena fontova
TXLSPDFExport.SetFontFallbackChain, AddFontFallback i ClearFontFallbackChains konfiguriraju razine zamjene prema izvornoj obitelji i stilu; LoadedFallbackFontCount izlaže broj pisama u predmemoriji, a FontFallbackSelectionCacheCount broj predmemoriranih odluka o zamjeni po odabiru — oboje za dijagnostiku
TXLSPDFExport.FontSize postavlja zadanu veličinu teksta u točkama, zadano je 9
Odabir zamjene koristi pokrivenost glifova i čuva Unicode mapiranja, dopunske skalarne vrijednosti, klastere grafema, klastere oblikovanja i samostalna TTC pisma
OnGetFontDirectories može vratiti jedan ili više direktorija fontova odvojenih točkom sa zarezom za traženu obitelj i stil; prihvaćeni direktoriji jednom se rekurzivno pretražuju, indeksiraju po internim metapodacima obitelji i stila te predmemoriraju za kasnije mjerenje i iscrtavanje
Politika ugrađivanja fontova
TXLSPDFExport.FontEmbedding (vrsta TXLSPDFFontEmbedding) bira automatsko ugrađivanje, obavezno podskupljivanje, cjeloviti programski font ili izlaz samo s mapiranjima kroz xlsPdfFontEmbedAuto, xlsPdfFontEmbedSubset, xlsPdfFontEmbedFull i xlsPdfFontEmbedNone; obavezno podskupljivanje atomično propadne kad se ne može proizvesti valjan podskup, TTC pisma se pretvaraju u samostalne fontove, a PDF/A odbija izlaz samo s mapiranjima
OnFontEmbed okida se jednom po Unicode pismu prije nego se razriješe njegove metrike, preslikavanje znakova, oblikovanje i identifikatori glifova; postavljanje Handled prihvaća vraćeni način za taj font i izborne zamjenske bajtove, dok ostavljanje na false zadržava politiku dokumenta i izvorno pismo
Samostalni OpenType fontovi s CFF obrisima ugrađuju se kroz FontFile3 s OpenType tokom i CIDFontType0 potomkom; automatski i puni način zadržavaju cjeloviti program, a obavezno CFF podskupljivanje atomično propada jer ne može sačuvati valjan podskup
Ugrađeni fontovi koji nose OpenType GPOS ili naslijeđene kern podatke koriste pozicionirane pomake glifova za jednostavni i složeni tekst, tako da mjerenje, prelamanje, poravnanje i ispisani položaji glifova dijele isti rezultat kerninga
Napredak i otkazivanje
TXLSPDFExport.OnProgress i OnProgressEx izvještavaju o fazama početka, stranice i završetka; Cancel zahtijeva otkazivanje, a Aborted izvještava o konačnom stanju bez potvrđivanja djelomičnog toka