RichEdit és RTF tördelés-importálás

A THotPDF.ImportRTF az RTF-et Windows RichEdit vezérlőbe tölti, a THotPDF.ImportRichEdit pedig egy meglévő vezérlőt tördeli PDF-oldalakra

Renderelési modell

A tördelés EM_FORMATRANGE üzenetet használ korlátos oldaltéglalappal, és minden oldalt továbbfejlesztett metafájlon keresztül bocsát ki

A szöveg, a betűváltozások, a bekezdésformázás, a vektoros vonalak és más GDI-műveletek PDF-szöveg- vagy vektoroperátorok maradnak, amikor a RichEdit és az EMF-csővezetékek így teszik elérhetővé őket

Az RTF pict adatai és a RichEdit által támogatott statikus OLE-megjelenítések ugyanazon az EMF-útvonalon haladnak, így nincs szükség teljes oldalas raszterizálásra

Szálkezelés életciklus

Biztonság és keretek

A THPDFRTFImportOptions.Default a bemenetet 16 MiB-re, a szöveget 4 000 000 karakterre, a kimenetet 1 000 oldalra és a felhalmozott EMF-adatokat 256 MiB-re korlátozza

A beágyazott OLE alapértelmezés szerint le van tiltva, és AllowOLE=True értéket igényel; az engedélyezését megbízható RTF-re kell korlátozni, mert a Windows RichEdit birtokolja a telepített OLE-kezelő felületet

A CancellationToken értéket az oldalak között ellenőrzik, és risCancelled értéket ad vissza további oldalak renderelése nélkül

Eredmény-jelentés

A THPDFRTFImportStatistics jelenti a bemeneti bájtokat, a karaktertartományt, a renderelt és hozzáadott oldalakat, a felhalmozott metafájl-bájtokat, az OLE-jelenlétet, a csonkolást és egy stabil THPDFRTFImportStatus értéket

A keret-kimerülés, az érvénytelen oldalgeometria, a rossz szálú hívások, a haladás nélküli tördelés a renderelési hibák False értéket adnak vissza egyedi állapottal

Példa

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

Lásd még: THotPDF.ImportRTF, THotPDF.ImportRichEdit, SVG Form XObject importálás