PDFium Component Docs

Panduan Mulai Cepat

Panduan ini akan membantu Anda mulai menggunakan komponen PDFium VCL hanya dalam beberapa menit

Langkah 1: Buat Proyek Baru

  1. Buat aplikasi VCL Forms Application baru di IDE Anda
  2. Simpan proyek di lokasi yang mudah dijangkau

Langkah 2: Tambahkan Komponen ke Form Anda

  1. Buka palet komponen losLab
  2. Letakkan komponen TPdf pada form Anda
  3. Letakkan komponen TPdfView pada form Anda
  4. Setel properti Pdf milik TPdfView agar menunjuk ke komponen TPdf Anda

Langkah 3: Muat PDF Pertama Anda

Pemuatan 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;

Langkah 4: Operasi Dasar PDF

Navigasi Halaman

// 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 Teks

// 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

// 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

// 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;

Zoom dan Tampilan

// Atur tingkat zoom (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Atur mode tampilan
PdfView1.DisplayMode := dmSingleContinuous;

// Putar halaman
PdfView1.Rotation := ro90;

Langkah 5: Properti Dokumen

// 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)));

Langkah 6: Dokumen yang Dilindungi Kata Sandi

// Buka PDF yang dilindungi kata sandi
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Langkah 7: Dokumen Besar (Pemuatan Streaming)

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;

Langkah 8: Tata Letak Halaman (Mode Fit TPdfView)

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;

Langkah 9: Sorotan Pencarian

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

Langkah 10: Output Arsip PDF/A

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;

Langkah Berikutnya