PDFium Delphi Component Docs

Επιθεώρηση και επιδιόρθωση γραφήματος αντικειμένων

Στοιχείο: TPdf  ·  Μονάδες: PDFium, FPdfCompress
Εξάγει οριοθετημένη τυποποιημένη προβολή ενεργών έμμεσων αντικειμένων και εφαρμόζει περιορισμένες επιδιορθώσεις λεξικών συναλλακτικά

Syntax

function ExportObjectGraph(Stream: TStream; const Options: TPdfObjectGraphInspectOptions; out Report: TPdfObjectGraphReport): Boolean;

function SaveAsObjectGraphPatched(Stream: TStream; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsObjectGraphPatched(const FileName: string; const Operations: TPdfObjectPatchOperations; out Report: TPdfObjectGraphReport; AllowSignedDocument: Boolean = False): Boolean;

Typed JSON format

Το ριζικό αντικείμενο, το πλήθος ενεργών αντικειμένων, τα εξαγόμενα αντικείμενα και η κατάσταση περικοπής εκπέμπονται στο φάκελο pdf-object-graph-v1

Κάθε τιμή αναγνωρίζεται ως λεξικό, πίνακας, literal ή δεκαεξαδική συμβολοσειρά, όνομα, αναφορά, null, Boolean, ακέραιος, πραγματικός ή λέξη-κλειδί

Ροές εκθέτουν το κωδικοποιημένο πλήθος byte και, όταν ενεργοποιείται, SHA-256 digest ενώ το payload τους παραμένει παραλειπόμενο

Άμεσα αντικείμενα και μέλη από δοχεία ObjStm χρησιμοποιούν την ίδια αναπαράσταση

Inspection options

MaxObjectsΜέγιστα ενεργά αντικείμενα πριν ο φάκελος JSON αναφέρει truncated: true
MaxDepthΜέγιστο φωλιασμένο βάθος πίνακα και λεξικού από 1 έως 32
MaxOutputBytesΣκληρό ανώτατο όριο για την πλήρη ροή byte JSON
MaxStringBytesΜέγιστα byte που διατηρούνται από μία συμβολοσειρά ή όνομα PDF
IncludeStreamDigestsΥπολογίζει SHA-256 σε κωδικοποιημένα byte ροής χωρίς αποκωδικοποίηση του payload

Patch model

Κάθε TPdfObjectPatchOperation επιλέγει ακριβή αριθμό αντικειμένου, γενεά και κλειδί λεξικού ανώτατου επιπέδου, στη συνέχεια είτε ορίζει είτε αφαιρεί αυτό το κλειδί

Λειτουργίες set δέχονται τυποποιημένες τιμές null, Boolean, ακέραιου, πραγματικού, ονόματος, συμβολοσειράς κειμένου ή έμμεσης αναφοράς και δεν δέχονται ακατέργαστη σύνταξη PDF

Όλες οι ταυτότητες, γενεές, αναφορές, ονόματα, διπλές λειτουργίες και λεξικά-στόχοι επικυρώνονται πριν παραδοθεί έξοδος

Κλειδιά μήκους ροής και αλυσίδας φίλτρων δεν μπορούν να επιδιορθωθούν επειδή η αλλαγή τους θα διέφθειρε τη ροή

Ο writer προσαρτά μία σταδιακή αναθεώρηση, ανακατασκευάζει το ενεργό γράφημα, το φορτώνει αυστηρά μέσω PDFium και μόνο τότε γράφει τον προορισμό

Policies and limits

Example

Options := TPdfObjectGraphInspectOptions.Default;
Pdf.ExportObjectGraph(JsonStream, Options, Report);
SetLength(Operations, 1);
Operations[0].Kind := popSet;
Operations[0].ObjectNumber := CatalogObjectNumber;
Operations[0].Generation := 0;
Operations[0].Key := 'Lang';
Operations[0].Value.Kind := povTextString;
Operations[0].Value.TextValue := 'en-US';
Pdf.SaveAsObjectGraphPatched('patched.pdf', Operations, Report);

See Also

Incremental save session, SaveAsObjectStream, SaveAs