RichEdit- en RTF-paginatie-import

THotPDF.ImportRTF laadt RTF in Windows RichEdit en THotPDF.ImportRichEdit pagineert een bestaande besturing naar PDF-pagina's

Rendermodel

Paginatie gebruikt EM_FORMATRANGE met een begrensd paginarechthoek en verzendt elke pagina via een uitgebreid metabestand

Tekst, lettertypewijzigingen, alineaopmaak, vectorlijnen en andere GDI-bewerkingen blijven PDF-tekst- of vectoroperatoren wanneer de RichEdit- en EMF-pijplijnen ze zo blootleggen

RTF-pict-gegevens en door RichEdit ondersteunde statische OLE-weergaven worden via hetzelfde EMF-pad vervoerd, dus er is geen rasterisatie van hele pagina's vereist

Threading en levenscyclus

Beveiliging en budgetten

THPDFRTFImportOptions.Default beperkt invoer tot 16 MiB, tekst tot 4.000.000 tekens, uitvoer tot 1.000 pagina's en geaccumuleerde EMF-gegevens tot 256 MiB

Ingebouwde OLE is standaard uitgeschakeld en vereist AllowOLE=True; het inschakelen ervan moet worden beperkt tot vertrouwde RTF omdat Windows RichEdit het geïnstalleerde OLE-handlersoppervlak bezit

CancellationToken wordt tussen pagina's gecontroleerd en retourneert risCancelled zonder extra pagina's te renderen

Resultaatrapportage

THPDFRTFImportStatistics rapporteert invoerbytes, karakterbereik, gerenderde en toegevoegde pagina's, geaccumuleerde metabestandbytes, OLE-aanwezigheid, afkapping en een stabiele THPDFRTFImportStatus

Budgetuitputting, ongeldige paginageometrie, aanroepen vanaf de verkeerde thread, paginatie zonder voortgang en renderfouten retourneren False met een specifieke status

Voorbeeld

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)]
  );

Zie ook: THotPDF.ImportRTF, THotPDF.ImportRichEdit, SVG Form XObject-import