PDFium Component menyediakan dua komponen yang bekerja bersama: TPdf mengelola dokumen dan TPdfView merender halaman ke kontrol VCL. Ketika Anda menghubungkan keduanya dan mengatur Pdf.Active := True, tampilan segera memperbarui kontennya. Semua logika navigasi dan zoom mengalir dari sana
Menyambungkan TPdf ke TPdfView saat pembuatan form
Jatuhkan TPdf dan TPdfView ke form pada waktu desain. Kemudian di FormCreate, tunjuk PdfView.Pdf ke instance Pdf Anda dan pilih mode fit awal:
procedure TFormMain.FormCreate(Sender: TObject);
begin
// Pdf and PdfView were dropped at design time.
PdfView.Pdf := Pdf; // the view paints whatever this document holds
PdfView.FitMode := pfmFitWidth; // start the user at a sensible zoom
end;
Anda tidak perlu memanggil refresh atau repaint secara manual setelah mengatur properti ini; tampilan akan menampilkan konten yang benar segera setelah Pdf.Active menjadi true
Membuka dokumen dan menangani kegagalan senyap
Pdf.Active := True tidak pernah memunculkan pengecualian. Jika file tidak dapat dibuka, misalnya karena rusak atau dilindungi kata sandi yang tidak sesuai, Active tetap false. Selalu periksa setelah menetapkan:
procedure TFormMain.OpenDocument(const FileName: string);
begin
Pdf.FileName := FileName;
Pdf.Active := True; // never raises; failure leaves Active = False
if not Pdf.Active then
begin
ShowMessage('Could not open ' + FileName);
Exit;
end;
UpdatePageLabel;
end;
Membuka dokumen yang dilindungi kata sandi
Ketika file memerlukan kata sandi, tetapkan Pdf.Password sebelum mengaktifkan:
procedure TFormMain.OpenWithPassword(const FileName, Password: string);
begin
Pdf.FileName := FileName;
Pdf.Password := Password;
Pdf.Active := True;
if not Pdf.Active then
ShowMessage('Wrong password or damaged file');
end;
Navigasi halaman dan label status
Navigasi adalah pengaturan Pdf.PageNumber, yang merupakan bilangan bulat berbasis 1. Tampilan langsung merender ulang:
procedure TFormMain.GoToPage(Page: Integer);
begin
if not Pdf.Active then Exit;
Pdf.PageNumber := Max(1, Min(Page, Pdf.PageCount));
UpdatePageLabel;
end;
procedure TFormMain.btnFirstClick(Sender: TObject); begin GoToPage(1); end;
procedure TFormMain.btnPrevClick(Sender: TObject); begin GoToPage(Pdf.PageNumber - 1); end;
procedure TFormMain.btnNextClick(Sender: TObject); begin GoToPage(Pdf.PageNumber + 1); end;
procedure TFormMain.btnLastClick(Sender: TObject); begin GoToPage(Pdf.PageCount); end;
procedure TFormMain.UpdatePageLabel;
begin
lblPage.Caption := Format('Page %d of %d', [Pdf.PageNumber, Pdf.PageCount]);
end;
Zoom dan mode fit
PDFium Component menawarkan level zoom numerik dan mode fit yang telah ditentukan sebelumnya. FitMode mengesampingkan Zoom ketika aktif; set ke pfmNone untuk kembali ke zoom manual:
// Named fit modes
PdfView.FitMode := pfmFitWidth; // fills the view horizontally
PdfView.FitMode := pfmFitPage; // whole page visible at once
PdfView.FitMode := pfmNone; // use the Zoom property instead
// Manual zoom
PdfView.Zoom := 1.0; // 100 %
PdfView.Zoom := 1.5; // 150 %
PdfView.Zoom := 0.75; // 75 %
// Convenience: match page width exactly to the current view width
procedure TFormMain.PageWidthZoom;
begin
PdfView.FitMode := pfmNone;
if Pdf.Active and (Pdf.PageWidth > 0) then
PdfView.Zoom := PdfView.Width / Pdf.PageWidth;
end;
Untuk mengunduh komponen dan mulai membangun pemirsa Anda sendiri, kunjungi halaman produk Download PDFium Component
Contoh kode tambahan
// seed a zoom readout from the fit-to-width value of the current page
var
FitPercent: Double;
begin
FitPercent := PdfView.PageWidthZoom[PdfView.PageNumber];
ZoomEdit.Text := Format('%.0f%%', [FitPercent]);
end;