Layout con flusso vincolato
HotPDF può collocare ogni pagina completata in una memoria con supporto file, applicare vincoli di interruzione di pagina dei paragrafi, esporre diagnostica di layout limitata, contrassegnare paragrafi semantici e artefatti di impaginazione e risolvere la direzione base del paragrafo prima di emettere testo a direzione mista
Scrittura immediata delle pagine
Impostare ImmediateFlushLayout prima di BeginDoc per i report il cui numero di pagine non è noto in anticipo
Quando una pagina viene chiusa, il suo flusso di contenuto finale compresso o non compresso passa dalla memoria a un flusso di file temporaneo di proprietà mentre l'oggetto PDF rimane disponibile per la normale finalizzazione dei riferimenti incrociati e delle risorse
ImmediateFlushedPageCount e ImmediateFlushedBytes segnalano la quantità di contenuto collocato e i file temporanei vengono eliminati al rilascio dei flussi proprietari
Impaginazione dei paragrafi
ParagraphIndex := PDF.CreateParagraph(0, jtLeft, 36, 36, 36, 36);
PDF.ConfigureParagraphPagination(ParagraphIndex, True, 2, 2);
PDF.ConfigureParagraphDirection(ParagraphIndex, pdAuto);
PDF.BeginParagraph(ParagraphIndex);
PDF.CurrentParagraph.ShowUnicodeText(BodyText);
PDF.EndParagraph;
KeepWithNextsposta un paragrafo quando consumerebbe l'ultima riga che dovrebbe rimanere per il contenuto seguenteMinOrphanLinesimpedisce che rimangano troppo poche righe iniziali in fondo a una paginaMinWidowLinesanticipa un'interruzione quando rimarrebbero troppo poche righe finali nella pagina successiva- La continuazione automatica preserva la larghezza, l'altezza, il font, i margini e le impostazioni del paragrafo della pagina di origine
- Quando
ParaAutoAddPageè false, l'overflow si ferma nella pagina corrente e produce una diagnosticaldkOverflow
Diagnostica di layout
THPDFLayoutDiagnostic registra il THPDFLayoutDiagnosticKind, gli indici delle pagine di origine e correlate, il rettangolo interessato, il numero di righe e un motivo in inglese per ogni decisione conservata
THPDFLayoutDiagnosticArray viene restituito da GetLayoutDiagnostics, mentre GetLayoutDiagnostic supporta l'accesso indicizzato senza allocare una copia
LayoutDiagnosticLimit limita i record conservati e LayoutDiagnosticDroppedCount segnala le decisioni scartate dopo quel limite
ldkAutomaticPageBreaksegnala una continuazione ordinarialdkKeepWithNext,ldkOrphanControleldkWidowControlidentificano il vincolo che ha spostato un'interruzioneldkOverflowidentifica il contenuto fermato dalla disattivazione dell'impaginazione automaticaldkImmediateFlushidentifica una pagina chiusa spostata nella memoria con supporto file
Direzione del paragrafo
THPDFParagraphDirection fornisce pdAuto, pdLeftToRight e pdRightToLeft
DetectParagraphDirection applica la risoluzione del primo carattere forte tra gli script RTL del piano BMP e di quelli supplementari, così che i prefissi neutri e le sequenze direzionali secondarie non scelgano la direzione base sbagliata
Utilizzare ConfigureParagraphDirection per un'impostazione persistente del paragrafo o la proprietà THPDFPara.Direction per il paragrafo attivo
Semantica dei paragrafi PDF/UA
Root := PDF.AddStructureElement('Document', nil);
Paragraph := PDF.BeginTaggedParagraph(Root, 'en-US', 'Accessible text');
PDF.CurrentPage.TextOut(36, 72, 0, WideString('Accessible text'));
PDF.EndTaggedParagraph;
PDF.BeginPaginationArtifact(pasHeader);
PDF.CurrentPage.TextOut(36, 20, 0, WideString('Running header'));
PDF.EndPaginationArtifact;
BeginTaggedParagraph emette una sequenza di marked-content /P standard con un MCID allocato, il cablaggio dell'albero padre della pagina e i valori opzionali /Lang e /ActualText
THPDFPaginationArtifactSubtype fornisce pasHeader, pasFooter, pasWatermark e pasPageNumber, emessi come contenuto /Artifact con /Type /Pagination e il sottotipo standard corrispondente