TPDFlibViewer
Viewer
Περιγραφή
Αυτή η σελίδα τεκμηριώνει τον έλεγχο TPDFlibViewer στο PDFlibPas στο θέμα Viewer. Τα ονόματα API, οι παράμετροι, τα ονόματα κλάσεων, τα ονόματα αρχείων και οι κυριολεκτικές τιμές διατηρούνται ακριβώς όπως εμφανίζονται στη βιβλιοθήκη Delphi
Το TPDFlibViewer (unit Lib\PDFlibViewer.pas) είναι ένας κύλιστός έλεγχος VCL που εμφανίζει σελίδες PDF εντός της εφαρμογής σας. Αποδίδει μέσω της ίδιας μηχανής που χρησιμοποιεί το TPDFlib (GDI+, Cairo ή PDFium, σύμφωνα με το SelectRenderer στο συνδεδεμένο instance)
Βασικά μέλη
Function LoadFromFile(Const FileName, Password: WideString): Integer;
Procedure AttachLibrary(ALib: TPDFlib);
Procedure CloseDocument;
Function PageCount: Integer;
Function GoToPage(NewPage: Integer): Integer;
Function NextPage: Integer;
Function PrevPage: Integer;
Procedure SetZoomPercent(Percent: Double);
Procedure SetZoomMode(Mode: TPDFlibViewerZoomMode);
Procedure SetDisplayMode(Mode: TPDFlibViewerDisplayMode);
Procedure SetCacheLimit(MegaBytes: Integer);
Procedure RefreshPage;
Function LinkActionAtPagePoint(APage: Integer; XPos, YPos: Double; Out Info: TPDFlibActionInfo): Integer;
Function GetTextInRegion(APage: Integer; XPos, YPos, RWidth, RHeight: Double): WideString;
Function CopySelectedText: Integer;
Property SelectedText: WideString;
Property Page: Integer;
Property DisplayMode: TPDFlibViewerDisplayMode;
Property OnPageChange: TPDFlibViewerPageChange;
Property OnLinkClick: TPDFlibViewerLinkClick;Παρατηρήσεις
Το LoadFromFile ανοίγει ένα έγγραφο μέσω του δικού του instance TPDFlib του ελέγχου· το AttachLibrary εμφανίζει το επιλεγμένο έγγραφο ενός instance που διαχειρίζεστε εσείς (ο καλών διατηρεί την κυριότητα). Οι λειτουργίες ζουμ είναι σταθερό ποσοστό (zmPercent μέσω SetZoomPercent), προσαρμογή στο πλάτος (zmFitWidth, η προεπιλογή) και προσαρμογή στη σελίδα (zmFitPage)· οι λειτουργίες προσαρμογής επαναϋπολογίζονται αυτόματα κατά την αλλαγή μεγέθους του ελέγχου. Η πλοήγηση περιορίζεται στο εύρος σελίδων του εγγράφου και ενεργοποιεί το OnPageChange μόνο όταν η ορατή σελίδα πραγματικά αλλάζει. Το SetDisplayMode εναλλάσσει μεταξύ εμφάνισης μίας σελίδας (dmSinglePage, η προεπιλογή) και συνεχούς κατακόρυφης κύλισης σε όλο το έγγραφο (dmContinuous), όπου αποδίδονται μόνο οι σελίδες ορατές στο viewport και η τρέχουσα σελίδα ακολουθεί τη θέση κύλισης. Οι αποδοθείσες σελίδες διατηρούνται σε μια κρυφή μνήμη bitmap LRU (128 MB από προεπιλογή, ρυθμιζόμενη με SetCacheLimit), οπότε η ανακύλιση δεν επαναποδίδει. Η ροδέλα του ποντικιού κυλά κατακόρυφα· τα PageUp/PageDown, τα πλήκτρα βέλους, Home και End πλοηγούνται. Οι γειτονικές σελίδες προ-αποδίδονται σε ένα νήμα φόντου ώστε η αλλαγή σελίδας να είναι άμεση. Κάνοντας κλικ σε μια σχολίαση συνδέσμου ενεργοποιείται το OnLinkClick με τον αριθμό σελίδας και την τυποποιημένη σύνοψη ενέργειας (TPDFlibActionInfo: διεύθυνση web, προορισμός εγγράφου, ονομαζόμενη ενέργεια και άλλα)· το LinkActionAtPagePoint εκθέτει απευθείας τον έλεγχο popover, λαμβάνοντας συντεταγμένες στον ίδιο χώρο χρήστη που αναφέρει το GetAnnotRectEx. Η σύρσιμο με το αριστερό πλήκτρο του ποντικιού επιλέγει κείμενο (κλικ σε σύνδεσμο ενεργοποιεί τον σύνδεσμο)· το Ctrl+C ή το CopySelectedText αντιγράφει την επιλογή και το GetTextInRegion εκτελεί την ίδια αναζήτηση περιοχής βάσει μπλοκ προγραμματιστικά. Ο συνοδευτικός έλεγχος TPDFlibOutlineViewer εμφανίζει τη δέντρο σελιδοδεικτών του εγγράφου δίπλα στον viewer: καλέστε το AttachViewer του με το instance του viewer και κάνοντας κλικ σε σελιδοδείκτη πλοηγεί στη σελίδα προορισμού του. Το TPDFlibSearchPanel συνδέεται με τον ίδιο τρόπο: το RunSearch καταχωρεί κάθε αποτέλεσμα στο έγγραφο με τη σελίδα και το αντίστοιχο κείμενο, και κάνοντας κλικ σε αποτέλεσμα μεταβαίνει σε εκείνη τη σελίδα. Το TPDFlibThumbnailBar συμπληρώνει την οικογένεια με μια τεμπέλικα αποδοθείσα μικρογραφία κάθε σελίδας· κάνοντας κλικ σε μικρογραφία πλοηγεί σε αυτήν. Εγκαταστήστε το πακέτο χρόνου σχεδιασμού Package\PDFlibViewerPkg.dpk για να τοποθετείτε τον έλεγχο από τη σελίδα παλέτας losLab PDF κατά το χρόνο σχεδιασμού