| Tipo | Valori o scopo |
|---|---|
EPdfLayoutError | Eccezione sollevata per input di layout non validi, limiti superati e struttura semantica incoerente |
TPdfLayoutAlignment | plaLeft, plaCenter, plaRight |
TPdfLayoutCommandKind | plcText, plcRule, plcImage, plcPageXObject, plcCachedNode, plcLink, plcRectangle |
TPdfLayoutItemKind | pliText, pliSpacer, pliRule, pliImage, pliPageXObject, pliPageBreak, pliCachedNode, pliLink, pliSemanticNode, pliTable |
TPdfLayoutSemanticRole | plsrArtifact, plsrParagraph, plsrHeading1, plsrHeading2, plsrHeading3, plsrHeading4, plsrHeading5, plsrHeading6, plsrList, plsrListItem, plsrListLabel, plsrListBody, plsrTable, plsrTableRow, plsrTableHeader, plsrTableData, plsrFigure, plsrCaption, plsrLink, plsrSection, plsrDivision |
TPdfLayoutTableScope | pltsNone, pltsRow, pltsColumn, pltsBoth |
TPdfLayoutListNumbering | plnNone, plnDisc, plnCircle, plnSquare, plnDecimal, plnUpperRoman, plnLowerRoman, plnUpperAlpha, plnLowerAlpha |
TPdfLayoutGridTrackKind | plgtkFixed, plgtkFraction, plgtkAuto |
TPdfMarkupFormat | pmfMarkdown, pmfHtml |
| Tipo | Membri pubblici |
|---|---|
TPdfLayoutSemantics | Role, ParentID, ElementID, AlternateText, ActualText, Language, HeaderIDs, TableScope, ColumnSpan, RowSpan, ListNumbering, Artifact, Paragraph, Figure |
TPdfLayoutTextStyle | FontName, FontSize, Color, Alpha, LineHeight, Alignment, KeepTogether, BreakLongWords, SpaceBefore, SpaceAfter, Default |
TPdfLayoutConstraints | KeepTogether, KeepWithNext, PageBreakBefore, PageBreakAfter, OrphanLines, WidowLines, Default |
TPdfLayoutPageSettings | Width, Height, MarginLeft, MarginTop, MarginRight, MarginBottom, HeaderHeight, FooterHeight, A4, Letter |
TPdfLayoutRect | Left, Top, Width, Height |
TPdfLayoutGridTrack | Kind, Value, Minimum, Maximum, MeasuredContent |
TPdfLayoutGridTracks | Array dinamico di TPdfLayoutGridTrack |
TPdfLayoutGridSizes | Array dinamico di dimensioni di traccia risolte |
TPdfLayoutTableOptions | CellPadding, BorderWidth, BorderColor, BorderAlpha, RepeatHeaderRows, AllowRowSpanContinuation, MaxContinuationRegions, ContinuationBefore, ContinuationAfter, ContinuationStyle, Default |
TPdfLayoutTableTextRun | Text, Style |
TPdfLayoutTableTextRuns | Array dinamico di TPdfLayoutTableTextRun |
TPdfMarkupOptions | BaseStyle, HeadingScale, MaxInputCharacters, MaxNodes, Default |
TPdfLayoutSemanticElement | Semantics, ParentElementIndex |
TPdfLayoutSemanticElements | Array dinamico di TPdfLayoutSemanticElement |
TPdfLayoutCommand | Kind, PageNumber, Bounds, Text, FontName, FontSize, Color, Alpha, Alignment, Thickness, FileName, Uri, Source, SourcePageIndex, SemanticElementIndex, MarkedContentID, AnnotationIndex |
TPdfLayoutCommands | Array dinamico di TPdfLayoutCommand |
TPdfLayoutPlan | PageSettings, PageCount, Commands, SemanticElements, TextLineCount, RuleCount, RectangleCount, ImageCount, PageXObjectCount, CachedNodeCount, LinkCount, TaggedContentCount, ArtifactCount, MeasuredTextCount, TotalPageReferenceCount, ReservedPageDigits, CacheHitCount, CacheMissCount, ReusedXObjectCount, ColumnCount, ColumnGap |
| Tipo | Membri pubblici |
|---|---|
TPdfLayoutMeasurer | MeasureTextWidth, CacheIdentity |
TPdfLayoutItem | Kind |
TPdfLayoutTableCell | Text, Uri, Style, AddTextRun, TextRuns, SetImage, ColumnSpan, RowSpan, Header, ElementID, HeaderIDs, Scope |
TPdfLayoutTableRow | AddCell, Cells, Header, AllowSplit, MinimumHeight, KeepWithPrevious |
TPdfLayoutTable | Create, Destroy, AddRow, AddSubtotalRow, SetCaption, Columns, Rows, Options, Caption, CaptionStyle, ElementID, ParentID |
TPdfLayoutPagedPlan | Create, Destroy, ClearPageCache, MaterializePage, Reset, Summary, CommandCount, StorageByteCount, SourceCount, Completed, i budget MaxCommandCount, MaxStorageBytes, MaxPageCommands, MaxSourceCount e MaxCachedPages e le statistiche di cache CachedPageCount, CacheHitCount, CacheMissCount e PeakCachedPageCount |
TPdfLayoutDocument | Create, Destroy, Clear, AddText, AddSpacer, AddRule, AddImage, AddPageXObject, AddCachedNode, AddLink, AddSemanticNode, SetLastItemSemantics, SetLastItemConstraints, AddTable, AddPageBreak, LoadMarkup, InvalidateCache, BuildPlan, BuildPagedPlan, PageSettings, HeaderText, FooterText, HeaderStyle, FooterStyle, ReservedPageDigits, ColumnCount, ColumnGap, Items |
TPdfLayoutCachedNode | Create, Destroy, Invalidate, BeginEmission, EndEmission, Content, Width, Height, Built |
Chiamare SetLastItemConstraints dopo aver aggiunto qualsiasi elemento di flusso visibile per tenerlo unito, mantenerlo con l'inizio dell'elemento successivo o forzare un'interruzione di pagina fisica prima o dopo di esso
OrphanLines è il numero minimo di righe di paragrafo trattenute in fondo a una regione e WidowLines è il minimo collocato in cima alla regione successiva; entrambi hanno come predefitto uno per preservare la paginazione esistente
I vincoli si applicano allo stesso modo agli elementi di ruolo paragrafo, collegamento, elenco, figura e tabella, mentre i contenitori solo semantici non hanno geometria e quindi rifiutano i vincoli di paginazione
Un elemento pliTable accetta solo PageBreakBefore e PageBreakAfter; la suddivisione delle righe e la trattenuta dell'inizio della tabella sono controllate dal modello di tabella
Il planner mette in cache le righe andate a capo durante una costruzione, così la predizione keep-with-next e l'emissione finale dei comandi non misurano lo stesso testo due volte
Creare TPdfLayoutPagedPlan su uno TStream dedicato seekable e ridimensionabile, quindi chiamare BuildPagedPlan o passarlo a TPdf.GeneratePagedLayout
Il planner serializza i comandi immediatamente, rilascia ogni risultato di testo andato a capo completato e lascia Plan.Commands vuoto conservando le impostazioni di pagina, gli elementi semantici, i conteggi e i totali stabili di pagina nel sommario
I comandi del corpo e i successivi comandi di testata o piè di pagina sono indicizzati come segmenti di pagina collegati, così MaterializePage ripristina la pagina completa senza scansionare i comandi delle altre pagine
MaxCachedPages limita solo gli array di pagina trattenuti dal piano; i chiamanti che conservano gli array restituiti ne estendono la durata, e PDFium mantiene le pagine autore native finché il documento di destinazione non viene salvato o chiuso
Il formato di archiviazione è uno stato privato di sessione anziché un formato di file portabile, lo stream non deve essere condiviso o modificato esternamente e gli oggetti sorgente referenziati dai page XObject o dai nodi in cache devono sopravvivere al piano paginato
Usare TPdfRandomAccessStore quando i comandi devono restare in memoria fino a una soglia selezionata e poi riversarsi in uno storage temporaneo eliminato alla chiusura
Creare TPdfLayoutTable con tracce di griglia fisse, frazionarie o dimensionate sul contenuto, aggiungere righe e celle, quindi chiamare AddTable; il documento memorizza un'istantanea di sua proprietà, così che successive mutazioni del chiamante non possano invalidare una cache di piano esistente
Le righe di intestazione devono essere contigue all'inizio della tabella e si ripetono dopo una transizione di pagina o di colonna quando RepeatHeaderRows è true; gli span delle righe di intestazione non possono estendersi nelle righe del corpo
Una riga del corpo può dividersi se AllowSplit è true; per impostazione predefinita i gruppi transitivi con celle estese su più righe si spostano come unità atomiche e le celle di una normale riga divisa condividono fascia di linee, padding e geometria dei bordi
Impostare AllowRowSpanContinuation a True per continuare un gruppo con celle estese su più righe tra regioni di pagina o colonna; il planner distribuisce l'altezza aggiuntiva sulle righe e sceglie tagli che non attraversano linee di testo o immagini
AllowSplit=False resta un vincolo di riga atomica; vincoli incompatibili o blocchi atomici che non entrano in una regione vuota sollevano EPdfLayoutError anziché tagliare o ripetere contenuto
Le didascalie restano con il blocco di intestazione iniziale e l'inizio minimo del primo gruppo del corpo; le intestazioni ripetute riutilizzano gli stessi elementi originali
Il planner emette un elemento Table, una Caption facoltativa, figli TR e celle TH o TD indipendentemente dal numero di pagine; i comandi di intestazione ripetuti riusano gli indici semantici originali e le celle TD ricevono automaticamente ID di intestazione sovrapposti, a meno che non vengano forniti ID validi espliciti
I bordi delle tabelle sono comandi artifact plcRectangle renderizzati tramite oggetti path nativi di PDFium, mentre il testo di didascalie e celle resta contenuto taggato
AddTextRun aggiunge testo inline dopo il Text originale della cella; ogni run ha font, dimensione, colore, alpha, altezza di riga e politica di divisione delle parole lunghe propri
Il testo misto va a capo in base alle larghezze misurate, mantiene unite le coppie surrogate UTF-16 quando divide parole lunghe ed emette oggetti di testo nativi separati su una baseline condivisa; l'allineamento orizzontale deriva dallo Style base della cella
Spaziatura dei paragrafi e flag keep-together dei run non introducono ulteriori blocchi di paragrafo; usare righe separate o elementi di layout ordinari se servono questi vincoli
SetImage configura un'immagine da file per cella, sopra il testo al padding sinistro; un'altra chiamata la sostituisce
Fornire un'altezza positiva esplicita e una larghezza entro lo spazio interno della cella; zero usa tutta la larghezza interna e il chiamante controlla il rapporto d'aspetto tramite le dimensioni fornite
L'immagine è indivisibile nella continuazione ed è emessa una sola volta nella posizione originale; il file deve restare disponibile fino alla generazione e file mancanti o immagini non supportate causano rollback delle pagine aggiunte
È richiesta una descrizione alternativa non vuota; l'immagine diventa un figlio Figure del TH o TD originale e tutti i frammenti di testo restano associati alla cella
Tra pagine, il TH o TD originale riceve i riferimenti al marked content continuato e mantiene RowSpan, ColumnSpan e associazioni con le intestazioni; non viene creata una cella logica duplicata
AddSubtotalRow crea una riga atomica del corpo usando etichetta, valore formattato e stile del chiamante; con più colonne l'etichetta occupa tutte tranne quella finale del valore
L'helper imposta KeepWithPrevious=True affinché un subtotale non diventi la prima riga isolata di una continuazione; i valori sono forniti dal chiamante e non viene eseguita alcuna aggregazione numerica
ContinuationAfter appare alla fine di una regione che continua e ContinuationBefore dopo eventuali intestazioni ripetute nella regione successiva
Entrambe le etichette sono vuote per impostazione predefinita, usano ContinuationStyle, devono stare su una riga e riservano la propria altezza; la prima regione non ha etichetta precedente e l'ultima non ha quella successiva
Etichette e bordi sono artifact e non cambiano la gerarchia semantica della tabella; placeholder di pagina come {page} e {pages} usano il normale resolver di testo del layout
procedure TPdfLayoutTableCell.AddTextRun(const Text: WideString; const Style: TPdfLayoutTextStyle); procedure TPdfLayoutTableCell.SetImage(const FileName: string; Width, Height: Single; const AlternateText: WideString); function TPdfLayoutTable.AddSubtotalRow(const LabelText, ValueText: WideString; const Style: TPdfLayoutTextStyle): TPdfLayoutTableRow;
Usare TPdfLayoutTableOptions.Default prima di modificare le opzioni; AllowRowSpanContinuation è False per impostazione predefinita e MaxContinuationRegions vale 10,000 regioni di pagina o colonna, con massimo configurabile di 100,000
Le tabelle mantengono i limiti di 256 colonne, 100,000 righe e 100,000 elementi semantici; il testo totale delle celle è limitato a 8,000,000 unità di codice UTF-16
Una cella di testo misto accetta al massimo 1,024 run aggiunti, 1,000,000 unità di codice UTF-16, 100,000 righe e 100,000 frammenti; un carattere o una parola con divisione delle parole lunghe disabilitata che supera lo spazio disponibile viene rifiutato
Un gruppo di righe continuato è limitato a 10,000 celle; limiti delle regioni e ricerche di taglio limitate evitano paginazione illimitata e le immagini devono entrare nella regione del corpo rimasta dopo intestazioni, etichette e padding
Snapshot della tabella di proprietà del sistema e cache del piano includono stili dei run, dimensioni delle immagini, testo alternativo, mantenimento dei subtotali e impostazioni di continuazione; modifiche successive alla tabella del chiamante non cambiano lo snapshot
| Routine | Descrizione |
|---|---|
ResolveLayoutText | Espande i segnaposto dei numeri di pagina usando la larghezza di cifre riservata |
PdfLayoutSemanticRoleName | Restituisce il nome di struttura tagged-PDF per un ruolo semantico |
BuildTaggedLayoutPdf | Applica un piano di layout completato e una struttura tagged ai byte di un PDF sorgente |
ResolvePdfLayoutGridTracks | Risolve le tracce di griglia fisse, frazionarie e dimensionate sul contenuto entro la larghezza disponibile |