Import de pagination RichEdit et RTF

THotPDF.ImportRTF charge du RTF dans Windows RichEdit et THotPDF.ImportRichEdit pagine un contrôle existant en pages PDF

Modèle de rendu

La pagination utilise EM_FORMATRANGE avec un rectangle de page borné et émet chaque page via un métafichier amélioré

Le texte, les changements de polices, la mise en forme de paragraphes, les règles vectorielles et autres opérations GDI restent des opérateurs PDF de texte ou de vecteur lorsque les pipelines RichEdit et EMF les exposent ainsi

Les données pict RTF et les présentations OLE statiques prises en charge par RichEdit sont portées par le même chemin EMF, de sorte qu'aucune rasterisation de page complète n'est requise

Threading et cycle de vie

Sécurité et budgets

THPDFRTFImportOptions.Default limite l'entrée à 16 Mio, le texte à 4 000 000 caractères, la sortie à 1 000 pages et les données EMF cumulées à 256 Mio

L'OLE imbriqué est désactivé par défaut et exige AllowOLE=True ; son activation devrait être limitée au RTF de confiance car Windows RichEdit possède la surface de gestionnaires OLE installée

CancellationToken est vérifié entre les pages et retourne risCancelled sans rendre de pages supplémentaires

Reporting de résultats

THPDFRTFImportStatistics signale les octets d'entrée, la plage de caractères, les pages rendues et ajoutées, les octets de métafichier cumulés, la présence d'OLE, la troncature et un THPDFRTFImportStatus stable

L'épuisement du budget, la géométrie de page invalide, les appels sur le mauvais thread, la pagination sans progression et les échecs de rendu retournent False avec un statut spécifique

Exemple

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

Voir aussi : THotPDF.ImportRTF, THotPDF.ImportRichEdit, Import SVG Form XObject