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
- Mindkét API-t csak a folyamat GUI-főszálán hívja
- Hívja a
BeginDocmetódust az importálás előtt, hogy aktuális oldal létezzen - A
UseCurrentPageszabályozza, hogy az első importált oldal újrahasználja-e az aktuális oldalt vagy új oldalt fűz hozzá - Az RTF-folyam pozíciója korlátos olvasás után visszaáll
- A RichEdit formátum-gyorsítótár sikeres befejezés, megszakítás vagy hiba után felszabadul
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