Δυνατότητες του PDFium VCL Component
Βασικά στοιχεία
- TPdf - Κύριο στοιχείο διαχείρισης εγγράφων PDF για άνοιγμα, πλοήγηση, εξαγωγή κειμένου και επεξεργασία εγγράφων PDF
- TPdfView - Οπτικό στοιχείο για προβολή και αλληλεπίδραση με σελίδες PDF
- TPdfReadingSession - Στοιχείο ενορχήστρωσης φωναχτής ανάγνωσης για τις μηχανές TTS του host και την παρακολούθηση λέξεων του TPdfView
- TPdfThumbnailView - Κυλιόμενο πλευρικό πάνελ μικρογραφιών για πλοήγηση σελίδων
Λειτουργίες εγγράφων
- Φόρτωση εγγράφων - Φορτώνει αρχεία PDF από δίσκο, ροές μνήμης, πίνακες bytes ή προσαρμογείς TStream κατ' απαίτηση μέσω
LoadCustomDocument. Το PDFium διαβάζει μπλοκ κατ' απαίτηση, έτσι τα έγγραφα πολλών GB και οι απομακρυσμένες ή βάσεις δεδομένων πηγές δεν χρειάζονται αρχικό αντίγραφο στη μνήμη - Προστασία κωδικού πρόσβασης - Ανοίγει PDF με προστασία κωδικού πρόσβασης και αναφέρει τα πραγματικά
UserPermissionsγια την πιστοποιημένη συνεδρία - Δημιουργία εγγράφων - Δημιουργεί νέα PDF από το μηδέν με
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageκαιCreatePath - Αποθήκευση εγγράφων - Αποθηκεύει τροποποιημένα έγγραφα με διάφορες επιλογές, όπως incremental και remove security, καθώς και ρητές εκδόσεις στόχου από PDF 1.0 έως PDF 1.7
- Έξοδος PDF/A-1b - Το
SaveAsPdfA/SaveAsPdfAToStreamεπεξεργάζεται εκ των υστέρων την βασική αποθήκευση με μια incremental ενημέρωση που εισάγει ροή μεταδεδομένων XMP, sRGB ICC OutputIntent και ενημερωμένο document catalog, ώστε το αποτέλεσμα να είναι σύμφωνο με PDF/A-1b. Προσαρμοσμένα ICC προφίλ υποστηρίζονται μέσω τουTPdfASaveOptions.IccProfileData - Επαλήθευση PDF/A - Το
ValidatePdfAκαι η μόνο για ανάγνωση ιδιότηταPdfAConformanceσαρώνουν ανοιχτό έγγραφο για δείκτες XMPpdfaid, OutputIntent με ενσωματωμένο ICC, παρουσία κρυπτογράφησης και αναφέρουν το επίπεδο συμμόρφωσης (pac1a,pac1b,pac2b,pac3b,pacNoneήpacUnknown) μαζί με λίστα απόTPdfAValidationIssueεγγραφές που περιγράφουν κάθε πρόβλημα - Ελεγκτής συμμόρφωσης εκδόσεων PDF - Όταν το SaveAs στοχεύει PDF 1.0 έως PDF 1.7, ο writer απορρίπτει οποιοδήποτε dictionary entry, filter, annotation subtype, action type, font, color space ή encryption parameter που εισήχθη μετά την επιλεγμένη έκδοση στόχου, όπως JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, Polygon / Caret / Watermark / Redact annotations, JavaScript / Trans / SetState actions
- Συμπίεση ροών - Η αυτόματη συμπίεση FlateDecode εξασφαλίζει ότι όλα τα PDF streams συμπιέζονται βέλτιστα κατά την αποθήκευση, ενώ μπορείτε να ορίσετε
Compressed := Falseγια να την απενεργοποιήσετε σε debug pipelines - Συγχώνευση εγγράφων - Εισάγει σελίδες από άλλα PDF έγγραφα
- Εισαγωγή υποσυνόλου σελίδων - Το
ImportPagesByIndexαντιγράφει ρητό zero-based πίνακα δεικτών από έγγραφο προέλευσης, με InsertAt = 0 για εισαγωγή πριν από την πρώτη σελίδα ή InsertAt = PageCount για προσθήκη στο τέλος. Δώστε κενό πίνακα δεικτών για να εισαχθούν όλες οι σελίδες της πηγής - Σύνθεση N-up - Το
ImportNPagesToOneεπιστρέφει ολοκαίνουργιοTPdfτου οποίου οι σελίδες είναι συνθέσεις NumX×NumY των σελίδων του εγγράφου προέλευσης, σε μέγεθος PDF user units, όπου 1 unit = 1/72 in - Αναδιάταξη σελίδων - Το
MovePagesαναδιατάσσει σελίδες επιτόπου με zero-based πίνακα δεικτών και δείκτη προορισμού για την πρώτη μετακινούμενη σελίδα - Επαναχρησιμοποίηση σελίδας Form XObject - Το
CreateXObjectFromPageδημιουργεί επαναχρησιμοποιήσιμοTPdfXObjecthandle από οποιαδήποτε σελίδα άλλου εγγράφου, ενώ τοInsertFormObjectFromXObjectεισάγει ένα αντίγραφο της wrapped σελίδας στην τρέχουσα σελίδα. Ιδανικό για υδατογραφήματα, επικάλυψη προτύπων και ροές "σφράγισε μία σελίδα πάνω σε πολλές". Το αντικείμενο σελίδας προορισμού μπορεί να τοποθετηθεί, να κλιμακωθεί και να περιστραφεί μέσω τουFPDFPageObj_SetMatrixκαι των βοηθώνTPdfMatrix - Διαχείριση σελίδων - Προσθέτει, διαγράφει και χειρίζεται μεμονωμένες σελίδες, ενώ το
AddPage(0, ...)εισάγει την πρώτη σελίδα και την ενεργοποιεί αμέσως - Πλαίσια σελίδας - Διαβάζει και γράφει MediaBox, CropBox, BleedBox, TrimBox και ArtBox στην τρέχουσα σελίδα
- Γλώσσα καταλόγου - Διαβάζει και γράφει τη γλώσσα του εγγράφου που είναι αποθηκευμένη στο catalog /Lang entry
- Αναγνωριστικά trailer - Διαβάζει μόνιμα και μεταβαλλόμενα trailer /ID entries ως δυαδικά bytes
- Ενέργειες JavaScript εγγράφου - Απαριθμεί ονόματα και scripts των document-level JavaScript name-tree actions
- Δέντρο δομής Tagged PDF - Εξετάζει λογικά δομικά στοιχεία, κείμενο προσβασιμότητας, γλώσσα, marked-content IDs και ιεραρχία για σελίδες tagged PDF
- Προτιμήσεις προβολής - Διαβάζει
PrintCopies,PrintPageRanges,PrintScalingκαιPrintPaperHandlingαπό το viewer-preference dictionary του εγγράφου, ενώ τα αποθηκευμένα PDF χρησιμοποιούν από προεπιλογή ενέργεια ανοίγματος Fit Height για την πρώτη σελίδα
Λειτουργίες κειμένου
- Εξαγωγή κειμένου - Εξάγει κείμενο από PDF σελίδες με ακρίβεια χαρακτήρα μέσω των
Text,TextInRectangle, και των indexed ιδιοτήτωνCharacter,CharacterRectangleκαιCharacterOrigin - Μονάδες ανάγνωσης επιπέδου πρότασης - Οι TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits και BuildReadingUnits εκθέτουν TPdfReadingUnit εγγραφές μεγέθους πρότασης για συγχρονισμένο listen-reading με TTS
- Επισήμανση ανάγνωσης επιπέδου λέξης - Οι
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColorκαιReadingWordFollowαντιστοιχούν offset χαρακτήρα σελίδας στο περιέχον TPdfWordBox, το επισημαίνουν και επιστρέφουν το index λέξης, επισημαίνουν ένα TPdfWordBox ως τρέχουσα προφορική λέξη στο TPdfView, καθαρίζουν το τρέχον overlay δρομέα ανάγνωσης λέξης στο TPdfView, ελέγχουν το χρώμα overlay που χρησιμοποιείται για τον τρέχοντα δρομέα ανάγνωσης λέξης και ελέγχουν αν το TPdfView μεταφέρει την τρέχουσα προφορική λέξη μέσα στο οπτικό πεδίο κατά την παρακολούθηση ανάγνωσης - Ενορχήστρωση φωναχτής ανάγνωσης - Οι
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharκαιEstimateSpokenWordIndexσυντονίζουν host TTS engines, spoken chunks, callbacks θέσης λέξεων, εκτιμώμενο ρυθμό, χειρισμό παύσης/συνέχισης και ενημερώσεις δρομέα λέξης του TPdfView - Αναζήτηση κειμένου - Βρίσκει κείμενο με επιλογές case-sensitive, whole word και consecutive search χρησιμοποιώντας τα
FindFirst,FindNext,FindPrevious - Επικάλυψη επισήμανσης αναζήτησης - Το
TPdfView.HighlightSearchTextσαρώνει την τρέχουσα σελίδα προβολής και ζωγραφίζει πραγματικό alpha-blendedHighlightColoroverlay πάνω από κάθε αντιστοίχιση σε κάθε redraw, επιστρέφοντας τον αριθμό αντιστοιχιών. ΤοClearHighlightαφαιρεί το overlay, ενώ η πλοήγηση σε άλλη σελίδα το καθαρίζει αυτόματα επειδή οι αντιστοιχίσεις είναι ανά σελίδα. ΤοHighlightColorέχει προεπιλογήclYellowκαι είναι published ώστε οι εφαρμογές να μπορούν να το θεματοποιούν - Ιδιότητες χαρακτήρων - Προσπελάζει μέγεθος γραμματοσειράς, βάρος, γωνία και τοποθέτηση για μεμονωμένους χαρακτήρες μέσω των indexed ιδιοτήτων
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenκαιCharacterMapError - Υποστήριξη ευρωπαϊκών χαρακτήρων - Το
AddTextφορτώνει και αποθηκεύει αυτόματα την αντίστοιχη system TrueType γραμματοσειρά πριν δημιουργήσει text object, έτσι οι τονισμένοι χαρακτήρες Czech, French, German, Spanish, Portuguese, Polish και Turkish που οι built-in standard fonts του PDFium δεν μπορούν να αποδώσουν εμφανίζονται σωστά χωρίς καμία αλλαγή κώδικα - Προσθήκη κειμένου - Προσθέτει νέο κείμενο σε PDF σελίδες με προσαρμοσμένες γραμματοσειρές, χρώματα, διαφάνεια και περιστροφή
- Τοποθέτηση αντικειμένου κειμένου - Ορίζει θέσεις ανά χαρακτήρα για υπάρχοντα text objects μέσω των
SetTextPositionsκαιTPdfSingleArray - Πληροφορίες γραμματοσειράς - Ανακτά ιδιότητες γραμματοσειράς, όπως family name, κατάσταση ενσωμάτωσης, italic angle, ascent / descent και ακατέργαστα δεδομένα γραμματοσειράς ανά page object
Υποστήριξη σχολιασμών
- Τύποι σχολιασμών - Υποστήριξη για text, link, highlight, underline, strikeout και πολλούς άλλους τύπους σχολιασμών
- Δημιουργία σχολιασμών - Δημιουργεί νέους σχολιασμούς προγραμματιστικά
- Επεξεργασία σχολιασμών - Τροποποιεί υπάρχουσες ιδιότητες σχολιασμών, όπως χρώμα, διαφάνεια και περιεχόμενο
- Σχολιασμοί συνδέσμων - Χειρίζεται εσωτερικούς και εξωτερικούς συνδέσμους με υποστήριξη ενεργειών
Υποστήριξη φορμών
- Προσπελάσεις συμπλήρωσης φόρμας με φωνή - Τα FocusedFormFieldValue, FocusedFormFieldName και FocusedFormFieldDetails σε TPdf και TPdfView εκθέτουν την τρέχουσα λογική τιμή πεδίου φόρμας, το όνομα και το TPdfFormFieldInfo για συμπλήρωση φόρμας από πληκτρολόγιο ή φωνή
- Τύποι φορμών - Υποστήριξη για AcroForm και XFA forms
- Συμπλήρωση φόρμας - Διαδραστική συμπλήρωση φορμών με υποστήριξη JavaScript
- Επιλογή V8 DLL - Ορίστε το
EnableV8Engineπριν από τη φόρτωση για να χρησιμοποιήσετε τοpdfium.v8.dllαπό τον αντίστοιχο φάκελοDLLs\Win32ήDLLs\Win64και να ελέγξετε τη διαθεσιμότητα βοηθητικών V8/XFA δυνατοτήτων μέσω τωνV8FeaturesAvailable,XfaBStrHelpersAvailableκαιGetRecommendedV8Flags - Πρόσβαση πεδίων - Διαβάζει και γράφει τιμές πεδίων φόρμας ανά index ή θέση
- Πληροφορίες πεδίου - Προσπελάζει τύπο πεδίου, flags, όνομα και άλλες ιδιότητες
- Σημαίες πεδίου - Ενημερώνει AcroForm field flags ανά index ή θέση μέσω των
SetFormFieldFlags/SetFormFieldFlagsAt, συμπεριλαμβανομένων read-only, required, password και multi-select flags - Εξομάλυνση φορμών - Το
GenerateFormAppearancesαναδημιουργεί το /AP appearance stream για κάθε form widget σε κάθε σελίδα και ταFlattenPage/FlattenAllPagesενσωματώνουν annotations και form fields σε στατικό περιεχόμενο σελίδας, χωρίς δυνατότητα επεξεργασίας - Επιλογή κειμένου widget φόρμας και Undo / Redo - Στο εστιασμένο AcroForm widget το view εκθέτει τα
GetSelectedFormText(τρέχον επιλεγμένο κείμενο),SelectAllFormText(επιλογή κάθε χαρακτήρα) καιFormUndo/FormRedo/FormCanUndo/FormCanRedoγια το edit history ανά widget του PDFium. Και τα έξι τερματίζουν με ασφάλεια όταν το view δεν είναι ενεργό ή δεν υπάρχει εστιασμένο widget
Λειτουργίες εικόνων
- Εξαγωγή εικόνων - Εξάγει bitmaps από PDF σελίδες με την indexed ιδιότητα
Bitmap, ενώ μπορείτε να επαναλάβετε τοBitmapCountγια να αποθηκεύσετε κάθε εικόνα στον δίσκο - Εισαγωγή JPEG - Το
AddJpegImageδέχεται TStream ακατέργαστων bytes JPEG και ενσωματώνει την εικόνα ως /DCTDecode XObject χωρίς επανακωδικοποίηση - Υποστήριξη Picture - Το
AddPictureδέχεται αντικείμενοTPictureμε αυτόματη μετατροπή μορφής μέσω των καταχωρισμένων VCL/LCL graphic classes - Άμεση εισαγωγή εικόνας - Το
AddImage(FileName)αναγνωρίζει κάθε μορφή που είναι καταχωρισμένη στα VCL ή LCL graphics units, όπως BMP, PNG μέσω PngImage, JPG και άλλα, και μοιράζεται το AddPicture pipeline. ΤοAddImage(TBitmap)παραλείπει τον ενδιάμεσο TPicture, κάτι που απλοποιεί τους καλούντες που ήδη κρατούν TBitmap από απόδοση ή μαζική παραγωγή - ICC προφίλ εικόνας - Τα image page objects εκθέτουν τα ενσωματωμένα δεδομένα ICC profile όταν υπάρχουν, μέσω binding για το
FPDFImageObj_GetIccProfileDataDecoded - Δημιουργία μικρογραφιών - Δημιουργεί bitmaps μικρογραφιών της τρέχουσας σελίδας μέσω της ιδιότητας
Thumbnailή αποδίδει οποιαδήποτε one-based σελίδα μέσω τουTPdf.RenderPageThumbnailχωρίς να αλλάζει τοPageNumber
Βοηθητικές μονάδες
- Υποδομή async - Το
FPdfAsyncεκθέτει ταIPdfCancellationToken/IPdfCancellationTokenSourceγια συνεργατική ακύρωση από το UI, ένα επαναχρησιμοποιήσιμο singletonPdfNoCancellationTokenκαι έναν ελαφρύ βοηθόTPdfFuture<T>που εκτελεί worker σε background thread και επιστρέφει ένα envelopeTPdfFutureResult<T>στο main thread, διακρίνοντας επιτυχία, ακύρωση και αποτυχία - Προσαρμογέας ροής - Ο
TPdfStreamAdapterγεφυρώνει ένα PascalTStreamμε ταFPDF_FILEACCESScallbacks του PDFium, ώστε τοLoadCustomDocumentνα διαβάζει μπλοκ κατ' απαίτηση αντί να αποθηκεύει ολόκληρο το PDF στη μνήμη - Σύνθεση matrix - Ο
FPdfMatrixτυλίγει τοFS_MATRIXτου PDFium σε OO API μεTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewκαιMultiply. ΤοMultiplyαποθηκεύει πρώτα στιγμιότυπο και των έξι στοιχείων του matrix πριν υπολογίσει τη νέα γραμμή τιμών, ώστε να αποφεύγεται η παγίδα όπου ορισμένες εναλλακτικές Pascal υλοποιήσεις αντικαθιστούν νωρίτερα στοιχεία μέσα στην ίδια κλήση και παράγουν λάθος σύνθεση - Προοδευτική απόδοση με ακύρωση - Το
TPdf.RenderPageProgressiveοδηγεί τον βρόχοFPDF_RenderPageBitmap_Start+RenderPage_Continueτου PDFium και ανάμεσα στις επαναλήψεις ελέγχει μέσω τουIFSDK_PAUSEcallback τοIPdfCancellationToken, ώστε η απόδοση υψηλού DPI να μπορεί να ακυρωθεί στη μέση χωρίς να μπλοκάρει τον καλούντα μέχρι το τέλος. ΕπιστρέφειTPdfProgressiveStatus:prsDone,prsCancelledήprsFailed - Διαδρομή απόδοσης χωρίς αντιγραφή - Τα
RenderPage/RenderTile/RenderPageProgressiveγράφουν το output του PDFium απευθείας στο DIB buffer του στόχουTBitmapαντί να περνούν από ενδιάμεσο buffer, εξοικονομώντας ένα memory copy μεγέθους width × height × 4 bytes σε κάθε απόδοση. Αυτό φαίνεται περισσότερο σε σενάρια υψηλού DPI, όπως πάνελ μικρογραφιών, εξαγωγή ποιότητας εκτύπωσης και batch export. Αν το destination DIB δεν μπορεί να τυλιχθεί με ασφάλεια, παραμένει η fallback διαδρομή ανά scanline - Μετασχηματισμοί bitmap για χαμηλή όραση - Τα InvertPdfBitmap, GrayscalePdfBitmap και DuotonePdfBitmap μετασχηματίζουν επιτόπου τα 32-bit TBitmap pixels που έχουν αποδοθεί για inverted, grayscale ή two-colour low-vision προβολές
- Ζωντανή προβολή χαμηλής όρασης - Το
TPdfView.Optionsυποστηρίζει ταreInvertκαιreNightDuotone, με ταNightDuotoneInkκαιNightDuotonePaperνα ελέγχουν τη ζωντανή νυχτερινή παλέτα πριν ζωγραφιστούν τα overlays
Λειτουργίες σχεδίασης
- Σχεδίαση διαδρομών - Δημιουργεί διαδρομές με γραμμές, καμπύλες Bezier και κλειστά σχήματα
- Αφαίρεση αντικειμένων - Αφαιρεί page objects και αναδημιουργεί το περιεχόμενο σελίδας από TPdf ή TPdfView
- Γέμισμα και περίγραμμα - Ρυθμίζει mode γεμίσματος, χρώματα, διαφάνεια και ιδιότητες stroke
- Καθεστώτα μίξης - Υποστήριξη για διάφορα PDF blend modes
- Στυλ γραμμής - Ρυθμίζει line cap, line join και stroke width
Ψηφιακές υπογραφές
- Ανίχνευση υπογραφών - Ανιχνεύει και απαριθμεί ψηφιακές υπογραφές σε PDF έγγραφα
- Πληροφορίες υπογραφής - Προσπελάζει το περιεχόμενο της υπογραφής, το byte range, το sub-filter, τον λόγο και τον χρόνο
- Δικαιώματα MDP - Ερωτά δικαιώματα ανίχνευσης και αποτροπής τροποποίησης εγγράφου
Υποστήριξη συνημμένων
- Πρόσβαση συνημμένων - Διαβάζει, δημιουργεί, τροποποιεί και διαγράφει ενσωματωμένα συνημμένα αρχεία
- Ονόματα συνημμένων - Προσπελάζει τα ονόματα αρχείων των συνημμένων
- Τύποι συνημμένων - Διαβάζει τιμές MIME subtype για ενσωματωμένα αρχεία όταν υπάρχουν
- Σελιδοδείκτες - Πλοηγείται στους σελιδοδείκτες του εγγράφου με ιεραρχική υποστήριξη μέσω των βοηθών διέλευσης
Bookmarks,BookmarkChildren,HasBookmarkChildrenκαιBookmarkFrom - Ονοματισμένοι προορισμοί - Προσπελάζει ονοματισμένους προορισμούς ανά index ή όνομα μέσω των
Destination,DestinationByNameκαιDestinationCount - Ετικέτες σελίδων - Ανακτά ετικέτες σελίδων για κάθε σελίδα μέσω του
PageLabel, χρήσιμο όταν τα έγγραφα χρησιμοποιούν ρωμαϊκούς αριθμούς για τα προλεγόμενα - Web σύνδεσμοι - Ανιχνεύει και πλοηγείται σε web links στις σελίδες με τα
WebLink,WebLinkCountκαιTPdfView.WebLinkAtPos - Σχολιασμοί συνδέσμων - Προσπελάζει link annotations με πληροφορίες ενέργειας και προορισμού μέσω των
LinkAnnotation,LinkAnnotationCountκαιTPdfView.LinkAnnotationAtPos - Ασφαλής χειρισμός κλικ συνδέσμου - Το TPdfView εγείρει τα events
OnAnnotationLinkClick/OnWebLinkClickπριν από οποιονδήποτε αυτόματο χειρισμό goto / URI, με τις actions εκκίνησης απενεργοποιημένες από προεπιλογή. Η ανίχνευση click συνδέσμου εκτελείται μόνο όταν η χειρονομία είναι click και όχι drag, χρησιμοποιώντας φρέσκο MouseDown anchor ώστε οι χειρονομίες μετακίνησης να συνεχίζουν να περνούν από την υπάρχουσα διαδρομή κύλισης χωρίς αλλαγή
Απόδοση
- Απόδοση υψηλής ποιότητας - Αποδίδει σελίδες σε device context, bitmap ή tile μέσω των
RenderPage/RenderTile, με zero-copy άμεση εγγραφή στο buffer DIB του προορισμού - Προοδευτική απόδοση με ακύρωση - Το
RenderPageProgressiveοδηγεί τον progressive βρόχο του PDFium και ελέγχει έναIPdfCancellationTokenανάμεσα στις επαναλήψεις, επιστρέφονταςprsDone,prsCancelledήprsFailed. Το bitmap διατηρεί το ενδιάμεσο έργο που έχει γίνει έως τη στιγμή της ακύρωσης - Επιλογές απόδοσης - Βελτιστοποίηση LCD text (
reLcd), annotations (reAnnotations), grayscale και flags λειτουργίας εκτύπωσης - Hooks Skia - Διατίθενται low-level bindings για τα
FPDF_RenderPageSkiaκαιFPDF_FFLDrawSkiaόταν ο καλών παρέχει εξωτερικό SkCanvas, ανάλογα με τα exports των bundled DLL - Επιλογή λειτουργίας εκτύπωσης - Ορίζει λειτουργίες εκτύπωσης PDFium για EMF, text-only, PostScript, pass-through, image-mask και Type 42 μέσω του
SetPdfPrintModeμεTPdfPrintMode - Ασύγχρονη επικάλυψη - Το TPdfView μπορεί να εμφανίσει προαιρετικό loading overlay ενώ workers που ανήκουν στην εφαρμογή αποδίδουν με ξεχωριστά TPdf instances
- Περιστροφή σελίδας - Υποστηρίζει περιστροφή 0, 90, 180 και 270 μοιρών (
ro0,ro90,ro180,ro270) - Ανίχνευση διαφάνειας - Η ιδιότητα
Transparentαναφέρει αν κάποιο αντικείμενο στην τρέχουσα σελίδα έχει διαφάνεια, συμπεριλαμβανομένων blend modes και μερικού alpha
Προβολή (TPdfView)
- Λειτουργίες εμφάνισης -
dmSingleContinuous,dmTwoPageContinuousκαιdmTwoPageContinuousWithCover, όπου η σελίδα εξωφύλλου στέκεται μόνη της και μετά συνεχίζει σε spreads δύο σελίδων. Ο βοηθός επιπέδου μονάδαςComputeSpreadPagesεκθέτει τα μαθηματικά των spread pages χωρίς να χρειάζεται να δημιουργηθεί viewer - Λειτουργία προσαρμογής - Το
FitModeεπιλέγει πώς κάθεται η σελίδα στο viewport:pfmNoneγια manual zoom,pfmActualSizeγια 100%,pfmFitPageγια να χωράει ολόκληρη η σελίδα καιpfmFitWidthγια ταίριασμα του πλάτους σελίδας με το πλάτος του viewport. Το ενεργό fit mode εφαρμόζεται ξανά αυτόματα στο Resize και όταν αλλάζει η τρέχουσα σελίδα, ενώ η άμεση ρύθμιση του Zoom ακυρώνει το ενεργό fit mode και το FitMode επιστρέφει σεpfmNone, όπως περιμένει κανείς από έναν κλασικό PDF viewer - Έλεγχος ζουμ - Μεταβλητό zoom με τους βοηθούς ανά σελίδα
PageZoom,PageWidthZoom,PageHeightZoomκαιActualSizeZoom - Χρώμα σελίδας - Το
PageColorαποσυνδέει το φόντο της αποδομένης PDF σελίδας από τοColorτου γειτονικού control. Η προεπιλογή είναιclWhite, έτσι οι PDF σελίδες αποδίδονται ως paper-white ανεξάρτητα από το θέμα της host εφαρμογής. Οι dark-mode viewers μπορούν να κρατούν τη ζώνη κύλισης σκοτεινή και να αφήνουν την ίδια την PDF σελίδα λευκή ή σε όποιο χρώμα επιλέξει η εφαρμογή - Διαδραστική επιλογή κειμένου - Ο τελικός χρήστης μπορεί να σύρει για επιλογή κειμένου σε PDF σελίδες, με hit-test που αλλάζει αυτόματα μεταξύ επιλογής και μετακίνησης: κλικ σε χαρακτήρα ξεκινά drag επιλογής, κλικ σε κενό κάνει pan. Διπλό κλικ επιλέγει τη λέξη, τριπλό κλικ τη γραμμή, το
Ctrl+Aεπιλέγει τη σελίδα ή και τις δύο σελίδες σε spread mode, τοCtrl+Cαντιγράφει ωςCF_UNICODETEXT, ταShift+arrowsεπεκτείνουν την επιλογή, το hover πάνω από κείμενο αλλάζει τον κέρσορα σεcrIBeamκαι η μεταφορά προς τα άκρα του viewer κάνει auto-scroll της σελίδας. Νέα publishedSelectionColorκαιOnSelectionChange, νέα publicHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Τα spread display modes επιλέγουν και τις δύο ορατές σελίδες με σύνδεση CR/LF. Ένα προεπιλεγμένο δεξί κλικ Copy popup προστίθεται αυτόματα όταν ο host δεν έχει ορίσει δικό τουPopupMenu. Ελέγχεται από το v1.17.0 flagAllowUserTextSelectionγια kiosk hosts - Αντιστοίχιση συντεταγμένων - Μετατρέπει μεταξύ viewer device coordinates και PDF page coordinates με τα
DeviceToPage/PageToDevice, συμπεριλαμβανομένων overloads που παίρνουνTRectκαι επιστρέφουνTPdfRectangle - Επιλογή κειμένου και hit testing - Λύνει χαρακτήρες κάτω από σημεία του viewer με το
CharacterIndexAtPosκαι ζωγραφίζει text selection highlights μέσω τουPaintSelection - Ποντίκι και πληκτρολόγιο - Πλήρης υποστήριξη συσκευών εισόδου με κύλιση μέσω drag, συντομεύσεις PgUp / PgDn / Ctrl+Home / Ctrl+End και πλοήγηση σελίδας με wheel up / wheel down. Το Ctrl+wheel προορίζεται για zoom της εφαρμογής και παραλείπεται από τον χειριστή πλοήγησης
- Κλείδωμα εισόδου χρήστη - Το
AllowUserPageChangeελέγχει τις συντομεύσεις σελίδας του πληκτρολογίου, τοChangePageOnMouseScrollingελέγχει τα wheel page jumps και τοAllowUserTextSelectionελέγχει την είσοδο επιλογής κειμένου με mouse / keyboard. Και τα τρία έχουν προεπιλογή True, αλλά μπορείτε να τα κάνετε False για kiosks, preview panes ή read-only embeddings χωρίς subclassing - Ασύγχρονη επικάλυψη απόδοσης - Τα
AsyncRendering,LoadingTextκαιLoadingColorζωγραφίζουν έναν μικρό δείκτη "Loading..." πάνω από τη σελίδα που αποδίδεται, ώστε οι εφαρμογές που χρησιμοποιούν δικούς τους workers για μακριές αποδόσεις να μοιράζονται συνεπή οπτική ένδειξη. Οι προεπιλογές διατηρούν τη συμπεριφορά που υπήρχε. ΤοTPdfπλέον σειριοποιεί ανά instance τις κλήσεις render και page-unload, ενώ οι εφαρμογές παραμένουν υπεύθυνες για το worker dispatch και πρέπει να αποφεύγουν την τροποποίηση του εγγράφου όσο ένα render είναι σε εξέλιξη - Ασφαλής χειρισμός κλικ συνδέσμου - Το
LinkOptionsείναι published set που ελέγχει την αυτόματη συμπεριφορά για τους τέσσερις τύπους ενεργειών PDF συνδέσμων:loAutoGotoγια jump σε σελίδα,loAutoOpenURIκαιloAutoLaunchγια ShellExecute, καιloAutoEmbeddedGotoως reserved. Από προεπιλογή ενεργοποιούνται μόνο ταloAutoGotoκαιloAutoOpenURI, ενώ ταloAutoLaunchκαιloAutoEmbeddedGotoμένουν κλειστά ώστε ένα τυχαίο κλικ να μην μπορεί να εκτελέσει αυθαίρετο πρόγραμμα. ΤαOnAnnotationLinkClickκαιOnWebLinkClickενεργοποιούνται πριν από οποιαδήποτε αυτόματη ενέργεια και επιτρέπουν στην εφαρμογή να σημειώσει το event ως Handled ή να το ανακατευθύνει - Αλληλεπίδραση φόρμας - Διαδραστική επεξεργασία φορμών μέσα στο viewer, μαζί με τους βοηθούς επιλογής / Undo / Redo της v1.23.0
- Οπτικό στυλ - Τα
PageShadowSize,PageShadowColorκαιPageBorderColorζωγραφίζουν προαιρετική σκιά κάτω από το page rectangle και περίγραμμα ενός pixel γύρω του, ενώ τοSmoothScrollπλέον animates τα line/page scrollbar commands σε τμήματα που καθοδηγούνται από timer και το thumb tracking παραμένει άμεσο - Πλοήγηση μικρογραφιών - Το
TPdfThumbnailView(unitFPdfThumbnail) αποδίδει μία μικρογραφία σελίδας ανά γραμμή σε κυλιόμενο πλευρικό πάνελ με hover και selection highlighting και πλοήγηση με κλικ. Σχεδιασμένο να στέκεται δίπλα σε ένα TPdfView. Ιδιότητες:Pdf,CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor, event:OnPageClick
Συμπίεση
- Αυτόματη συμπίεση - Όταν η ιδιότητα
Compressedείναι True, δηλαδή από προεπιλογή, όλα τα PDF streams διασφαλίζεται ότι θα είναι FlateDecode compressed κατά την αποθήκευση - Μετα-επεξεργασία - Η μηχανή συμπίεσης σαρώνει τα αποθηκευμένα PDF δεδομένα και συμπιέζει όσα streams δεν είναι ήδη συμπιεσμένα με zlib μέγιστης συμπίεσης
- Ανακατασκευή cross-reference - Αναδομεί αυτόματα τον xref πίνακα όταν η συμπίεση των stream αλλάζει τα byte offsets
- Μηδενικό κόστος - Αν όλα τα streams είναι ήδη συμπιεσμένα, τα δεδομένα περνούν χωρίς τροποποίηση
Ασφάλεια
- Υποστήριξη κωδικού - Ανοίγει PDF έγγραφα με προστασία κωδικού πρόσβασης
- Δικαιώματα - Διαβάζει δικαιώματα εγγράφου και χρήστη, ενώ το demo
SecurityAuditσυνδυάζει permissions, attachments, document JavaScript, URI / Launch links, signatures, XFA και V8 availability σε ένα read-only risk surface με αποθήκευση αναφοράς TXT / JSON και ενέργειες αντιγραφής TXT - Αφαίρεση ασφάλειας - Αποθηκεύει έγγραφα με την ασφάλεια αφαιρεμένη, όταν υπάρχει εξουσιοδότηση
Εκτύπωση
- Λειτουργίες εκτύπωσης - Επιλέγει μεταξύ EMF, text-only, PostScript Level 2 / 3, PostScript pass-through, EMF image-mask και Type 42 modes μέσω της global συνάρτησης
SetPdfPrintMode - Προτιμήσεις προβολής - Προβάλλει την πρόθεση του συντάκτη του εγγράφου μέσω των
PrintCopies,PrintPageRangesγια one-based page ranges,PrintScalingκαιPrintPaperHandling, ενώ τοSetPdfPrintPaperHandlingDevModeχαρτογραφεί το duplex hint στο WindowsDEVMODE.dmDuplex - Εκτύπωση N-up - Τα demos
PrintPreferencesσε Delphi, C++Builder και Lazarus δείχνουν N-up sheet composition, δηλαδή 1 / 2 / 4 / 9 σελίδες ανά φύλλο, με φιλτράρισμα μονών / ζυγών σελίδων, grayscale rendering, προαιρετικά πλαίσια κελιών ενός pixel, PDF author print preferences και αντιστοίχιση duplex intent μέσω τουSetPdfPrintPaperHandlingDevMode
Παρεχόμενα demos
Τα δέντρα Demo\Delphi, Demo\CBuilder και Demo\Lazarus περιλαμβάνουν εκτελέσιμα sample projects που δοκιμάζουν το ζωντανό API surface και στις τρεις οικογένειες IDE. Κύρια σημεία
- PDFViewer / MultiPageViewer / SplitView - End-to-end χρήση του TPdfView, με φόρτωση, πλοήγηση, zoom, περιστροφή, δύο σελίδες ανά spread, layouts με επίγνωση του cover και παράλληλη σύγκριση PDF σε Delphi / C++Builder / Lazarus με συγχρονισμένες εντολές, ενώ τα demos του viewer είναι και πρακτικά speed tests για PDFs πολλών GB, όπου έγγραφα 2.x GB μπορούν να εμφανίσουν χρήσιμη πρώτη προβολή σχεδόν αμέσως και η απόδοση σελίδων παραμένει γρήγορη
- ViewerInteractionLab - Δείγματα αλληλεπίδρασης TPdfView για Delphi, C++Builder και Lazarus, με λειτουργίες εμφάνισης, λειτουργίες προσαρμογής, χρώματα σελίδας, περιστροφή, search highlighting, text selection, προεπισκόπηση επιλεγμένου κειμένου, clipboard actions και ανάδραση συντεταγμένων DeviceToPage
- SearchAndSelect - Εστιασμένα workflow samples για Delphi, Lazarus και C++Builder με λίστα αποτελεσμάτων αναζήτησης για όλες τις σελίδες, πλοήγηση προηγούμενου / επόμενου match, άλμα με διπλό κλικ,
HighlightSearchText, search με match-case / whole-word,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionκαι spread display modes - PreflightReport - Workflow demos για Delphi, Lazarus και C++Builder μαζί με έναν Delphi console companion γύρω από το επαναχρησιμοποιήσιμο
FPdfPreflightReport, που συλλέγει αποτελέσματα validation για PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R και PDF/VT σε status, priority, issue category, counts ανά κατηγορία, summary rows για επόμενη ενέργεια, προτάσεις προβλημάτων, preview σε text / Markdown / JSON / CSV, reports TXT / HTML / Markdown / JSON / CSV, scriptable δημιουργία αναφορών, batch list και directory processing με routing σε report directory, aggregate summaries TXT / JSON / HTML, manifests CSV, προαιρετική ενσωμάτωση report attachment και CI gating exit codes - ContentExtractionLab - Ενοποιημένο workflow απογραφής περιεχομένου για Delphi, Lazarus και C++Builder με μεταδεδομένα εγγράφου, κείμενο σελίδας, page objects, εικόνες, attachments, links, annotations, bookmarks και μετρικές γραμματοσειράς / χαρακτήρων, με export TXT / JSON, επιλογή κατηγορίας all / none, αποθήκευση source PDF και ενέργειες αντιγραφής αναφοράς
- WatermarkStamp - Επαναχρησιμοποιήσιμο workflow Form XObject για κεντραρισμένα υδατογραφήματα, corner stamps και ετικέτες αριθμού σελίδας σε πολυσέλιδο PDF προορισμού
- CreatePDF - Δημιουργεί πολυσέλιδο PDF από το μηδέν με κείμενο, εικόνες, διαδρομές, πίνακες και σύνθεση υδατογραφήματος· περιλαμβάνει επιλογή «European Text» για γράψιμο τονισμένου Czech / French / German / Spanish / Portuguese / Polish / Turkish κειμένου με σκοπό την επαλήθευση επιλογής γραμματοσειράς και χειρισμού Unicode
- ExtractText / ExtractImages / ContentExtractionLab - Αποθηκεύει εξαγόμενο κείμενο (συμπεριλαμβανομένης χωριστής εξόδου ανά σελίδα) ή ενσωματωμένες εικόνες στον δίσκο· ή παράγει αναφορά απογραφής περιεχομένου πολλών κατηγοριών σε μία διέλευση
- FormFill - Διαβάζει μεταδεδομένα πεδίων AcroForm, γράφει τιμές, αναδημιουργεί appearances /AP και αποθηκεύει είτε την επεξεργάσιμη είτε την flattened έκδοση
- FontProperties - Εξετάζει indexed μεταδεδομένα χαρακτήρων / γραμματοσειράς μέσω τόσο του TPdf όσο και του TPdfView σε Delphi, C++Builder και Lazarus
- MergePDF / SplitPDF - Συνενώνει πολλά source PDFs (με επιλογή εύρους σελίδων ανά αρχείο, προαιρετική διαδρομή εξόδου, αρχείο καταγραφής εκτέλεσης, κουμπί ακύρωσης και σύνοψη ολοκλήρωσης συγχώνευσης) ή χωρίζει ένα PDF σε αρχεία εξόδου ανά σελίδα
- PDFtoJpg / BatchExport - Εφάπαξ ή ομαδική μετατροπή PDF σε JPG για Delphi, C++Builder και Lazarus, με συνολική πρόοδο ανά αρχείο, τρέχουσα πρόοδο ανά σελίδα, εισόδους DPI / quality / password και batch με συνεργατική ακύρωση μέσω
IPdfCancellationToken - StandardsLab - Workflow samples για Delphi, C++Builder και Lazarus για validation PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R και PDF/VT, αναφορά προβλημάτων και αποθηκευμένα αποτελέσματα με προσανατολισμό σε standards
- PrintPDF / PrintPreferences - Standard PDF printing με preview, page ranges, copies, collate, progress και cancellation για τις demos
PrintPDF, καθώς και N-up sheet composition με φιλτράρισμα μονών / ζυγών και PDF author print preferences για τις demosPrintPreferences - SecurityAudit - Δείγματα read-only risk surface για permissions, attachments, JavaScript actions, URI / Launch links, web links, signatures, XFA state, V8 / XFA helper availability και αναφορές audit TXT / JSON
- Attachment - Δημιουργεί PDF, προσθέτει / παραθέτει / εξάγει / διαγράφει / αποθηκεύει ενσωματωμένα αρχεία συνημμένων με προβολή MIME subtype
- ImageToPDF - Μαζική μετατροπή εικόνων σε μία PDF ανά εικόνα για Delphi, C++Builder και Lazarus, με preview και πρόοδο ανά εικόνα
Οι regression suites για Delphi, C++Builder και Lazarus καλύπτουν 147 (Pas) / 123 (C++) περιπτώσεις, μοιράζονται τα ίδια fixture PDFs και κρατούν τη συμπεριφορά byte-aligned και στις τρεις οικογένειες IDE
Υποστήριξη πλατφόρμας
- Delphi - Από Delphi XE5 (RAD Studio XE5) έως Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder - Από C++Builder XE5 (RAD Studio XE5) έως C++Builder 13.1 Florence
- Lazarus - Υποστήριξη Free Pascal / Lazarus
- Win32 / Win64 - Και οι δύο πλατφόρμες Windows, 32-bit και 64-bit