TPDFlibViewer
Penampil
Deskripsi
Halaman ini menjelaskan kontrol TPDFlibViewer di PDFlibPas dalam topik "Penampil". Nama API, parameter, kelas, nama file, dan nilai literal dipertahankan persis seperti yang muncul di pustaka Delphi
TPDFlibViewer (unit Lib\PDFlibViewer.pas) adalah kontrol gulir VCL yang menampilkan halaman PDF di dalam aplikasi Anda. Ini merender melalui mesin yang sama yang digunakan TPDFlib (GDI+, Cairo atau PDFium, mengikuti SelectRenderer pada instance yang dilampirkan).
Anggota Kunci
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;Catatan
LoadFromFile membuka dokumen melalui instance TPDFlib milik kontrol itu sendiri; AttachLibrary menampilkan dokumen terpilih dari instance yang Anda kelola sendiri (pemanggil mempertahankan kepemilikan). Mode zoom adalah persentase tetap (zmPercent melalui SetZoomPercent), paskan ke lebar (zmFitWidth, default) dan paskan ke halaman (zmFitPage); mode pas menghitung ulang secara otomatis saat ukuran kontrol berubah. Navigasi dibatasi pada rentang halaman dokumen dan memicu OnPageChange hanya ketika halaman yang terlihat benar-benar berubah. SetDisplayMode beralih antara tampilan halaman tunggal (dmSinglePage, default) dan guliran vertikal kontinu melalui seluruh dokumen (dmContinuous), di mana hanya halaman yang terlihat di area pandang yang dirender dan halaman saat ini mengikuti posisi gulir. Halaman yang dirender disimpan di cache bitmap least-recently-used (defaultnya 128 MB, dapat disesuaikan dengan SetCacheLimit), sehingga menggulir kembali tidak merender ulang. Roda mouse menggulir secara vertikal; PageUp/PageDown, tombol panah, Home dan End melakukan navigasi. Halaman-halaman tetangga melakukan pra-render pada thread latar belakang sehingga pembalikan halaman terjadi seketika. Mengklik anotasi tautan memicu OnLinkClick dengan nomor halaman dan ringkasan tindakan bertipe (TPDFlibActionInfo: alamat web, tujuan dokumen, tindakan bernama, dan lainnya); LinkActionAtPagePoint mengekspos pengujian klik secara langsung, mengambil koordinat di ruang pengguna yang sama dengan yang dilaporkan GetAnnotRectEx. Menyeret dengan tombol kiri mouse memilih teks (klik pada tautan akan memicu tautan alih-alih memilih teks); Ctrl+C atau CopySelectedText menyalin pilihan, dan GetTextInRegion melakukan pencarian region berbasis blok yang sama secara terprogram. Kontrol pendamping TPDFlibOutlineViewer menampilkan pohon markah buku dokumen di samping penampil: panggil AttachViewer miliknya dengan instance penampil dan mengklik markah buku akan menavigasi ke halaman tujuannya. TPDFlibSearchPanel dilampirkan dengan cara yang sama: RunSearch mendaftar setiap temuan dalam dokumen dengan halamannya dan teks yang cocok, dan mengklik temuan akan melompat ke halaman tersebut. TPDFlibThumbnailBar melengkapi keluarga ini dengan miniatur setiap halaman yang dirender secara malas; mengklik thumbnail menavigasi kepadanya. Instal paket waktu-desain Package\PDFlibViewerPkg.dpk untuk menempatkan kontrol dari halaman palet PDF losLab pada waktu desain.