PDFiumPas Dokümantasyon

Hızlı Başlangıç Kılavuzu

Bu kılavuz, PDFium VCL bileşenlerine yalnızca birkaç dakika içinde başlamanıza yardımcı olacaktır.

Adım 1: Yeni Bir Proje Oluşturun

  1. IDE'nizde yeni bir VCL Forms Uygulaması oluşturun
  2. Projeyi uygun bir konuma kaydedin

Adım 2: Bileşenleri Formunuza Ekleyin

  1. losLab bileşen paletini açın
  2. Bir TPdf bileşenini formunuza bırakın
  3. Bir TPdfView bileşenini formunuza bırakın
  4. TPdfView'in Pdf özelliğini TPdf bileşeninize işaret etmek üzere ayarlayın

Adım 3: İlk PDF'inizi Yükleyin

Basit PDF Yükleme:

// Bir PDF dosyası yükle
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Sayfalar: ' + IntToStr(Pdf1.PageCount));

// Veya bellek akışından yükle
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;

Adım 4: Temel PDF İşlemleri

Sayfalarda Gezinme

// Sonraki sayfaya git
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Önceki sayfaya git
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Metin Çıkarma

// Mevcut sayfadan tüm metni çıkar
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Dikdörtgen bir alandan metin çıkar
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Metin Arama

// Belgede metin bul
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('arama terimi');
  if Position >= 0 then
    ShowMessage('Konum: ' + IntToStr(Position))
  else
    ShowMessage('Bulunamadı');
end;

Yeni PDF Oluşturma

// Metin içeren yeni bir PDF oluştur
Pdf1.CreateDocument;
Pdf1.Compressed := True; // akış sıkıştırmasını etkinleştir
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4 boyut
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Yakınlaştırma ve Görüntüleme

// Yakınlaştırma seviyesini ayarla (1.0 = %100)
PdfView1.Zoom := 1.5; // %150

// Görüntüleme modunu ayarla
PdfView1.DisplayMode := dmSingleContinuous;

// Sayfayı döndür
PdfView1.Rotation := ro90;

Adım 5: Belge Özellikleri

// Belge metaverisini oku
ShowMessage('Başlık: ' + Pdf1.Title);
ShowMessage('Yazar: ' + Pdf1.Author);
ShowMessage('Oluşturucu: ' + Pdf1.Creator);
ShowMessage('Üretici: ' + Pdf1.Producer);
ShowMessage('Sayfalar: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Sürüm: ' + IntToStr(Ord(Pdf1.PdfVersion)));

Adım 6: Parola Korumalı Belgeler

// Parola korumalı bir PDF aç
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Adım 7: Büyük Belgeler (Akış Yükleme)

Çok-GB PDF'ler veya uzak / veritabanı tabanlı kaynaklar için LoadCustomDocument kullanın, böylece PDFium tüm dosyayı bellekte tamponlamak yerine blokları istek üzerine çeker:

var
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
  Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
  Pdf1.Active := True;
end;

Adım 8: Sayfa Düzeni (TPdfView Sığdırma Modu)

FitMode, uzun belgeleri Resize sırasında ve mevcut sayfa değiştiğinde otomatik olarak çerçevede tutar:

PdfView1.FitMode := pfmFitPage; // tüm sayfa görünüm alanında
// pfmFitWidth — sayfa genişliği görünüm alanı genişliğiyle eşleşir
// pfmActualSize — %100
// pfmNone — manuel zoom

// Karanlık mod görüntüleyici deseni: karanlık kaydırma alanı, kağıt-beyaz PDF sayfası
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Adım 9: Arama Vurgulama

HighlightSearchText, mevcut görünüm sayfasını tarar ve her yeniden çizimde her eşleşmenin üzerine bir HighlightColor maskesi boyar:

var
  MatchCount: Integer;
begin
  PdfView1.HighlightColor := clYellow;
  MatchCount := PdfView1.HighlightSearchText('invoice');
  Status.Caption := IntToStr(MatchCount) + ' eşleşme';
end;

// Farklı bir sayfaya geçmek vurgulamayı otomatik olarak temizler

Adım 10: PDF/A Arşiv Çıktısı

SaveAsPdfA, temel kaydetmeyi artımlı bir güncellemeyle son işleme tabi tutar; bu güncelleme XMP metaveri akışı, sRGB ICC OutputIntent ve güncellenmiş bir belge catalog enjekte eder:

if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
  ShowMessage('PDF/A-1b kaydedildi');

// Gelen bir belgenin uyumluluğunu kontrol et
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('PDF/A değil');
end;

Sonraki Adımlar