Επισκόπηση έργου
Το HotPDF είναι μια βιβλιοθήκη εξαρτημάτων PDF σε επίπεδο πηγαίου κώδικα για Delphi και C++Builder. Έχει σχεδιαστεί για desktop λογισμικό που χρειάζεται αιτιοκρατική έξοδο PDF, απευθείας σχεδίαση σελίδας, ισχυρή ενσωμάτωση με το RAD Studio, και συμπαγή ανάπτυξη (deployment)
Το εξάρτημα καλύπτει την καθημερινή δημιουργία PDF, προηγμένη σύνθεση εγγράφων, επεξεργασία PDF, έξοδο με πολλές εικόνες, φόρμες με προστασία από διπλότυπα ονόματα πεδίων, επισημειώσεις, wrappers πεδίων AcroForm κατά τη δημιουργία, επαναχρησιμοποιήσιμες αλυσίδες action-builder για ενέργειες ανοίγματος, ενέργειες κύκλου ζωής εγγράφου, πρόσθετες ενέργειες σελίδας, ενέργειες επισημειώσεων, πρόσθετες ενέργειες επισημειώσεων, πρόσθετες ενέργειες AcroForm, κρυπτογράφηση, ροές εργασίας υπογραφής, βελτιστοποίηση γραμματοσειρών, και ροές εργασίας βασισμένες σε streams, όλα από μία ενιαία εγγενή επιφάνεια API
Το toolkit φορτωμένων εγγράφων προσθέτει διαγραφή εύρους σελίδων, συγχώνευση με επίγνωση περιγραμμάτων και AcroForm, περιορισμό πολλαπλών widget φορμών, επεξεργασία γεωμετρίας, ορατότητας, περιστροφής, περιγράμματος και χρώματος, πλήρη επεξεργασία επισημειώσεων, αυτόματη ενεργοποίηση γυμνών διευθύνσεων ιστού και email, stateless αναζήτηση επόμενης αντιστοίχισης, πλήρη τυποποιημένα στιγμιότυπα περιγραμμάτων, υπογραφή μέσω του αποθετηρίου πιστοποιητικών των Windows, αιτιοκρατική συρραμμένη εκτύπωση με ανίχνευση δυνατοτήτων χαρτιού, στιγμιότυπα Viewer πλήρους σελίδας, οριοθετημένης περιοχής και οριοθετημένα σε pixel, prefetch γειτονικών σελίδων με επίγνωση cache, μόνιμες επισημάνσεις σελίδων, επιλογή marquee με επίγνωση περιστροφής, εκτύπωση της τρέχουσας προβολής, πλοήγηση με πληκτρολόγιο και τροχό, και εξαρτήματα VCL viewer
Οι πρόσφατες εκδόσεις της βιβλιοθήκης επέκτειναν το HotPDF από έναν κλασικό συγγραφέα PDF σε ένα ευρύτερο εγγενές toolkit PDF, που καλύπτει gating χαρακτηριστικών ειδικό ανά έκδοση για PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, εγγενή έξοδο PDF 2.0, συμμόρφωση με τα πρότυπα PDF/A-1 / -2 / -3 / -4 + PDF/X-1a / -3 / -4 + PDF/UA-1 / -2, ψηφιακές υπογραφές PAdES baseline / extended / μακροπρόθεσμης εγκυρότητας, ένα pipeline υπογραφής PFX / PKCS#12 in-process με εγγενή RSA και ECDSA, καθώς και προαιρετικά Ed25519 και Ed448 μέσω OpenSSL 3, αυξητικές ενημερώσεις κρυπτογραφημένες με Standard ή δημόσιο κλειδί που διατηρούν τα credentials, με σταθερά μόνιμα IDs, εναλλασσόμενα IDs τροποποίησης, byte-ακριβή αρχικά προθέματα πηγής, και byte-ακριβείς αποθηκεύσεις χωρίς μεταβολή, subsetting γραμματοσειρών CFF / OpenType / CID-keyed CFF, και προσαρμογείς εξαγωγής PDF για FastReport, QuickReport, ReportBuilder, και DevExpress ExpressPrinting που δρομολογούν τις υπάρχουσες αναφορές τους μέσα από το HotPDF ως ενιαίο PDF backend. Ένα Direct File API επεξεργάζεται PDF πολλών gigabyte με εκατομμύρια αντικείμενα απευθείας από αρχείο σε αρχείο - μέτρηση σελίδων, αντιγραφή, επανεγγραφή πληροφοριών εγγράφου, και κρυπτογράφηση ή αποκρυπτογράφηση AES-256 - μέσα σε δευτερόλεπτα, ενώ ο οριοθετημένος loader ανάκτησης μπορεί να εντοπίσει εκ νέου ένα έγκυρο τμήμα xref ή να ανακατασκευάσει offsets απευθείας αντικειμένων μετά από κατεστραμμένα δεδομένα startxref και xref, χωρίς να εμπιστεύεται ένθετο κείμενο τύπου αντικειμένου ή δυαδικά δεδομένα, και δημοσιεύει γεγονότα ανάκτησης με εύρος byte και ρητά επίπεδα εμπιστοσύνης
Ο προαιρετικός writer LinearizeOutput προσθέτει έξοδο fast web view με ενότητα εξαρτήσεων πρώτης σελίδας, ομαδοποίηση κοινόχρηστων αντικειμένων, πίνακες υποδείξεων για την κύρια σελίδα και τα κοινόχρηστα αντικείμενα, και έναν πρώιμο πίνακα cross-reference συμβατότητας, διατηρώντας παράλληλα τους απευθείας προορισμούς αρχείου και stream
Τα φίλτρα φορτωμένων streams εκτελούνται μέσω ενός επαναχρησιμοποιήσιμου pipeline του οποίου το τελικό στάδιο γράφει απευθείας σε streams που ανήκουν στον καλούντα, ενώ τα ενδιάμεσα στάδια διαχέονται μέσω ανεξάρτητα συμπιεσμένων blocks και μιας οριοθετημένης ασύγχρονης ουράς παρτίδων, με αυστηρούς τελικούς δείκτες ASCII85 και ASCIIHex, ανεξάρτητα όρια αποκωδικοποιημένων byte ανά αλυσίδα και ανά έγγραφο, όρια πλήθους φίλτρων και βάθους pipeline, ανίχνευση κύκλων έμμεσων αναφορών, απόρριψη αναδρομής στο ίδιο stream, και δομημένα διαγνωστικά για κάθε επιτυχία ή αποτυχία
Η κωδικοποίηση predictor εκθέτει πλέον αυστηρές, επαναχρησιμοποιήσιμες διαδρομές TIFF και σταθερού ή προσαρμοστικού PNG για συμπαγείς rasters 8-bit και 16-bit· οι φορτωμένες εικόνες μπορούν να αντιγράψουν εγγενή ή γενικά αποκωδικοποιημένα δεδομένα απευθείας σε streams του καλούντος, ενώ η επιλεκτική βελτιστοποίηση χρησιμοποιεί buffers διάχυσης από μνήμη σε δίσκο, μια αιτιοκρατική βασική γραμμή zlib τεσσάρων στρατηγικών ακολουθούμενη από προϋπολογισμένο διαχωρισμό blocks Zopfli, και οριοθετημένες παράλληλες εργασίες εικόνων που δεσμεύουν μόνο μικρότερα δεδομένα με τη σειρά της πηγής
Η επανασυμπίεση φορτωμένων JPEG και JPEG 2000 μπορεί να εκτελέσει οριοθετημένες δοκιμές ποιότητας και να επιλέξει μια αιτιοκρατική έξοδο, βαθμολογώντας από κοινού το δειγματοληπτημένο αντιληπτικό σφάλμα και το σχετικό κόστος σε bytes κωδικοποίησης, με ρητά όρια οπτικού σφάλματος και ελάχιστης εξοικονόμησης
Τα μεγάλα τοπικά έγγραφα χρησιμοποιούν οριοθετημένη windowed αντιστοίχιση μνήμης με κοινόχρηστη LRU cache για αναγνώσεις του parser και αμετάβλητα, lazy εύρη streams, ενώ τα κατώφλια αντιστοίχισης και η γεωμετρία παραθύρου παραμένουν ρυθμιζόμενα και οι αποτυχίες υποχωρούν αυτόματα σε fallback· τα ακατέργαστα συμπιεσμένα εύρη, οι αποκωδικοποιημένες εικόνες, οι μεταγλωττισμένες display lists, και οι αποδοσμένες raster σελίδες έχουν ανεξάρτητα όρια πλήθους εγγραφών, συνολικών bytes, και ανά εγγραφή, συνδυάζουν προσφατότητα με frequency admission σταθερής μνήμης που γερνάει για αντίσταση στη ρύπανση από σάρωση, και εκθέτουν στατιστικά πληρότητας, κίνησης και συχνότητας· ένας δίκαιος, ολόκληρης-διεργασίας scheduler μέγιστης μνήμης καθυστερεί ανταγωνιστικές φορτώσεις εγγράφων, αποδόσεις, βελτιστοποίηση streams, και παράλληλη βελτιστοποίηση εικόνων πριν επικαλυφθούν τα κύρια working sets τους, διατηρώντας παράλληλα την ακύρωση και αναφέροντας την πίεση αποδοχής· η σειριοποίηση μη κρυπτογραφημένων streams και οι μεταφορές που κατευθύνει ο καλών γράφουν bytes μνήμης, mapped-file, lazy-file, adaptive-cache, και range-cache χωρίς ενδιάμεσο πλήρες αντίγραφο του stream· τα βραχύβια tokens και buffers του parser χρησιμοποιούν μια διατηρούμενη block arena μεταξύ φορτώσεων, τα απλά dictionaries και arrays σαρώνουν αμετάβλητα spans με απευθείας αριθμητική μετατροπή και ενιαία διέλευση nesting, ρυθμιζόμενοι προϋπολογισμοί byte, συνολικών tokens, εγγραφών container, και κακόβουλων tokens σταματούν εχθρικά δεδομένα εισόδου με τυποποιημένη τηλεμετρία, τα κλειδιά dictionary δεν απαιτούν πλέον προσωρινά αντικείμενα ονόματος, και τα επαναλαμβανόμενα ονόματα, τελεστές περιεχομένου, και αμετάβλητα σύντομα strings μοιράζονται μια οριοθετημένη δεξαμενή σε επίπεδο εγγράφου· τα τροποποιημένα φορτωμένα streams χρησιμοποιούν το LoadedStreamMemoryThreshold για να επιλέξουν μνήμη ή ένα ιδιόκτητο συμπιεσμένο προσωρινό stream του οποίου τα ακατέργαστα και συμπιεσμένα blocks μοιράζονται μια οριοθετημένη ασύγχρονη ουρά εγγραφής· τα μέλη object-stream ευρετηριάζονται με βάση τον αριθμό αντικειμένου και αναλύονται μόνο όταν αναφέρονται, ενώ το LoadFromRandomAccessSource συνδέει readers εύρους HTTP και προσαρμοσμένη αποθήκευση, συγχωνεύει γειτονικές αναγνώσεις μέσω οριοθετημένης cache, αυξάνει προσαρμοστικά την ασύγχρονη προανάγνωση κατά τη διάρκεια συνεχούς εμπρόσθιας ανάλυσης, καταστέλλει την κερδοσκοπική μεταφορά μετά από τυχαία άλματα, ακυρώνει συνεργατικά εργασίες σε εξέλιξη για αναγνώσεις προσκηνίου, ανακτά κλειδιά κωδικού πρόσβασης από οριοθετημένα εύρη trailer, xref, ID εγγράφου, και dictionary κρυπτογράφησης χωρίς να ζητά ολόκληρη την πηγή, καταγράφει ακριβείς δυαδικές εγγραφές του security handler από το έγκυρο offset αντικειμένου ώστε η καθυστερημένη αποκρυπτογράφηση να μη χρειάζεται εκ νέου ανάγνωση της πηγής, εκθέτει την πρώτη linearized σελίδα από το αυτοτελές πρόθεμά της, και σχεδιάζει οριοθετημένα, ελάχιστα εύρη εκκίνησης, hint, σελίδας, κοινόχρηστου αντικειμένου, και cross-reference για οποιαδήποτε μεταγενέστερη σελίδα, ενώ αποδέχεται νόμιμες σύντομες αναγνώσεις και διατάξεις hint τόσο διαλειτουργικές όσο και Annex F, υπό αυστηρά όρια μνήμης και δομής
Τα mapped τοπικά αρχεία προσαρμόζονται πλέον εντός του ρυθμισμένου ανώτατου ορίου byte: οι συνεχείς εμπρόσθιες αναγνώσεις χρησιμοποιούν μεγαλύτερες προβολές για να μειώσουν την επαναχαρτογράφηση, οι συνεχείς απομακρυσμένες ή προς τα πίσω αναγνώσεις διατηρούν έως και 16 μικρότερες προβολές MRU, οι αλλαγές λειτουργίας απαιτούν επαναλαμβανόμενα στοιχεία, και το THPDFMappedFileStatistics αναφέρει την ενεργή γεωμετρία, τα μέγιστα mapped bytes, τους μετρητές μοτίβων πρόσβασης, και τις μεταβάσεις
Το HotPDFABI.dll εκθέτει ένα εκδοσιοποιημένο, επίπεδο C ABI με δομές callback Win32 και Win64 ελεγμένες ως προς τη διάταξη, επικυρωμένα αδιαφανή handles, σταθερούς κωδικούς κατάστασης, 64-bit τυχαίας πρόσβασης αναγνώσεις απευθείας σε buffers του parser, επαναλήψιμες ροές εγγραφής, ρητά μήκη byte, ακύρωση, πρόοδο, και διαγνωστικά· το build-HotPDF-ABI.cmd παράγει το DLL και τη βιβλιοθήκη εισαγωγής για κάθε πλατφόρμα
Οι λειτουργίες εγγράφων JSON και C ABI μοιράζονται ανακάλυψη δυνατοτήτων, rendering, Unicode κείμενο και φόρμες, επίπεδα OCR, επισκίαση, υπογραφή PFX, και οριοθετημένη αρχειακή μετατροπή raster PDF/A-4 μέσω εκδοσιοποιημένου schema, προϋπολογισμών πόρων, rollback callback, και ατομικής εξόδου αρχείου· τα αιτήματα αρχειοθέτησης δέχονται ρητά την απώλεια πληροφορίας και διατηρούν τη φορτωμένη πηγή τους
Τα εγγενή backends FPC παρέχουν TIFF, JPEG/JPX, ICC, JBIG2, και Zopfli μέσω μιας επικυρωμένης γέφυρας codecs Windows, μαζί με πραγματικό παράλληλο rendering σελίδας, τακτοποιημένων σελίδων, πλακιδίων, ζωνών, και tiles JPEG 2000
Οι αιτιοκρατικοί διαφορικοί probes παλινδρόμησης συγκρίνουν επώνυμες μηχανές στους τομείς ανάλυσης, απόδοσης, κειμένου, και αποθήκευσης, επαναλαμβάνουν κάθε αποτέλεσμα για να εντοπίσουν αστάθεια, απομονώνουν εξαιρέσεις, επιβάλλουν όρια εισόδου και εξόδου, παρέχουν ενσωματωμένα δακτυλικά αποτυπώματα SHA-256 του HotPDF, και εκδίδουν το διατεταγμένο JSON schema hotpdf.differential.v1
Το εγγενές στατιστικό harness παλινδρόμησης απόδοσης απομονώνει φόρτους εργασίας Win32 και Win64 για φόρτωση, αποθήκευση, απόδοση, και εξαγωγή, καταγράφει προθερμάνσεις συν 30 ακατέργαστα δείγματα με p50, p95, διακύμανση δείγματος, RSS, I/O διεργασίας, αιτιοκρατική ταυτότητα fixture, και μεταδεδομένα περιβάλλοντος, και αποτυγχάνει έναντι εκδοσιοποιημένων ορίων JSON
Η συνεχής αποθήκευση corpus κακοδιατυπωμένων PDF επικυρώνει εκ νέου και ελαχιστοποιεί εκ νέου κάθε περίπτωση αποτυχίας υπό ρυθμιζόμενα όρια, διατηρεί τη μικρότερη είσοδο ισοδύναμη ως προς την υπογραφή σε όλες τις εκτελέσεις, σειριοποιεί ανταγωνιστικούς writers με κλείδωμα ασφαλές για τη διεργασία, και δημοσιεύει ατομικά αρχεία PDF με διεύθυνση SHA-256 και μεταδεδομένα hotpdf.corpus.case.v1
Η ενοποιημένη τηλεμετρία λειτουργιών διαχωρίζει την κράτηση scheduler και την καθυστέρηση ουράς, τον χρόνο τοίχου από τον χρόνο CPU του τρέχοντος thread, τη φορητή διατηρούμενη μνήμη του εξαρτήματος από το δειγματοληπτημένο working set της διεργασίας, και την κωδικοποιημένη είσοδο από την τελική αποκωδικοποιημένη έξοδο, αναφέροντας επίσης μέγιστες πρόσθετες ζωντανές δεσμεύσεις, deltas byte I/O διεργασίας, δραστηριότητα cache, συνολική εργασία φίλτρων, και επέκταση αποκωδικοποίησης
Τα οριοθετημένα, αιτιοκρατικά logs replay καταγράφουν σημεία ελέγχου ακύρωσης, διαθεσιμότητα εύρους τυχαίας πρόσβασης, και αποτελέσματα callback τύπου boolean ή integer σε ένα διατεταγμένο JSON schema· το αυστηρό replay επικυρώνει κάθε υπογραφή γεγονότος και αντικαθιστά τις καταγεγραμμένες αποφάσεις, ώστε διακοπτόμενος εξωτερικός χρονισμός και συμπεριφορά callback να μπορούν να αναπαραχθούν χωρίς μεταβολή των λειτουργιών του εγγράφου
Η φόρτωση με επίγνωση αναθεωρήσεων επικυρώνει πλέον τις ελεύθερες λίστες xref και τις μεταβάσεις γενιάς, διατηρώντας παράλληλα οριοθετημένες λεπτομέρειες για διπλότυπους και επισκιασμένους ορισμούς αντικειμένων· οι καταστροφικές αυξητικές επεξεργασίες συγχωνεύουν υπάρχοντα και νεοελευθερωμένα αντικείμενα σε μια πλήρη, αιτιοκρατική ελεύθερη αλυσίδα, προάγουν τις γενιές με κορεσμό, διατηρούν τις γενιές μη αποθηκευμένων αντικειμένων, και εκθέτουν στατιστικά ανακατασκευής· ρητές καταστάσεις αντικειμένων clean, dirty, released, και must-write υποστηρίζουν την απελευθέρωση cache object-stream χαμηλής μνήμης μετά την αποθήκευση, ενώ η αιτιοκρατική σειρά dictionary, τα streaming στιγμιότυπα JSON εκδοσιοποιημένου γραφήματος αντικειμένων και αυξητικές ενημερώσεις, η επεξεργάσιμη διαγνωστική έξοδος QDF με οριοθετημένη επιδιόρθωση μήκους stream και xref, οι οριοθετημένες ακμές εξάρτησης, και η απόδοση διατηρούμενης μνήμης βασισμένη σε dominator κάνουν την δομική επιθεώρηση αναπαραγώγιμη
Τα αναζητήσιμα επίπεδα κειμένου OCR συνδέουν έναν αναγνώστη επιλεγμένο από την εφαρμογή με οριοθετημένη απόδοση σελίδας, επικυρώνουν την εμπιστοσύνη, τη γεωμετρία Unicode και pixel, αντιστρέφουν την περιστροφή σελίδας για ευθυγραμμισμένο αόρατο κείμενο, προαιρετικά συνδέουν την έξοδο με ένα OCG, και δεσμεύουν κάθε επιλεγμένη σελίδα μέσα από μία συναλλαγή γραφήματος· τα σημασμένα επίπεδα OCR του HotPDF μπορούν να αντικατασταθούν με ασφάλεια μετά από αποθήκευση και επαναφόρτωση, οι γειτονικές Λατινικές και κυριλλικές λέξεις λαμβάνουν ρητά κενά Unicode, και το παράδειγμα κονσόλας SearchableOCR παράγει δείγματα σαρώσεων και μετατρέπει επιλεγμένες σελίδες με ενσωματωμένο OCR, RapidOCR, ή μηχανές Tesseract DLL/CLI, ρυθμιζόμενα όρια, και στατιστικά μετατροπής
Η ενσωματωμένη μηχανή OCR αναγνωρίζει κείμενο ASCII regular, bold, italic, και bold italic, συμπεριλαμβανομένου ξεθωριασμένου κειμένου και φωτεινού κειμένου σε predominantly σκούρα σελίδα· λέξεις με αβέβαιες διατηρημένες γλυφές παραλείπονται ως σύνολο για να μη χάνονται σιωπηλά χαρακτήρες
Ο προαιρετικός adapter εγγενών DLL του Tesseract παρέχει ρυθμιζόμενη σελιδοτομή και λειτουργίες μηχανής, πολύγλωσση αναγνώριση Unicode, εμπιστοσύνη, όρια λέξεων, και γραμμές βάσης μέσω του HPDFCreateTesseractDLLOCREngine σε builds Delphi, C++Builder, και FPC/Lazarus για Windows
Ο τοπικός adapter CLI του Tesseract δέχεται επίσης το THPDFTesseractOptions για διατάξεις single-line, single-word, sparse-text, και vertical-block, με ρητή λειτουργία μηχανής, timeout, και όρια pixel εισόδου· ο εγγενής adapter DLL χρησιμοποιεί την κατεύθυνση της γραμμής βάσης για να μην φουσκώνει το μήκος κάθετης λέξης το μέγεθος του αναζητήσιμου κειμένου
Ο adapter τοπικών μοντέλων του RapidOCR προσθέτει ρητές διαδρομές μοντέλων ONNX, προαιρετική ταξινόμηση γωνίας, τοπικά λεξικά και γραμματοσειρές, ελέγχους νημάτων CPU, offline preflight, και οριοθετημένη αναγνώριση Unicode μέσω του THPDFRapidOCROptions σε builds Delphi, C++Builder, και FPC/Lazarus για Windows
Ο adapter εγγενών DLL του RapidOCR κρατά μοντέλα CPU ONNX στη διεργασία και αναγνωρίζει στιγμιότυπα μνήμης μέσω του HPDFCreateRapidOCRDLLOCREngine, με προεπιλογές THPDFRapidOCRDLLOptions.ForLanguage για Απλοποιημένα και Παραδοσιακά Κινεζικά, Αγγλικά, Ιαπωνικά, Κορεάτικα, Ρωσικά, συνηθισμένες Λατινικές γλώσσες, Αραβικά, και Χίντι, επαληθευμένα τοπικά πακέτα μοντέλων, οριζόντια σειρά ανάγνωσης, προαιρετική ταξινόμηση γωνίας, κείμενο Unicode, οριοθετημένη έξοδο, και συνεργατική ακύρωση σε builds Delphi, C++Builder, και FPC/Lazarus για Windows
Οι προαιρετικοί τοπικοί προσαρμογείς Tesseract και RapidOCR παρέχουν ακυρώσιμο κινεζικό OCR με ρητές διαδρομές εκτελέσιμου και μοντέλου· η ενσωματωμένη προεπιλεγμένη μηχανή παραμένει αμετάβλητη, ενώ οι εξωτερικές μηχανές, τα πακέτα Python, τα μοντέλα, και η τοπική προϋπόθεση Arial του RapidOCR πρέπει να προβλεφθούν ξεχωριστά
Το SetLoadedFreeTextPlainText αντικαθιστά ρητά την εμφάνιση μιας υποστηριζόμενης, φορτωμένης επισημείωσης FreeText με αριστερά στοιχισμένο κείμενο Helvetica ASCII για επανεγγραφή ή αυξητική αποθήκευση, ενώ το SetLoadedAnnotationContents αλλάζει μόνο το αποθηκευμένο περιεχόμενό της
Το SetLoadedFreeTextText ξαναχτίζει φορτωμένες εμφανίσεις Unicode και rich FreeText με ενσωματωμένες γραμματοσειρές, αναδίπλωση, στοίχιση, αδιαφάνεια, περιστροφή, και ατομικό χειρισμό υπερχείλισης· το SetLoadedFreeTextRichText ενημερώνει πλέον ταυτόχρονα την ορατή εμφάνιση και το αποθηκευμένο περιεχόμενο
Η αποκωδικοποίηση barcode σε φορτωμένη σελίδα αποδίδει μια ολόκληρη σελίδα ή μια περιοχή περιορισμένη στο media-box σε προοδευτικά, οριοθετημένα κομμάτια, δανείζει κάθε αρχικό ή περιστραμμένο κατά ένα τέταρτο raster σε έναν αποκωδικοποιητή επιλεγμένο από την εφαρμογή, επικυρώνει Unicode, ακατέργαστα bytes, εμπιστοσύνη, και όρια, αντιστρέφει τις περιστροφές raster και σελίδας στον χώρο χρήστη PDF, και αφαιρεί διπλότυπα επικαλυπτόμενα payloads
Ο εντοπισμός επισκίασης με προτεραιότητα στην επισκόπηση συνδυάζει ενσωματωμένα μοτίβα PII με επίγνωση checksum με ανιχνευτές οντοτήτων και προσώπων επιλεγμένους από την εφαρμογή, απεικονίζει κάθε αποδεκτό span ή ορθογώνιο raster στον χώρο σελίδας PDF, ξεκινά κάθε εύρημα ως εκκρεμές, και δεσμεύει ατομικά μόνο τα ευρήματα που φέρουν τόσο ρητή έγκριση όσο και ταυτότητα ελεγκτή, χωρίς μόνιμη εφαρμογή στο περιεχόμενο
Η επανεγγραφή χρώματος φορτωμένης σελίδας μετατρέπει επιλεγμένη βαφή σε DeviceGray, DeviceRGB, ή DeviceCMYK, διατηρεί το συνηθισμένο κείμενο και μονοπάτια χρώματος συσκευής ως αναζητήσιμα διανύσματα, αποδίδει εικόνες, Forms, μοτίβα, σκιάσεις, διαφάνεια, ICC, και χρώμα Type 3 μέσα από μία lossless διεργασία εικόνας όταν απαιτείται, διατηρεί από προεπιλογή σελίδες με spot χρώματα, και δεσμεύει ατομικά ολόκληρη την οριοθετημένη παρτίδα
Η δομημένη εξαγωγή φορτωμένης σελίδας γράφει επιλεγμένες σελίδες ως UTF-8 HTML, XHTML, XML, ή JSON από ένα ενιαίο προσβάσιμο μοντέλο ανάγνωσης, προτιμώντας την tagged σειρά, και διατηρώντας τη γλώσσα και τον τίτλο του εγγράφου, επικεφαλίδες, λίστες, πίνακες, εικόνες, εναλλακτικά κείμενα, περιγράμματα, ετικέτες σελίδων, ασφαλείς συνδέσμους, επισημειώσεις, και μη ευαίσθητα στοιχεία ελέγχου φορμών, υπό ατομική ακύρωση και προϋπολογισμούς byte
Η τυποποιημένη εξαγωγή πινάκων μετατρέπει την εντοπισμένη γεωμετρία πίνακα σε ένα δημόσιο κανονικό πλέγμα, ενώνει συμβατά τμήματα και γειτονικές σελίδες, επισημαίνει επαναλαμβανόμενες κεφαλίδες και συγχωνευμένα εύρη στηλών, συνάγει τιμές integer, αριθμού, boolean, ημερομηνίας, ημερομηνίας-ώρας, νομίσματος, και ποσοστού ελεγχόμενες από τοπικές ρυθμίσεις με βαθμό εμπιστοσύνης, και γράφει οριοθετημένο CSV ή πλούσιο σε μεταδεδομένα JSON ατομικά
Οι προαιρετικοί χειριστές εγγράφων αναγνωρίζουν XPS, EPUB, και CBZ από το εξεταζόμενο περιεχόμενο, διατηρούν τη σειρά σταθερών σελίδων, spine, ή φυσικής εικόνας, μετατρέπουν συντομευμένες διαδρομές XPS και πινέλα ιδιοτήτων με συμπαγές χρώμα, multi-stop γραμμικές ή ελλειπτικές ακτινικές διαβαθμίσεις σε εγγενή διανύσματα PDF και μοτίβα σκίασης, γεμίζουν μονοπάτια από cached πόρους ImageBrush τύπου JPEG, PNG, TIFF, ή JPEG XR του πακέτου με οριοθετημένη αντιστοίχιση viewbox και viewport, μετασχηματισμούς τοπικούς στο πινέλο, εγγενή επαναλαμβανόμενα ή κατοπτρικά μοτίβα εικόνας, και άλφα soft-mask PNG, εφαρμόζουν τιμές Path.OpacityMask συμπαγούς χρώματος, διαβάθμισης, ή εικόνας μέσω διπλωμένου άλφα ή κοινόχρηστων ομάδων διαφάνειας DeviceGray, συνθέτουν επικαλυπτόμενους απογόνους Canvas μία φορά μέσα από απομονωμένες ομάδες DeviceRGB για το Opacity και το Canvas.OpacityMask, μεταγλωττίζουν inline ή βασισμένα σε πόρους δέντρα XPS VisualBrush σε επαναχρησιμοποιήσιμα Form XObjects και οριοθετημένα μοτίβα tiling, απεικονίζουν οριοθετημένη, μετασχηματισμένη, και δομημένη γεωμετρία Canvas.Clip σε ένθετα εγγενή μονοπάτια αποκοπής PDF, διατηρούν οριοθετημένα clusters Glyphs XPS, ακριβή προγράμματα γραμματοσειρών πακέτου, και IDs γλυφών, ρητά advances, offsets, αφετηρίες RTL, αδιαφάνεια, επαναχρησιμοποίηση πόρων, εξαγωγή Unicode, μετασχηματισμένη πλοήγηση HTTP, HTTPS, mail, σελίδας πακέτου, και LinkTarget μέσα από περικομμένες εγγενείς επισημειώσεις PDF, κληρονομούν πλοήγηση σε επίπεδο Canvas μέσα από θυγατρικά visuals με ένθετες παρακάμψεις, εκδίδουν τοποθετημένες σειρές TJ, επιβάλλουν κοινόχρηστους προϋπολογισμούς αρχείου, πόρων, reflow, σελίδας, συνδέσμου, URI, γεωμετρίας, περιεχομένου ομάδας, pixel, εξόδου, και ακύρωσης, και επαναχρησιμοποιούν μία αμετάβλητη cache PDF για ατομική εξαγωγή και απόδοση
Η απομακρυσμένη υπογραφή CSC συνδέει το υπάρχον pipeline του provider CMS με υπηρεσίες CSC API v2 μέσω μιας μεταφοράς HTTP που ανήκει στην εφαρμογή, με ανανέωση OAuth, ανακάλυψη αλυσίδας credential, χειρισμό SAD με ακριβές hash-pinning, οριοθετημένες, διατεταγμένες παρτίδες πολλαπλής υπογραφής, σύγχρονη ή ασύγχρονη υπογραφή, οριοθετημένο polling, χρονοσφραγίδες RFC 3161, ακύρωση, κλειδιά idempotency με διεύθυνση περιεχομένου SHA-256, και μια πεπερασμένη cache ολοκληρωμένων λειτουργιών
Οι ένθετες συναλλαγές copy-on-write στο γράφημα αντικειμένων δημιουργούν στιγμιότυπο κάθε θιγμένης έμμεσης ρίζας μία φορά ανά savepoint, διατηρούν τις διευθύνσεις ριζών κατά το rollback, επαναφέρουν την κατανομή αριθμών αντικειμένων, αφαιρούν προσαρτημένες ρίζες, διαχέουν το ιστορικό μεγάλων streams πέρα από ένα ρυθμιζόμενο κατώφλι, και εκθέτουν στατιστικά στιγμιοτύπων σε μνήμη και σε αρχείο
Τα επαναχρησιμοποιήσιμα στοιχεία διάταξης υποστηρίζουν μέτρηση χωρίς παρενέργειες, επαληθευμένες κεφαλές διαχωρισμού, και ιδιόκτητες συνέχειες υπερχείλισης για παραγράφους, γραμμές, containers, και προσαρμοσμένο περιεχόμενο· τα δηλωτικά callbacks σελίδας συνθέτουν φόντα, κεφαλίδες, περιεχόμενο εγγράφου, υποσέλιδα, και προσκήνια με σταθερή σειρά, ενώ οι απεριόριστες αναφορές διατηρούν staging σελίδων σε αρχείο, περιορισμούς παραγράφων, οριοθετημένα διαγνωστικά, βοηθητικές συναρτήσεις σημασιολογίας, και έλεγχο κατεύθυνσης bidi
Η απόδοση φορτωμένων σελίδων εκτελεί χρωματιστά και αχρωμάτιστα μοτίβα tiling, καθώς και αξονικές, ακτινικές, ελεύθερης μορφής, και πλεγματικές σκιάσεις Gouraud, Coons patch, και tensor-product patch για γεμίσματα και περιγράμματα, σέβεται τους πίνακες μοτίβων στο προεπιλεγμένο σύστημα συντεταγμένων του γονικού περιεχομένου, υποστηρίζει και τους τρεις τύπους tiling και προσημασμένα βήματα, απομονώνει το μονοπάτι κάθε κελιού, εφαρμόζει αχρωμάτιστες βασικές αποχρώσεις σε λειτουργίες γεμίσματος και περιγράμματος, και οριοθετεί το βάθος αναδρομικών μοτίβων, την εκτέλεση tiles, την αποκωδικοποίηση mesh, και την προσαρμοστική τεμαχιοποίηση για εχθρικούς πόρους
Η αναπαραγωγή production bitmap, direct-DC, Form, και display-list μοιράζεται πλέον έναν κοινό διερμηνέα content-token με ακύρωση ανά τελεστή· οι μεταγλωττισμένες display lists αποθηκεύουν σε cache δείκτες τελεστών για αναπαραγωγή χωρίς σάρωση τελεστών, και εκθέτουν το πλήθος εντολών μέσω των THPDFPageDisplayList.OperatorCount και THPDFDisplayListInfo.OperatorCount, ενώ ο renderer διατηρεί την πλήρη μηχανή κατάστασης γραφικών και πόρων
Οι απομονωμένες ομάδες διαφάνειας και οι ομάδες knockout αποδίδονται μέσω οριοθετημένων πλακιδίων 768 pixel με συνέχεια απόλυτων συντεταγμένων συσκευής, τοπική αποθήκευση άλφα και soft-mask ανά πλακίδιο, αποκωδικοποίηση και tokenisation Form σε ένα πέρασμα, αιτιοκρατική αποκατάσταση κατάστασης ένθετων ομάδων, και στατιστικά μέγιστου working set διαθέσιμα μέσω του GetLastTransparencyGroupTileStats
Το προαιρετικό overprint proofing διατηρεί process plates που δεν κατονομάζει μια βαφή, εφαρμόζει προστασία μηδενικού στοιχείου /OPM 1 για DeviceCMYK, αντιμετωπίζει το DeviceGray ως το process plate του μαύρου, και συνδυάζει τις spot αποχρώσεις Separation και DeviceN μέσω των εναλλακτικών μετασχηματισμών χρώματός τους
Οι επαναλαμβανόμενες γλυφές Type 3 επαναχρησιμοποιούν οριοθετημένες display lists CharProc με κλειδί τη γραμματοσειρά, τη γλυφή, τον γραμμικό πίνακα, και την κατάσταση χρώματος, αποφεύγοντας την επαναλαμβανόμενη αποκωδικοποίηση και tokenisation stream, ενώ διατηρούν τη μετάφραση, την αποκοπή, τους ένθετους πόρους, τους κανόνες χρώματος d0/d1, και τα όρια αναδρομής
Οι προοδευτικές συνεδρίες φορτωμένης σελίδας αποκωδικοποιούν τις κατάλληλες προοδευτικές εικόνες DCTDecode μία σάρωση ανά οριοθετημένη συνέχεια για νωρίτερες, ορατές προεπισκοπήσεις, εκθέτουν μετρητές σαρώσεων και εικόνων μέσω του THPDFLoadedPageRenderSession, και παρέχουν ακυρώσιμες ειδοποιήσεις THPDFProgressiveJPEGScanEvent, διατηρώντας παράλληλα το fallback πλήρους εικόνας για μη υποστηριζόμενη κατάσταση βαφής ή αποτυχίες αποκωδικοποίησης
Οι προοδευτικές συνεδρίες περιοχής δεσμεύουν μόνο το ζητούμενο παράθυρο στον χώρο χρήστη, διατηρούν την κατάσταση γραφικών και κειμένου μεταξύ οριοθετημένων συνεχειών, χρησιμοποιούν συντηρητικά όρια display-list για να αποκλείσουν άσχετα μονοπάτια, κείμενο, εικόνες, Forms, και σκιάσεις, και εκθέτουν μετρητές ορατής και αποκλεισμένης βαφής για τηλεμετρία
Η αποκωδικοποίηση JPEG 2000 επικυρώνει μεμονωμένα πλακίδια codestream, συνδυάζει την ανακατασκευή περιοχής πηγής και ανάλυσης ενδιαφέροντος, και αποκωδικοποιεί ταυτόχρονα ανεξάρτητα, ορατά πλακίδια με ιδιωτική κατάσταση codec, ακύρωση, όρια CPU και εργατών χρήστη, αιτιοκρατική σύνθεση, και αυτόματο fallback προϋπολογισμού μέγιστης μνήμης
Τα hits της cache φορτωμένων εικόνων επιστρέφουν πλέον αμετάβλητα handles αποκωδικοποιημένου bitmap με μέτρηση αναφορών, που επιβιώνουν της εξαίρεσης και της καταστροφής του εγγράφου, υποστηρίζουν ασφαλή απευθείας σχεδίαση για threads, διατηρούν απομονωμένα, τροποποιήσιμα αντίγραφα κατά παραγγελία, και εξαλείφουν τα επαναλαμβανόμενα αντίγραφα pixel από τις θερμές διαδρομές του renderer
Η παράλληλη απόδοση φορτωμένων σελίδων επικαλύπτει πλέον τη μεταγλώττιση display-list με την αναπαραγωγή σε δυναμικά ισορροπημένους εργάτες, μεταγλωττίζει άσχετες σελίδες εκτός του κλειδώματος cache, ξεκινά την έξοδο πριν μεταγλωττιστεί όλο το σύνολο εισόδου, διατηρεί τη σειρά εισόδου, και αναφέρει τηλεμετρία για ταυτοχρονισμό σταδίων, χρήση cache, ολοκλήρωση, και καθυστέρηση μέσω του THPDFParallelRenderPipelineInfo· το RenderLoadedPagesParallelOrdered προσθέτει callbacks στο καλούν thread με μια οριοθετημένη ουρά ολοκληρωμένων bitmap, backpressure διατεταγμένου παραθύρου, συνεργατική ακύρωση callback, και δανεισμένες διάρκειες ζωής bitmap για εργασίες των οποίων η πλήρης raster έξοδος δεν πρέπει να παραμείνει στη μνήμη
Και τα δύο παράλληλα API σελίδων χρησιμοποιούν πλέον τον scheduler μέγιστης μνήμης ολόκληρης της διεργασίας για να μειώσουν τους ζητούμενους εργάτες με βάση συντηρητικές εκτιμήσεις σελίδων, δεσμεύουν κάθε αξιωμένη σελίδα, καθυστερούν την εργασία δίκαια υπό πίεση, και αναφέρουν ταυτοχρονισμό βάσει μνήμης, μέγιστα δεσμευμένα bytes, αποδοχές, καθυστερήσεις, και χρόνο αναμονής· τα διατεταγμένα callbacks διατηρούν τις κρατήσεις εξόδου ενεργές μέχρι την απελευθέρωση του bitmap, ώστε τα raster σε ουρά και οι ενεργοί εργάτες να μοιράζονται έναν προϋπολογισμό
Τα RenderLoadedPageTilesParallel και RenderLoadedPageBandsParallel ρέουν μία σελίδα μέσα από απομονωμένους εργάτες με παράδοση πλακιδίων row-major ή ζωνών από πάνω προς τα κάτω, δανεισμένες διάρκειες ζωής bitmap, συνεργατική ακύρωση, μνήμη σε εξέλιξη ελεγχόμενη από τον καλούντα, και μια οριοθετημένη, αμετάβλητη cache για ακολουθίες tokens γλυφών Type 3 και πλέγματα κατωφλίου halftone
Τα SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded, και SaveLoadedPagesToTiffStreamBanded τροφοδοτούν τον ίδιο renderer ζωνών σε streaming κωδικοποιητές PNG ή TIFF, εκδίδοντας συμπιεσμένες γραμμές χωρίς πλήρες framebuffer, και αναφέροντας τηλεμετρία ζώνης, γραμμής, εργάτη, μνήμης, εξόδου, χρονισμού, και ακύρωσης
Τα εναλλάξιμα backends απόδοσης φορτωμένων σελίδων λαμβάνουν μεταγλωττισμένες display lists και πρόσβαση σε πόρους εγγράφου, διαφημίζουν δυνατότητες ταυτοχρονισμού και διαχείρισης χρώματος, συμμετέχουν σε σύγχρονη και παράλληλη απόδοση, ακυρώνουν παρωχημένες caches raster όταν αντικαθίστανται, και εκθέτουν αιτιοκρατικά στατιστικά αποτυχίας, fallback, και εκτέλεσης· το ενσωματωμένο εγγενές backend GDI διατηρεί την υπάρχουσα έξοδο χωρίς να διεκδικεί επιτάχυνση συσκευής
Το prefetch φορτωμένης σελίδας μεταγλωττίζει και αποδίδει πλέον εκτός του κλειδώματος cache με συνεργατικά σημεία ελέγχου ακύρωσης, παραχωρεί άμεσα προτεραιότητα στην απόδοση σελίδας προσκηνίου, και αναφέρει πρόοδο αιτήματος, χρήση cache, αποτυχίες, μετρητές προεμπτωσίας, και καθυστέρηση ακύρωσης μέσω του THPDFLoadedPagePrefetchInfo
Η επικύρωση γραφήματος τμημάτων JBIG2 ελέγχει πλέον τόσο τα streams εικόνας όσο και τα global streams πριν από την εγγενή ή εξωτερική αποκωδικοποίηση, απορρίπτει κακοδιατυπωμένες εξαρτήσεις και μη έγκυρη ενσωματωμένη οργάνωση εντός ρητών προϋπολογισμών τμημάτων, ακμών, βάθους, και συμβόλων, και εμποδίζει μη έγκυρα κοινόχρηστα dictionaries να εισέλθουν στην cache globals
Η παρτίδα κωδικοποίησης JBIG2 εκπαιδεύει πλέον σύμβολα σε ολόκληρο το σύνολο σελίδων μέσω του εξωτερικού static backend, μοιράζεται ένα κοινό global dictionary σε κάθε XObject εικόνας, συμπτύσσει ακριβώς διπλότυπες σελίδες, υποχωρεί στον εγγενή συσσωρευτή όταν επιτρέπεται, και δημοσιεύει τηλεμετρία backend, μεγέθους, συμβόλων, και προϋπολογισμού
Η απόδοση διανυσμάτων και εικόνων βασισμένη σε ICC εφαρμόζει πλήρη pipelines χρώματος πηγής, δοκιμής, εξόδου, και sRGB με επιλέξιμη πρόθεση απόδοσης και αντιστάθμιση μαύρου σημείου, ενώ μια ασφαλής για threads, οριοθετημένη LRU cache επαναχρησιμοποιεί μετασχηματισμούς μεταξύ στιγμιοτύπων εγγράφου και renderer
Η επανασυμπίεση φορτωμένων εικόνων και η υποδειγματοληψία αποτελεσματικού DPI διατηρούν βαθμονομημένους ορισμούς εξόδου, ενώ η ισοπέδωση διαφάνειας εκδίδει βαθμονομημένο RGB και διατηρεί τις σελίδες Separation ή DeviceN ως διανυσματικό περιεχόμενο αντί να απορρίπτει την ταυτότητα spot χρώματος
Οι φορτωμένες ενέργειες υπολογισμού και επικύρωσης AcroForm μπορούν να χρησιμοποιήσουν ένα οριοθετημένο, τυποποιημένο υποσύνολο εκφράσεων με boolean, αριθμούς, strings, null, undefined, arrays, τελεστές υπό συνθήκη και βραχυκύκλωσης, αιτιοκρατικές ημερομηνίες UTC, και επιτρεπόμενες βοηθητικές συναρτήσεις string, array, μετατροπής, και Math, ενώ μη υποστηριζόμενο ενεργό scripting αποτυγχάνει σε λειτουργία fail-closed χωρίς να ξεκινήσει μηχανή JavaScript
Οι προαιρετικές συνδέσεις QuickJS runtime εκτελούν ευρύτερο, ελεγχόμενο από την εφαρμογή JavaScript, είτε μέσω static αντικειμένων είτε μέσω ενός ABI-ανεξάρτητου bridge DLL σε Win32 και Win64, με ρυθμιζόμενα όρια μνήμης, στοίβας, script, χρόνου, και διακοπής, καθώς και ρητή σημασιολογία κατάστασης και ανάκαμψης
Το XFA form scripting επεκτείνει το οριοθετημένο FormCalc με λογική υπό συνθήκη, επαναλαμβανόμενους αριθμητικούς πίνακες, και επικυρωμένα callbacks στιγμιοτύπων, ενώ ένα ρητά ενεργοποιημένο sandbox QuickJS προσθέτει πλήρη ροή ελέγχου και εγγενή typed arrays χωρίς να εκθέτει αντικείμενα αρχείου, διεργασίας, browser, ή δικτύου· το διαδραστικό dynamic XFA runtime προσθέτει εστίαση ανεξάρτητη από τον host, επεξεργασία Unicode, hit testing, επικύρωση και υπολογισμό με επίγνωση στιγμιοτύπου, ατομική επαναφορά, και οριοθετημένο reflow χωρίς flattening
Το SanitiseLoadedDocument εφαρμόζει πολιτικές μόνο-JavaScript, ενεργού περιεχομένου, ή αυστηρές πολιτικές για μη έμπιστα έγγραφα σε φορτωμένα PDF, αφαιρεί μη προσβάσιμα αντικείμενα payload, συμπτύσσει τους ζωντανούς αριθμούς αντικειμένων, και επανεγγράφει με ασφάλεια επί τόπου μέσω ατομικής αντικατάστασης αρχείου
Τα ευρήματα preflight JSON, HTML, και τύπου veraPDF εκθέτουν σταθερά αναγνωριστικά κανόνων με namespace και δομημένες θέσεις PDF με λογική εμβέλεια, διαδρομή, κλειδί, και ακριβείς συντεταγμένες αντικειμένου, σελίδας, ή byte όταν είναι διαθέσιμες, ενώ η συμβατότητα κειμένου και CSV παραμένει αμετάβλητη
Οι επαναχρησιμοποιήσιμες πολιτικές επικύρωσης συνδυάζουν πλέον δομικό preflight με αυστηρές απαιτήσεις πρόσληψης ή απαιτήσεις WTPDF, εξάγουν κανονικά μεταδεδομένα δήλωσης και claim, εκτελούν διατεταγμένες παρτίδες αρχείων υπό οριοθετημένα όρια εργατών και ουράς, διατηρούν σφάλματα με επίγνωση πηγής, και προσφέρουν λειτουργίες inspect, add-missing, και synchronize για την επιδιόρθωση XMP ανεξάρτητα από τη δομική επιδιόρθωση PDF
Η πρόσληψη Factur-X και ZUGFeRD κάνει πλέον διασταύρωση του τύπου MIME του κύριου συνημμένου τιμολογίου και των ονομάτων FileSpec με τις καταχωρήσεις EmbeddedFiles και Catalog AF, εκθέτει τον αποκωδικοποιημένο τύπο MIME και το URI του namespace XMP, και απορρίπτει ασύμβατους τύπους εγγράφων XMP ή namespaces επέκτασης
Η ενσωματωμένη επικύρωση κανόνων επιχείρησης e-invoice εκτελεί όλους τους ελέγχους Schematron ειδικούς ανά προφίλ, με ελεγμένη συμβατότητα XPath 2, εξωτερικές βάσεις δεδομένων κωδικών, σταθερά αναγνωριστικά κανόνων, ρητά σφάλματα αξιολόγησης, ασφαλή ανάλυση XML, και συνολικές αποφάνσεις σε λειτουργία fail-closed
Η αρχειακή μετατροπή raster PDF/A-4 φορτωμένου εγγράφου ξαναχτίζει το ορατό περιεχόμενο σελίδων ως οριοθετημένες εικόνες sRGB σε ένα νεοεπικυρωμένο έγγραφο PDF/A-4, κανονικοποιώντας γραμματοσειρές, διαφάνεια, και βαμμένα χρώματα μέσω του αυστηρού εγγενή renderer· το file API στήνει και δημοσιεύει ατομικά το αποτέλεσμα, ενώ η αναφορά προσδιορίζει τις αφαιρεθείσες επισημειώσεις, φόρμες, και συνημμένα. Αυτή η opt-in οπτική διαδρομή αρχειοθέτησης απορρίπτει το αρχικό vector κείμενο, το αναζητήσιμο κείμενο, τις υπογραφές, και το διαδραστικό περιεχόμενο
Η έξοδος PDF 2.0 υποστηρίζει πλέον ταυτοποίηση και επικύρωση PDF/A-4, PDF/A-4e, PDF/A-4f, PDF/UA-2, PDF/X-6, PDF/X-6p, και PDF/X-6n, συμπεριλαμβανομένου XMP με επίγνωση αναθεωρήσεων που επιλύεται βάσει URI namespace, συναλλακτικής επιδιόρθωσης PDF/A-4 για ασφαλή κανονικοποίηση header, trailer, μεταδεδομένων, Catalog, και παρουσίασης με ακριβή rollback σε byte και διατηρημένο περιεχόμενο σελίδας, επιλέξιμων συνόλων κανόνων ISO 15930-9:2020 και PDF/X-6 με επιλυμένα errata, πραγματικών ελέγχων header και καναλιού ICC, output intents εγγράφου και σελίδας, πραγματικού χρώματος βαφής και overprint μέσω πινάκων περιεχομένου, ένθετων forms, μοτίβων tiling και shading, εικόνων, μασκών εικόνας, σκιάσεων, γλυφών Type 3, soft masks, και εμφανίσεων επισημειώσεων, κληρονομημένης κατάστασης γραφικών και διαφάνειας, συνδυασμένης σύνθεσης γεμίσματος-και-περιγράμματος, σχέσεων CIDFont και CMap, οριοθετημένης εργασίας αποκωδικοποιημένων byte και content-token, δομικών στοιχείων με επίγνωση namespace, ελέγχων μεταδεδομένων και string εγγράφου, optional content, φυσικής ιδιοκτησίας επισημειώσεων, σημασιολογίας φορμών, προορισμών δομής, περιγραμμάτων, ένθετων ετικετών σελίδων, δημιουργίας συσχετισμένων αρχείων, κληρονομημένων production page boxes, διαγνωστικών με επίγνωση ρήτρας και προέλευση συνόλου κανόνων, αυτόματης επικύρωσης γενιάς σε λειτουργία fail-closed, και συναλλακτικής επιδιόρθωσης PDF/UA-2 για namespaces, attributes, λίστες, πίνακες, Ruby, Warichu, προφορά, εναλλακτικό κείμενο, κληρονομικότητα γλώσσας, σειρά επικεφαλίδων, και ετικέτες Artifact
Οι tagged πίνακες PDF 2.0 λαμβάνουν οριοθετημένη επέκταση πλέγματος, ελέγχους τομής και ομάδας γραμμών, σύνδεση κεφαλίδας τοπική στον πίνακα, και ανίχνευση κύκλων, ενώ οι λίστες λαμβάνουν πλήρεις ελέγχους αρίθμησης και αλυσίδας συνέχειας· ακριβείς ακολουθίες Ruby και Warichu επιβάλλονται, και οι εφαρμογές μπορούν να γράψουν υποδείξεις προφοράς ανά στοιχείο ή διατεταγμένα ενσωματωμένα λεξικά PLS μέσω των SetStructurePronunciation και AddPronunciationLexicon
Ο κύκλος v2.119.32-51 πρόσθεσε shaping Αραβικών / Περσικών / Ουρντού στην πλευρά του παραγωγού (υποχρεωτικό ligature LAM-ALEF, 9 γράμματα Arabic Presentation Forms-A), μια πλήρη μηχανή αντικατάστασης OpenType GSUB που καλύπτει κάθε LookupType 1-8 με επιλογή Script / LangSys και closure του TTF subsetter για τις γλυφές αντικατάστασης, υποστήριξη container XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), μια οικογένεια triggers πεδίων φόρμας AcroForm /AA /K + /F + /V + /C, καταχώρηση γραμματοσειράς πολλαπλού Unicode /DR μέσω του RegisterAcroFormFont, setters attributes προσβασιμότητας στοιχείων δομής (/Lang / /E / /T) με μια τυποποιημένη απαρίθμηση δομικού τύπου του Πίνακα 333, και μια typed υπερφόρτωση του AddStructureElement, και ιδιότητες ακολουθίας marked-content στο BeginTaggedContent
Ο κύκλος v2.119.52-68 ολοκλήρωσε το αυτόματο pipeline shaping της Φάσης 8 και διεύρυνε την κάλυψη γραφικών συστημάτων: το Αραβικό Extended-A (συμπεριλαμβανομένου του Arabic Supplement U+0750-077F και του Arabic Extended-A U+08A0-08FF) και η Περσική / Ουρντού Form-B επεκτάθηκαν στον πλήρη πίνακα κλάσης σύνδεσης U+0672-06D5 συν 26 νέες αντιστοιχίσεις Forms-A, με post-pass folding για το LAM-ALEF, τα ζεύγη YEH-HAMZA + φωνήεν (8 ligatures στο U+FBEA-FBFB), το αυτόνομο ligature Allah (U+FDF2), και τη φράση Bismillah 22 codepoints (U+FDFD). Η νέα προαιρετική ιδιότητα ShapingFeatures + η απαρίθμηση THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) κάνει τον παραγωγό να εκδίδει αυτόματα αντικαταστάσεις rlig / liga / clig / rclt βασισμένες σε GSUB και ειδικές ανά γραμματοσειρά, με τα Latin Standard Ligatures (ff / fi / fl / ffi / ffl / ſt / st μέσω U+FB00-FB06) και την αναδιάταξη συλλαβών Devanagari Indic (Repha + pre-base I-matra) να ενσωματώνονται στο ίδιο pipeline. Νέες μέθοδοι δυνατότητας shaping για Συριακά (GetSyriacJoiningClass / GetSyriacPosition), Μογγολικά (GetMongolianJoiningClass / GetMongolianPosition), και Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) επιτρέπουν στους καλούντες να οδηγήσουν μη αραβικά πολύπλοκα γραφικά συστήματα μέσα από την ίδια μηχανή GSUB. Το GetCodepointAdvance εκθέτει το cached κλάσμα em /W για υπολογισμούς αναδίπλωσης, και τα AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID επιτρέπουν στον παραγωγό να εκδώσει οποιοδήποτε GID αντικατάστασης GSUB (σχήματα clusters Devanagari, στυλιστικές εναλλακτικές, ακολουθίες παραλλαγής CJK) μέσω codepoints Private-Use-Area με πλήρη ενσωμάτωση /CIDToGIDMap + /ToUnicode + /W. Ο σωρευτικός ToUnicode CMap διαθέτει πλέον 35 εγγραφές αντίστροφης αντιστοίχισης ligature (8 LAM-ALEF + 18 της οικογένειας YEH-HAMZA + 1 Allah + 1 Bismillah + 7 Λατινικά), ώστε η αντιγραφή / επικόλληση στον αναγνώστη-καταναλωτή να παράγει τα αρχικά codepoints. Οι σκελετοί τεκμηρίωσης για το ChangeLog διατίθενται πλέον σε 11 γλώσσες (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) με UI επιλογής γλώσσας· το όριο διατήρησης του ChangeLog αυξήθηκε από 250 σε 500 ενότητες έκδοσης
Ο κύκλος v2.152-v2.190 έχτισε μια πλήρη μηχανή τοποθέτησης OpenType GPOS και διεύρυνε την κάλυψη πολύπλοκων γραφικών συστημάτων. Οι προαιρετικές επιλογές shaping εφαρμόζουν πλέον το δικό της kerning της γραμματοσειράς (ζεύγους, συμφραζόμενο, και από δεξιά προς τα αριστερά), την τοποθέτηση combining-mark (mark-to-base, mark-to-mark, και mark-to-ligature ανά στοιχείο), τις αγκύρωσεις σύνδεσης cursive, και το κάθετο kerning για κάθετο κείμενο, όλα γραμμένα ως τυπικοί τελεστές κειμένου PDF, ώστε κάθε αναγνώστης να αποδίδει το ίδιο αποτέλεσμα. Το shaping στην πλευρά του παραγωγού καλύπτει πλέον Αραβικά (συμπεριλαμβανομένων των blocks Supplement, Extended-A, και Extended-B), Συριακά, Μογγολικά, N'Ko, Adlam, Hanifi Rohingya, στοίβαξη συμφώνων Θιβετιανής, Devanagari και τα υπόλοιπα Ινδικά γραφικά συστήματα μέσα από την αλυσίδα χαρακτηριστικών Indic της γραμματοσειράς, Ιαβανικά, σειρά σημαδιών Ταϊλανδικών και Λαοτιανών, σειρά φωνηέντων Εβραϊκών, Χμερ, Βιρμανικά, Tai Viet, και Meetei Mayek. Μια οικογένεια προαιρετικών χαρακτηριστικών τυπογραφίας OpenType - τυπικά, discretionary, και ιστορικά ligatures, μικρά κεφαλαία, ψηφία oldstyle / lining / proportional / tabular, εκθέτες, δείκτες, τακτικά αριθμητικά, κλάσματα, επιστημονικοί δείκτες, αριθμητές, παρονομαστές, στυλιστικές και συμφραζόμενες εναλλακτικές, τοπικές μορφές, μορφές με διάκριση πεζών-κεφαλαίων, μηδενικό με κάθετο, και κάθετες εναλλακτικές - μπορεί να εφαρμοστεί αυτόματα κατά την έξοδο κειμένου. Η αντιγραφή, η επικόλληση, και η αναζήτηση κειμένου ανακτούν τους αρχικούς χαρακτήρες σε ολόκληρη τη διαμορφωμένη έξοδο, συμπεριλαμβανομένων ligatures και αλυσιδωτών αντικαταστάσεων χαρακτηριστικών. Η έξοδος γραμματοσειρών έγινε επίσης μικρότερη: τα ενσωματωμένα προγράμματα γραμματοσειράς είναι πάντα συμπιεσμένα με Flate, μια γραμματοσειρά που χρησιμοποιείται σε πολλές σελίδες ενσωματώνεται μία φορά ανά έγγραφο, τα subset tags προέρχονται αιτιοκρατικά για αναπαραγώγιμη έξοδο, και μια προαιρετική compact λειτουργία γράφει απλό κείμενο ASCII με τυπικές γραμματοσειρές ως μη ενσωματωμένο κείμενο WinAnsi