Panduan ini akan membantu Anda mulai menggunakan komponen PDFium VCL hanya dalam beberapa menit
Pdf milik TPdfView agar menunjuk ke komponen TPdf AndaPemuatan PDF sederhana:
// Muat file PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
// Atau muat dari memory stream
var
Stream: TMemoryStream;
begin
Stream := TMemoryStream.Create;
try
Stream.LoadFromFile('C:\Sample.pdf');
Pdf1.LoadDocument(Stream, True);
Pdf1.Active := True;
finally
Stream.Free;
end;
end;
// Pindah ke halaman berikutnya
if PdfView1.PageNumber < Pdf1.PageCount then
PdfView1.PageNumber := PdfView1.PageNumber + 1;
// Pindah ke halaman sebelumnya
if PdfView1.PageNumber > 1 then
PdfView1.PageNumber := PdfView1.PageNumber - 1;
// Ekstrak semua teks dari halaman saat ini
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;
// Ekstrak teks dari area persegi panjang
var
RectText: WString;
begin
RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
ShowMessage(RectText);
end;
// Cari teks dalam dokumen
var
Position: Integer;
begin
Position := Pdf1.FindFirst('search term');
if Position >= 0 then
ShowMessage('Ditemukan pada posisi: ' + IntToStr(Position))
else
ShowMessage('Tidak ditemukan');
end;
// Buat PDF baru dengan teks
Pdf1.CreateDocument;
Pdf1.Compressed := True; // aktifkan kompresi stream
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // ukuran A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;
// Atur tingkat zoom (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%
// Atur mode tampilan
PdfView1.DisplayMode := dmSingleContinuous;
// Putar halaman
PdfView1.Rotation := ro90;
// Baca metadata dokumen
ShowMessage('Title: ' + Pdf1.Title);
ShowMessage('Author: ' + Pdf1.Author);
ShowMessage('Creator: ' + Pdf1.Creator);
ShowMessage('Producer: ' + Pdf1.Producer);
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Version: ' + IntToStr(Ord(Pdf1.PdfVersion)));
// Buka PDF yang dilindungi kata sandi
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Untuk PDF berukuran multi-GB atau sumber jarak jauh / berbasis database, gunakan
LoadCustomDocument agar PDFium mengambil blok sesuai kebutuhan
alih-alih menampung seluruh file di memori
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
Pdf1.Active := True;
end;
FitMode menjaga dokumen panjang tetap terbingkai secara otomatis
saat Resize dan ketika halaman saat ini berubah
PdfView1.FitMode := pfmFitPage; // seluruh halaman dalam viewport
// pfmFitWidth — lebar halaman cocok dengan lebar viewport
// pfmActualSize — 100%
// pfmNone — zoom manual
// Pola penampil mode gelap: area gulir gelap, halaman PDF putih seperti kertas
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;
HighlightSearchText memindai halaman tampilan saat ini dan
menerapkan mask HighlightColor pada setiap kecocokan pada setiap
redraw
var
MatchCount: Integer;
begin
PdfView1.HighlightColor := clYellow;
MatchCount := PdfView1.HighlightSearchText('invoice');
Status.Caption := IntToStr(MatchCount) + ' kecocokan';
end;
// Beralih ke halaman lain akan menghapus sorotan secara otomatis
SaveAsPdfA memproses hasil penyimpanan dasar dengan
pembaruan inkremental yang menyisipkan stream metadata XMP, ICC OutputIntent sRGB,
dan katalog dokumen yang diperbarui
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
ShowMessage('Tersimpan sebagai PDF/A-1b');
// Periksa kepatuhan dokumen masuk
case Pdf1.PdfAConformance of
pac1b: Log.Add('PDF/A-1b');
pacNone: Log.Add('Not PDF/A');
end;