Napredno upodabljanje in izvoz
Poti PDF, SVG, bitne slike, metaformat, predogleda in tiskanja uporabljajo en model paginacije in geometrijo, neodvisno od zaledja, ob ohranjanju kodirnikov, značilnih za posamezen format
Poljubna grafična zaledja
TXLSGraphicsTextAlign določa levo, sredinsko in desno poravnavo besedila za TXLSGraphicsBackend; slogovni klici risanja prevzamejo preostale skupne našteve — sloge pisav (TXLSGraphicsFontStyles), končnice črt (TXLSGraphicsLineCap), vzorce črtkanja (TXLSGraphicsLineDash) in navpično poravnavo besedila (TXLSGraphicsTextVAlign)
| Page lifecycle | BeginPage in EndPage |
| Primitives | FillRect, StrokeRect, DrawLine, DrawStyledLine, DrawEllipse, DrawPath, DrawText, DrawStyledText, DrawCellTextin DrawImage |
| Pagination entry point | TXLSPaginationModel.RenderPageToBackend pošlje eno logično stran poljubni izvedbi zaledja |
Izvedbe prejmejo koordinate v točkah, razrešene učinke besedila in slik, izrezovanje ter postavitev risanja, lokalno za stran, brez potrebe po ponavljanju logike postavitve delovnega zvezka. Vsaka risba na logični strani prispe kot zapis TXLSPageDrawingPlacement , katerega polje Kind (TXLSPageDrawingKind: xpdkImage, xpdkChart, xpdkTextBox, xpdkShape, xpdkControl) zaledju pove, kaj riše; ploščice ozadja delovnega lista prispejo kot dekodirani TXLSSheetBackgroundRenderData
Geometrija izrisa v lasti operacije
TXLSPaginationModel.RenderBackend izbere identiteto zaledja, ki jo zajame naslednji klic Build , RenderGeometry pa izpostavi dobljeno nespremenljivo kalibracijo, generacijo delovnega zvezka, zaledje in stanje omejenega predpomnilnika meritev; aktivna seja izrisa potuje kot ročica TXLSRenderSession , politika barv pa je TXLSRenderColorMode (xlsrcColor ali xlsrcMonochrome)
Modeli PDF uporabljajo xlsrgbPdf, SVG xlsrgbSvg, slike strani xlsrgbBitmap, modeli za tiskanje in predogled tiskanja xlsrgbPrintPreview, TXLSWorkbookViewer pa xlsrgbViewer; PaginationModel pri komponentah SVG, slik, tiskanja in pregledovalnika izpostavlja aktivni model za diagnostiko, ne da bi prevzel lastništvo
Klasične in XLSX vstopne točke HTML zajamejo xlsrgbHtml; TXLSHTMLExport.RenderGeometry izpostavi zadnji posnetek klasičnega zvezka, TXLSXHtmlExportSession.RenderGeometry pa posnetek, ki ga seja obdrži čez vse liste pri inkrementalnem izvozu
Izhod stolpcev HTML pretvori model širine znakov delovnega zvezka prek največje širine števk pisave Normal in nastavljene skalnosti zaslona, preden izpije fiksno dolžino v slikovnih pikah CSS; pretvorba med točkami in slikovnimi pikami uporabi isti zajeti DPI merjenja
Vsaka operacija obdrži svojo zajeto kalibracijo, tudi če se delovni zvezek kasneje spremeni, izris pa nikoli ne piše višin vrstic ali širin stolpcev delovnega lista. Paginacija gradi strani iz objektov TXLSLogicalPage , katerih risbe, usmerjenost (TXLSPageOrientation: xpoPortrait ali xpoLandscape) in postavitev pripomb (TXLSPrintComments: xpcNone ali xpcAtEnd) izhajajo iz razrešene postavitve strani
Logična stran izpostavi vse, kar zaledje ali klic nazaj potrebuje: identiteto (DocumentPageNumber, SheetPageNumber, SheetName, lastniški ClassicWorksheet ali XlsxWorksheet), geometrijo (PageWidth, PageHeight, Scaleter vrednosti LeftMargin, RightMargin, TopMargin, BottomMargin, HeaderMarginin FooterMargin ), pravokotnik podatkov (DataFirstRow, DataLastRow, DataFirstCol, DataLastCol) z naslovi tiskanja (RepeatFirstRow, RepeatLastRow, RepeatFirstCol, RepeatLastCol), postavitev ozadja (BackgroundOffsetX, BackgroundOffsetY), izhod mrežnih črt (PrintGridlines, GridlineColor), šest besedil pasov glave in noge (LeftHeader, CenterHeader, RightHeader, LeftFooter, CenterFooter, RightFooter) ter ogrodje vrstic in stolpcev strani (RowCount z Rows in RowEdges, ColumnCount s Columns in ColumnEdges) skupaj s seznamom risb (DrawingCount in Drawings). ExpandHeaderFooter razreši formatne kode glave in noge glede na stran, ExpandHeaderFooterStyled pa dodatno poroča še vodilno velikost v točkah in barvo, da lahko poljubni slikarji posnemajo Excelov lastni izris glave
Izris ozadja delovnega lista
Pregledovalnik delovnega zvezka veljavna ozadja klasičnih in XLSX delovnih listov prikaže kot ponavljajoče se ploščice pod neizpolnjenimi celicami, izrecna in pogojna polnila celic pa ostanejo nad ozadjem
TXLSPaginationModel, TXLSSvgExport, TXLSPageImageExporter, TXLSPrintDocument, TXLSPDFExport, TXLSHTMLExport, TXLSXHtmlExportOptionsin TXLSWorkbookViewer izpostavljajo ExportSheetBackgroundImages; privzeto je False za izhod tiskanja, predogleda, metaformata, PDF, SVG, bitnih slik in HTML. Delovni listi nalogo shranijo s formatom slike TXLSSheetBackgroundFormat , dekodirani bajti pa potujejo kot TXLSSheetBackgroundResource , indeksiran z generacijo, DPI in barvnim načinom
Vklopljen izhod s paginacijo fazo ploščice pripne koordinatam delovnega lista čez meje strani in za sejo izrisa obdrži eno dekodirano sliko na kombinacijo delovnega lista, generacije vira, zaledja, DPI in barvnega načina; BackgroundDecodeCount za diagnostiko izpostavi skupno število dekodiranj, poškodovane naloge pa se preskočijo z diagnostiko delovnega zvezka. Aktivna seja TXLSRenderSession sama upravlja ta skupni predpomnilnik: AcquireBackground pridobi (ali enkrat dekodira) ploščičaste TXLSSheetBackgroundRenderData delovnega lista, DrawTiledBackground jih nariše čez izrezan predel strani, DecodeCount pa poroča, koliko nalog je bilo doslej dekodiranih
Politika prikaza objektov delovnega zvezka
ObjectDisplayMode izbere xlsodmShowAll, xlsodmShowPlaceholdersali xlsodmHideAll tako za klasične zvezke XLS kot za zvezke XLSX; pregledovalnik porabi vsa tri stanja in v načinu rezervnih mest uporablja poceni okvirje z vrsto, imenom, besedilom in nadomestnim besedilom
Izvozniki PDF, SVG, bitnih slik, fizičnega tiskanja in XLSX HTML obravnavajo način rezervnih mest privzeto kot izhod polnih objektov; nastavite ExportObjectPlaceholders na ustreznem izvozniku ali možnostih HTML, da zahtevate okvirje brez dekodiranja slik ali gradnje scene grafikona
xlsodmHideAll je zgodnejša globalna zapora, ki prepreči zbiranje risb, širjenje obsega zaradi objektov, zadetke miške in upodabljanje predstavnostnih datotek; ozadja delovnih listov, ikone pogojnega oblikovanja, slike v glavi ali noge, celice in izvozniku lastni filtri tiskanih objektov ostanejo neodvisni
Koledarsko ozaveščene datumske osi grafikonov
Grafikoni XLSX, katerih os kategorij uporablja xlsxAxisDate , vsako veljavno kategorijo preslikajo prek serijskega datumskega sistema zvezka 1900 ali 1904 in ohranijo dejansko razdaljo med redkimi datumi namesto enakomernih razmikov točk
BaseTimeUnit nadzira normalizacijo na dneve, mesece ali leta, MajorUnit, MinorUnit, MajorTimeUnitin MinorTimeUnit pa oznake pomikajo po koledarskih enotah; zato mesečni in letni intervali ostanejo poravnani kljub neenakim dolžinam mesecev in prestopnim letom
Ista omejena zbirka oznak osi oskrbi s koordinatami, oznakami, zamiki in zahtevanimi mrežnimi črtami izhod PDF, SVG, bitnih slik, predogleda, tiskanja in pregledovalnika na podlagi paginacije, izvoz XLSX HTML pa skupno koledarsko aritmetiko uporabi za svojo vgrajeno SVG-grafikon
Samostojni pisec PDF
TXLSPDFWriter ustvari dokumente PDF, ki ne izvirajo iz delovnega zvezka, na primer račune, vstopnice, nalepke in obrazce za prekrivanje; BeginDoc nastavi okvir strani s točnostjo točk, NewPage zaključi trenutno stran, SaveToStream ali SaveToFile pa dokument dokonča
Metode risanja uporabljajo točke PDF od spodnjega levega vogala in barve knjižnice v obliki $00BBGGRR ali $AABBGGRR ; na voljo so primitivi FillRectangle, StrokeRectangle, ClipRectangle, MeasureText, SaveGraphicsStatein RestoreGraphicsState za polnjene in obrisane pravokotnike, črte, elipse, slogovno besedilo z natančnim merjenjem širine, afini transformaciji, pravokotno izrezovanje ter izrecno shranjevanje ali obnovitev grafičnega stanja, PageWidth in PageHeight pa trenutni okvir strani povesta v točkah
Izvoz SVG
TXLSSvgExport ponuja sedem preobteženih metod SaveAsSVG za klasične in XLSX obsege, delovne liste, delovne zvezke in pripravljene logične strani ter izhod imenovanih objektov, kjer je podprt
UseWorksheetPageSetup, Orientationin Margin uporabljajo enake odločitve o postavitvi strani kot izhod PDF in predogled
TXLSSvgExport.PrintComments (vrsta TXLSPrintComments) izbere, kako se izpišejo pripombe celic pri izhodu SVG s paginacijo; pri xpcAtEndzadnja stran lista pod območje podatkov doda seznam pripomb (naslov celice, avtor in besedilo), xpcNone pa pripombe izpusti
ExportPages pošlje po en celovit dokument SVG na klic prek OnPage, število zapisanih strani poroča prek ExportedPageCountin kadar klic nazaj prekliče, ustavi pred generiranjem poznejših strani; IdPrefix ustvari deterministične imenske prostore dokumenta in strani za poti izrezovanja, filtre, vzorce in skupne vire
HyperlinkMode (vrsta TXLSSvgHyperlinkMode) z xshmSafe za vizualno vsebino doda izrezane prosojne zadetne regije; dovoljene zunanje sheme so HTTP, HTTPS, mail, FTP in relativne povezave, tarče active, local, UNC in z nadzornimi znaki pa se izpustijo; LinksInNewWindow doda zaščito noopener noreferrer , namigi na zaslonu pa postanejo naslovi SVG
Inkrementalni izhod PNG, JPEG in večstranski TIFF
TXLSPageImageFormat izbira izhod PNG ali JPEG, TXLSPageImageExporter pa ohranja eno sejo paginacije živo, medtem ko sproti sprošča vsako dokončano bitno sliko
| Session | Šest preobteženih metod BeginExport sprejema klasične ali XLSX obsege, delovne liste in delovne zvezke; ExportNext zapiše eno stran in EndExport sprosti sejo |
| Multipage TIFF | ExportAllAsTiff izbrane logične strani zapiše v tok ali datoteko kot en TIFF s stiskanjem LZW, hkrati pa ohrani semantiko napredka, preklica in atomarnega cilja |
| Page setup | UseWorksheetPageSetup, Orientation, Margin, DefaultRowHeight, PaperWidthOverridein PaperHeightOverride |
| Raster output | Scale, ImageFormatin JpegQuality, ExportObjectAsPNG pa en sam predmet risbe upodobi v lasten PNG |
| Compact ranges | ExportRange klasični ali XLSX obseg izriše kot eno tesno rastersko sliko brez papirja, robov, glav, nog, naslovov tiskanja ali prelomov strani |
| Canvas events | BeforeRenderPage teče po izpraznitvi ozadja, AfterRenderPage po risanju delovnega zvezka, a pred kodiranjem; sličice PNG, JPEG in TIFF si delijo isto pot dogodkov |
| State | Active, Aborted, TotalPageCount, PageCountin ExportedPageCount |
Označeni PDF in PDF/A
TXLSPDFExport.TagMode omogoča samodejno strukturo dokumenta, tabel, vrstic, celic glave, podatkovnih celic in informativnih slik z gostimi identifikatorji označene vsebine, lokalnimi za stran, natančnimi preslikavami drevesa nadrejenih, razponi združenih celic in ločevanjem artefaktov; vrstice naslovov tiskanja in vrstice glav tabel postanejo semantične celice glave, slike XLSX z nepraznim AltText postanejo samostojni elementi Figure z nadomestnim besedilom Unicode, slike brez nadomestnega besedila pa ostanejo dekorativni artefakti
Vsaka vidna pojavitev informativne slike prejme svoj element Figure in identifikator označene vsebine, tudi če enake slike delijo en XObject PDF; AltTextTitle ne nadomesti manjkajočega nadomestnega besedila, grafikoni ostanejo artefakti, ta osredotočena podpora strukturi pa ne trdi, da dosega polno skladnost PDF/UA
TXLSPDFExport.PDFAProfile izbira PDF/A-1, PDF/A-2 ali PDF/A-3 na ravni skladnosti a ali b; nezdružljivo šifriranje, pisave, priloge, prosojnost, podpisi in metapodatki se preverijo, preden se izhodni tok potrdi
TXLSPDFExport.ExportCommentsAsAnnotations postavlja besedilo avtorja in pripomb v Unicode na pravokotnike izvornih celic, medtem ko tradicionalni izhod pripomb na koncu ostaja neodvisno konfigurabilen
UsePDFA je stikalo združljivosti za PDF/A-1b, UseXRefStream pa izbira tokove navzkrižnih sklicev tam, kjer jih izbrani profil dovoljuje
Geometrija in izbira strani
Šest preobteženih metod CalculatePageCount sprejema klasične in XLSX obsege, delovne liste ali delovne zvezke brez gradnje objektov PDF
PaperWidth in PaperHeight preglasita dimenzije papirja v točkah, LastPage zapre interval izhoda, indeksiran od 1, Orientation (vrsta TXLSPDFOrientation) izbere pokončno ali ležeči izhod, HidePrintObjects (množica TXLSPDFHidePrintObject: xlsPdfHideHeaders, xlsPdfHideFooters) potlači izbrane pasove glave ali noge, PageLayout (vrsta TXLSPDFPageLayout) pa nastavi začetno razporeditev strani v pregledovalniku
Način strani in dejanje ob odprtju PDF
TXLSPDFExport.PageMode (vrsta TXLSPDFPageMode) z xlsPdfModeDefault, xlsPdfModeUseOutlines, xlsPdfModeUseThumbs, xlsPdfModeFullScreen, xlsPdfModeUseOCin xlsPdfModeUseAttachments
OpenAction (vrsta TXLSPDFOpenAction) z xlsPdfOpenNone, xlsPdfOpenPageali xlsPdfOpenOutlinesizbere začetno obnašanje pregledovalnika. Pri xlsPdfOpenPageje OpenActionPage ciljna stran, indeksirana od 1 (omejena na število strani), OpenActionZoom pa začetni faktor povečave, kjer 0 pusti privzeto povečavo oziroma prilagoditev pregledovalnika
Skupna prilagodljiva vektorska geometrija
XLSBuildEllipticArcCubics eliptični lok pretvori v kubične Bzierjeve segmente z rekurzivnim uveljavljanjem meje ploščatosti, ki jo izbere klicatelj; PDF, SVG in rasterski izris uporabljajo to skupno geometrijo, zato veliki ali močno ekscentrični loki dobijo več segmentov, preprosti lok pa za to ne plača davka
XLSDecodeVectorScene preveri glave EMF in WMF, poravnavo in velikosti zapisov, deklarirane vsote, točno postavitev EOF ter omejitve virov, ne da bi klical predvajanje metaformatov platforme; domači beli seznam predvaja sklade stanj konteksta naprave s shranjevanjem in obnavljanjem, preslikavo okna in pogleda skupaj s svetovnimi transformacijami, tabelo objektov peres, ščetk in razširjenih peres vključno z založnimi objekti, pravokotnike, elipse, verige črt, mnogokotnike, lomljene črte in Bzierjeve krivulje slogov črtkanja, oklepaje poti s polnilom, obrisom ter združenima obrisom-in-polnilom, zaobljene pravokotnike, loke, tetive, izseke in kotne loke prek natančne pretvorbe loka v Bzierjevo krivuljo, polnila in obrobe regij iz omejenih pravokotnikov RGNDATA, omejene besedilne teke s pisavami, barvami in poravnavo ter omejene slike stretch-DIB, ponovno kodirane kot PNG prek Canvasa in SVG; zavrne zapise escape, izrezovanje in zasebne zapise pa prepusti obstoječemu omejenemu povratnemu načinu
Obrisi PDF in klici nazaj za strani
Obrisi PDF živijo v zbirki Bookmarks (vrsta TXLSPDFBookmarks): Add in AddForSheet dodata vnosa, Delete enega odstrani, Count in Items pa drevo naštejeta. Vsak vnos TXLSPDFBookmark podpira nadrejene in podrejene vnose (Children), verige sorodnih vnosov, naslove Unicode, barve (Color), ciljno PageNumber , izvirni SheetName pri zavihkih delovnih listov ter zastavici krepko in ležeče (množica TXLSPDFBookmarkStyle: xlsPdfBookmarkBold, xlsPdfBookmarkItalic), plus razširjene ali strnjene potomce; samodejni zavihki delovnih listov uporabljajo isti model hierarhije, njihovo generacijo pa preklopi AutoSheetBookmarks toggles their generation
BeforeNewPage lahko prilagodi okvir vsake strani, BeforeGeneratePage in AfterGeneratePage pa vsebino ozadja ali prekrivnega sloja narišeta prek javnih pomočnikov strani AppendPageContent, FillPageRectangle, StrokePageRectanglein DrawPageText
Podpisi in priloge
TXLSPDFSignature konfigurira vidna ali nevidna polja podpisov, CertificationPolicy pa po želji ustvari certifcijski podpis DocMDP, ki dovoljuje nič sprememb, izpolnjevanje in podpisovanje obrazcev ali izpolnjevanje, podpisovanje in opombe; PDF/A-1 te funkcije PDF 1.5 ne dovoljuje in jo zavrne, preden se izhod potrdi
TXLSPDFCertificationPolicy z xlsPdfApprovalSignature, xlsPdfCertifyNoChanges, xlsPdfCertifyFormFillingAndSigningin xlsPdfCertifyFormFillingSigningAndAnnotations omogoča izrecno izbiro politike podpisa
Dogodek TXLSPDFSignDigestEvent prejme kontrolno vsoto in vrne podatke CMS, ustvarjene v gostitelju, tako da HotXLS nikoli ne potrebuje zasebnega ključa
TXLSPDFExport.Signature pritrdi konfiguracijo podpisa, profili PDF/A-3 pa lahko prek AddAttachment, ki uvrsti v čakalno vrsto TXLSPDFAttachment, vključijo preverjene povezane datoteke; podrobna preobremenitev sprejme prikazno ime Unicode, MIME tip, opis, čas spremembe, nalogo in vrednost TXLSPDFAttachmentRelationship Source, Data, Alternative, Supplement ali Unspecified, AttachmentCount poroča skupno število čakajočih prilog, AttachmentDuplicatePolicy (vrsta TXLSPDFAttachmentDuplicatePolicy) pa izbere, kako se obravnavajo enaka imena
TXLSPDFSignature.ImageData, ImageFormatin ImageFit (vrsta TXLSPDFSignatureImageFit: contain, cover ali stretch) v običajnem videzu Form namesti PNG, preden se obseg bajtov zamrzne; načini contain, cover in stretch si delijo predpomnilnik slik dokumenta, neveljavne slike pa odpovejo pred podpisom
Preobremenitev IXLSPDFAttachmentSource ostane lena do shranjevanja, vsak vir pokliče enkrat na shranjevanje in pred ustvaritvijo objekta EmbeddedFile na zvrnilnik odloži največ 256 MiB, da napaka ponudnika pusti transakcijo cilja nepremenjeno
Končna sestava objakte zaporedoma piše v cilj, namesto da bi gradila en sam niz celotnega dokumenta: izvozi brez podpisa tečejo naravnost v tokove samo za naprej, vsak EmbeddedFile se na svojo velikost v bajtih sklicuje posredno prek objekta /Length , izpisanega za nalogo, bajti ponudnika pa se iz zvrnilnika kopirajo v fiksnih svežnjih; izvozi s podpisom se sestavijo v omejen zvrnilnik dokumenta, ki prejme zakrpe ByteRange in vsebine podpisa, inkrementalni SHA-256 prek dveh zajetih obsegov ter en sam kopirni prehod naprej
Izhod PDF/A-3 vsako povezano datoteko zapiše hkrati v drevo imen EmbeddedFiles in v polje AF kataloga, z unikodnim UF Izhod PDF/A-3 vsako povezano datoteko zapiše tako v drevo imen EmbeddedFiles kot v polje AF kataloga, z imenom UF Unicode, ukanjenim imenom PDF MIME, AFRelationship, velikostjo v bajtih, neobveznim datumom spremembe in neobveznim opisom; PDF/A-1 in PDF/A-2 čakajoče priloge zavrneta pred potrditvijo izhoda
Metapodatki dokumenta
DocumentTitle, DocumentAuthor, DocumentSubject, DocumentKeywordsin DocumentFileName zapolnijo informacije PDF in slovarje metapodatkov
Povratno iskanje pisav
TXLSPDFExport.SetFontFallbackChain, AddFontFallbackin ClearFontFallbackChains konfigurirajo ravni povratnega iskanja po izvirni družini in slogu; LoadedFallbackFontCount izpostavi število predpomnjenih obrazov, FontFallbackSelectionCacheCount pa število predpomnjenih odločitev povratnega iskanja po izbiri — obe vrednosti služita diagnostiki
TXLSPDFExport.FontSize nastavi privzeto velikost besedila v točkah, privzeto 9
Izbira povratnega iskanja uporablja pokritost glifov in ohranja preslikave Unicode, dopolnilne skalarje, gruče grafemov, gruče oblikovanja in samostojne obraze TTC
OnGetFontDirectories lahko za zahtevano družino in slog vrne eno ali več imenikov pisav, ločenih z podpičji; sprejete imenike enkrat rekurzivno preišče, indeksira po notranjih metapodatkih družine in sloga ter predpomni za nadaljnje merjenje in risanje
Politika vgrajevanja pisav
TXLSPDFExport.FontEmbedding (vrsta TXLSPDFFontEmbedding) prek xlsPdfFontEmbedAuto, xlsPdfFontEmbedSubset, xlsPdfFontEmbedFullin xlsPdfFontEmbedNoneizbere samodejno vgradnjo, zahtevano podmnožico, celoten program pisave ali izhod samo s preslikavo; zahtevana podmnožica atomarno odpove, ko veljavne podmnožice ni mogoče ustvariti, obrazi TTC se pretvorijo v samostojne pisave, PDF/A pa zavrže izhod samo s preslikavo
OnFontEmbed se sproži enkrat na obraz Unicode, preden se razrešijo njegove metrike, razpredelnica znakov, oblikovanje in identifikatorji glifov; nastavitev Handled sprejme vrnjeni način po posamezni pisavi in neobvezne nadomestne bajte, če ostane neustaljena, pa se ohranita politika dokumenta in izvirni obraz
Samostojne pisave OpenType z obroči CFF se vgradijo prek FontFile3 s tokom OpenType in potomcem CIDFontType0 ; samodejni in polni način obdržita celoten program, zahtevno podmnoževanje CFF pa atomarno odpove, ker veljavne podmnožice ne more ohraniti
Vgrajene pisave s podatki OpenType GPOS ali starim kern uporabljajo pomike glifov glede na postavitev za preprosto in sestavljeno besedilo, zato merjenje, prelom, poravnava in izpisane lege glifov delijo enak rezultat kerninga
Napredek in preklic
TXLSPDFExport.OnProgress in OnProgressEx poročata o fazah začetka, strani in konca; Cancel zahteva preklic, Aborted pa poroča končno stanje brez potrditve delnega toka