PDFium Component Docs

Ova je stranica lokalizirana za hrvatski i zadržava nazive API-ja, datoteka i literalne vrijednosti neizmijenjenima

Vodič za brzi početak

Ovaj će vam vodič pomoći da za svega nekoliko minuta započnete rad s PDFium VCL komponentama

Korak 1: stvorite novi projekt

  1. Stvorite novu VCL Forms Application u svom IDE-u
  2. Spremite projekt na prikladno mjesto

Korak 2: dodajte komponente na obrazac

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

Korak 3: učitajte svoj prvi PDF

Jednostavno učitavanje PDF-a:

// Učitaj PDF datoteku
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + 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 po stranicama

// Idi na sljedeć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

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

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

Pretraživanje 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;

Stvaranje novog PDF-a

// Stvori novi PDF s tekstom
Pdf1.CreateDocument;
Pdf1.Compressed := True; // uključi kompresiju tokova
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // veličina A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Zumiranje i prikaz

// Postavi razinu zumiranja (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Postavi način 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('Autor stvaranja: ' + Pdf1.Creator);
ShowMessage('Proizvođač: ' + Pdf1.Producer);
ShowMessage('Stranice: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Verzija: ' + IntToStr(Ord(Pdf1.PdfVersion)));

Korak 6: dokumenti zaštićeni lozinkom

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

Korak 7: veliki dokumenti (učitavanje putem toka)

Za PDF-ove veličine više gigabajta ili udaljene izvore / izvore iz baze podataka upotrijebite LoadCustomDocument kako bi PDFium dohvaćao blokove na zahtjev umjesto da cijelu datoteku sprema 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 dugačke dokumente u okviru pri promjeni veličine i pri promjeni trenutne stranice:

PdfView1.FitMode := pfmFitPage; // cijela stranica u prikazu
// pfmFitWidth — širina stranice odgovara širini prikaza
// pfmActualSize — 100%
// pfmNone — ručno zumiranje

// Uzorak za tamni prikaz: tamno područje za pomicanje, PDF stranica bijela kao papir
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Korak 9: isticanje pretraživanja

HighlightSearchText skenira trenutnu stranicu prikaza i crta masku HighlightColor preko svakog podudaranja pri svakom ponovnom iscrtavanju:

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

// Prelazak na drugu stranicu automatski briše isticanje

Korak 10: arhivski PDF/A izlaz

SaveAsPdfA naknadno obrađuje osnovno spremanje uz inkrementalno ažuriranje koje umeće XMP tok metapodataka, sRGB ICC OutputIntent i ažurirani katalog dokumenta:

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

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

Sljedeći koraci