PDFium Component Docs

Vodič za brzi početak

Ovaj vodič će vam pomoći da za nekoliko minuta počnete da radite sa PDFium VCL komponentama

Korak 1: Kreirajte novi projekat

  1. Kreirajte novu VCL Forms Application u svom IDE-ju
  2. Sačuvajte projekat na pogodnoj lokaciji

Korak 2: Dodajte komponente na obrazac

  1. Otvorite paletu komponenti losLab
  2. Postavite komponentu TPdf na obrazac
  3. Postavite komponentu TPdfView na obrazac
  4. Podesite svojstvo Pdf komponente TPdfView tako da pokazuje na vašu komponentu TPdf

Korak 3: Učitajte prvi PDF

Jednostavno učitavanje PDF-a:

// Učitaj PDF datoteku
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Stranice: ' + IntToStr(Pdf1.PageCount));

// Ili učitaj iz memorijskog toka
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;

Korak 4: Osnovne PDF operacije

Navigacija kroz strane

// Idi na sledeću stranicu
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Idi na prethodnu stranicu
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Izdvajanje teksta

// Izdvoj sav tekst sa trenutne stranice
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Izdvoj tekst iz pravougaonog područja
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Pretraga teksta

// Pronađi tekst u dokumentu
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Pronađeno na poziciji: ' + IntToStr(Position))
  else
    ShowMessage('Nije pronađeno');
end;

Kreiranje novog PDF-a

// Kreiraj novi PDF sa tekstom
Pdf1.CreateDocument;
Pdf1.Compressed := True; // omogući kompresiju toka
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4 format
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Zumiranje i prikaz

// Postavi nivo zuma (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Postavi režim prikaza
PdfView1.DisplayMode := dmSingleContinuous;

// Rotiraj stranicu
PdfView1.Rotation := ro90;

Korak 5: Svojstva dokumenta

// Pročitaj metapodatke dokumenta
ShowMessage('Naslov: ' + Pdf1.Title);
ShowMessage('Autor: ' + Pdf1.Author);
ShowMessage('Kreator: ' + Pdf1.Creator);
ShowMessage('Producent: ' + Pdf1.Producer);
ShowMessage('Stranice: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Verzija: ' + IntToStr(Ord(Pdf1.PdfVersion)));

Korak 6: Dokumenti zaštićeni lozinkom

// Otvori lozinkom zaštićeni PDF
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Korak 7: Veliki dokumenti (streaming učitavanje)

Za PDF-ove većeg obima, udaljene izvore ili izvore iz baze podataka, koristite LoadCustomDocument kako bi PDFium po potrebi povlačio blokove umesto da celu datoteku učita u memoriju:

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

Korak 8: Raspored stranice (TPdfView Fit Mode)

FitMode automatski drži duge dokumente uklopljenim prilikom Resize i kada se promeni trenutna stranica:

PdfView1.FitMode := pfmFitPage; // cela stranica u okviru prikaza
// pfmFitWidth — širina stranice odgovara širini okvira prikaza
// pfmActualSize — 100%
// pfmNone — ručni zum

// Šablon pregledača u tamnom režimu (dark-mode): tamna oblast za klizanje, papirno bela PDF stranica
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Korak 9: Isticanje rezultata pretrage

HighlightSearchText skenira trenutnu stranu prikaza i iscrtava masku HighlightColor preko svakog podudaranja pri svakom ponovnom iscrtavanju:

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

// Prelazak na drugu stranicu automatski briše isticanje

Korak 10: PDF/A arhivski izlaz

SaveAsPdfA naknadno obrađuje osnovno čuvanje pomoću inkrementalnog ažuriranja koje ubacuje XMP tok metapodataka, sRGB ICC OutputIntent i ažurirani katalog dokumenta:

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

// Proveri usklađenost dolaznog dokumenta
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Nije PDF/A');
end;

Sledeći koraci