RichEdit- och RTF-paginering

THotPDF.ImportRTF laddar RTF in i Windows RichEdit och THotPDF.ImportRichEdit pagenerar en befintlig kontroll till PDF-sidor

Renderingsmodell

Paginering använder EM_FORMATRANGE med en avgränsad sidrektangel och avger varje sida genom ett utökat metafil

Text, typsnittsbyten, styckeformatering, vektorlinjer och andra GDI-operationer förblir PDF-text- eller vektoroperatorer när RichEdit- och EMF-rörledningarna exponerar dem på det sättet

RTF-pict-data och RichEdit-stödda statiska OLE-presentationer bärs av samma EMF-sökväg, så ingen helsidesrastrering krävs

Trådning och livscykel

Säkerhet och budgetar

THPDFRTFImportOptions.Default begränsar indata till 16 MiB, text till 4 000 000 tecken, utdata till 1 000 sidor och ackumulerad EMF-data till 256 MiB

Inbäddad OLE är inaktiverad som standard och kräver AllowOLE=True; att aktivera den bör begränsas till betrott RTF eftersom Windows RichEdit äger den installerade OLE-hanterarytan

CancellationToken kontrolleras mellan sidor och returnerar risCancelled utan att rendera ytterligare sidor

Resultatrapportering

THPDFRTFImportStatistics rapporterar indatabyten, teckenintervall, renderade och tillagda sidor, ackumulerade metafilbytes, OLE-förekomst, trunkering och en stabil THPDFRTFImportStatus

Budgetuttömning, ogiltig sidgeometri, fel-tråd-anrop, paginering utan framsteg och renderingsfel returnerar False med en specifik status

Exempel

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 även: THotPDF.ImportRTF, THotPDF.ImportRichEdit, SVG Form XObject-import