Εισαγωγή RichEdit και σελιδοποίησης RTF

Η THotPDF.ImportRTF φορτώνει RTF μέσα στο Windows RichEdit, και η THotPDF.ImportRichEdit σελιδοποιεί ένα υπάρχον control σε σελίδες PDF

Λεπτομέρειες διεπαφής

Η σελιδοποίηση χρησιμοποιεί το EM_FORMATRANGE με ένα φραγμένο ορθογώνιο σελίδας, και εκπέμπει κάθε σελίδα μέσω ενός enhanced metafile

Το κείμενο, οι αλλαγές γραμματοσειράς, η μορφοποίηση παραγράφων, οι διανυσματικές γραμμές (rules), και άλλες λειτουργίες GDI παραμένουν τελεστές PDF κειμένου ή vector, όποτε τα pipelines RichEdit και EMF τα εκθέτουν με αυτόν τον τρόπο

Τα δεδομένα pict του RTF και οι στατικές παρουσιάσεις OLE που υποστηρίζει το RichEdit μεταφέρονται από το ίδιο μονοπάτι EMF, οπότε δεν απαιτείται rasterisation ολόκληρης της σελίδας

Λεπτομέρειες διεπαφής

Λεπτομέρειες διεπαφής

Το THPDFRTFImportOptions.Default περιορίζει την είσοδο σε 16 MiB, το κείμενο σε 4.000.000 χαρακτήρες, την έξοδο σε 1.000 σελίδες, και τα συσσωρευμένα δεδομένα EMF σε 256 MiB

Το ενσωματωμένο OLE είναι απενεργοποιημένο εξ ορισμού και απαιτεί AllowOLE=True· η ενεργοποίησή του θα πρέπει να περιορίζεται σε έμπιστα RTF, επειδή το Windows RichEdit κατέχει την εγκατεστημένη επιφάνεια handler OLE

Το CancellationToken ελέγχεται μεταξύ σελίδων, και επιστρέφει risCancelled χωρίς να κάνει rendering επιπλέον σελίδων

Λεπτομέρειες διεπαφής

Το THPDFRTFImportStatistics αναφέρει τα bytes εισόδου, το εύρος χαρακτήρων, τις σελίδες που έγιναν rendering και προστέθηκαν, τα συσσωρευμένα bytes metafile, την παρουσία OLE, την περικοπή (truncation), και ένα σταθερό THPDFRTFImportStatus

Η εξάντληση budget, η μη έγκυρη γεωμετρία σελίδας, οι κλήσεις από λάθος thread, η σελιδοποίηση χωρίς πρόοδο, και οι αποτυχίες rendering επιστρέφουν False με μια συγκεκριμένη κατάσταση

Λεπτομέρειες διεπαφής

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

Δείτε επίσης: THotPDF.ImportRTF, THotPDF.ImportRichEdit, Εισαγωγή SVG Form XObject