Bu kılavuz, PDFium VCL bileşenlerine yalnızca birkaç dakika içinde başlamanıza yardımcı olacaktır.
Pdf özelliğini TPdf bileşeninize işaret etmek üzere ayarlayınBasit 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;
// 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;
// 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;
// Belgede metin bul
var
Position: Integer;
begin
Position := Pdf1.FindFirst('arama terimi');
if Position >= 0 then
ShowMessage('Konum: ' + IntToStr(Position))
else
ShowMessage('Bulunamadı');
end;
// 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 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;
// 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)));
// Parola korumalı bir PDF aç
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Ç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;
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;
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
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;