Uvoz paginacije RichEdit i RTF

THotPDF.ImportRTF učitava RTF u Windows RichEdit, a THotPDF.ImportRichEdit paginira postojeću kontrolu u PDF stranice

Model renderovanja

Paginacija koristi EM_FORMATRANGE sa ograničenim pravougaonikom stranice i emituje svaku stranicu kroz poboljšani metafajl

Tekst, promene fontova, formatiranje pasusa, vektorske linije i druge GDI operacije ostaju PDF tekstualni ili vektorski operatori kad god ih RichEdit i EMF cevovodi tako izlažu

RTF pict podaci i statičke OLE prezentacije koje podržava RichEdit prenose se istom EMF putanjom, tako da nije potrebna rasterizacija cele stranice

Niti i životni ciklus

Bezbednost i budžeti

THPDFRTFImportOptions.Default ograničava ulaz na 16 MiB, tekst na 4 000 000 znakova, izlaz na 1 000 stranica i akumulirane EMF podatke na 256 MiB

Ugrađeni OLE je podrazumevano onemogućen i zahteva AllowOLE=True; njegovo omogućavanje treba ograničiti na pouzdani RTF jer Windows RichEdit poseduje instaliranu površinu OLE rukovalaca

CancellationToken se proverava između stranica i vraća risCancelled bez renderovanja dodatnih stranica

Izveštavanje o rezultatima

THPDFRTFImportStatistics prijavljuje ulazne bajtove, opseg znakova, renderovane i dodate stranice, akumulirane bajtove metafajla, prisustvo OLE-a, skraćivanje i stabilni THPDFRTFImportStatus

Iscrpljenost budžeta, nevažeća geometrija stranice, pozivi sa pogrešne niti, paginacija bez napretka i neuspesi renderovanja vraćaju False sa specifičnim statusom

Primer

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

Pogledajte i: THotPDF.ImportRTF, THotPDF.ImportRichEdit, Uvoz SVG Form XObject-a