RichEdit- og RTF-paginering-import

THotPDF.ImportRTF indlæser RTF i Windows RichEdit, og THotPDF.ImportRichEdit paginerer et eksisterende kontrolelement til PDF-sider

Gengivelsesmodel

Paginering bruger EM_FORMATRANGE med en afgrænset siderektangel og udsender hver side gennem et forbedret metafile

Tekst, skrifttypeændringer, afsnitsformatering, vektorlinjer og andre GDI-operationer forbliver PDF-tekst- eller vektoroperatorer, når RichEdit- og EMF-pipelinerne eksponerer dem på den måde

RTF-pict-data og RichEdit-understøttede statiske OLE-præsentationer føres gennem den samme EMF-sti, så der ikke kræves helsidens-rasterisering

Trådning og livscyklus

Sikkerhed og budgetter

THPDFRTFImportOptions.Default begrænser input til 16 MiB, tekst til 4 000 000 tegn, output til 1 000 sider og akkumulerede EMF-data til 256 MiB

Indlejret OLE er deaktiveret som standard og kræver AllowOLE=True; aktivering bør begrænses til betroet RTF, fordi Windows RichEdit ejer den installerede OLE-håndteringsflade

CancellationToken kontrolleres mellem sider og returnerer risCancelled uden at gengive yderligere sider

Resultatrapportering

THPDFRTFImportStatistics rapporterer inputbyte, tegnområde, gengivne og tilføjede sider, akkumulerede metafile-byte, OLE-tilstedeværelse, afkortning og en stabil THPDFRTFImportStatus

Budgetudmattelse, ugyldig sidegeometri, kald på forkert tråd, paginering uden fremskridt og gengivelsesfejl returnerer False med en specifik status

Eksempel

Options := THPDFRTFImportOptions.Default;
Options.PageWidth := 612;
Options.PageHeight := 792;
Options.MarginLeft := 54;
Options.MarginRight := 54;

Document.BeginDoc;
RTFStream.Position := 0;
if not Document.ImportRTF(RTFStream, Options, Statistics) then
  raise Exception.CreateFmt(
    'RTF import failed with status %d',
    [Ord(Statistics.Status)]
  );

Se også: THotPDF.ImportRTF, THotPDF.ImportRichEdit, SVG Form XObject Import