PDFium Component Docs

Rýchly sprievodca

Táto príručka vám pomôže začať s komponentmi PDFium VCL za niekoľko minút

Krok 1: Vytvorte nový projekt

  1. V IDE vytvorte novú aplikáciu VCL Forms
  2. Uložte projekt na vhodné miesto

Krok 2: Pridajte komponenty na formulár

  1. Otvorte paletu komponentov losLab
  2. Presuňte komponent TPdf na formulár
  3. Presuňte komponent TPdfView na formulár
  4. Nastavte vlastnosť Pdf komponentu TPdfView tak, aby odkazovala na komponent TPdf

Krok 3: Načítajte svoje prvé PDF

Jednoduché načítanie PDF

// Načítanie PDF súboru
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Alebo načítanie z pamäťového streamu
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;

Krok 4: Základné operácie s PDF

Prechod na stránky

// Prejsť na ďalšiu stranu
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Prejsť na predchádzajúcu stranu
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Extrahovanie textu

// Extrahovať všetok text z aktuálnej strany
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Extrahovať text z obdĺžnikovej oblasti
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Vyhľadávanie textu

// Vyhľadať text v dokumente
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Found at position: ' + IntToStr(Position))
  else
    ShowMessage('Not found');
end;

Vytvorte nové PDF

// Vytvoriť nové PDF s textom
Pdf1.CreateDocument;
Pdf1.Compressed := True; // zapnúť kompresiu streamu
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // Veľkosť A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Priblíženie a zobrazenie

// Nastaviť úroveň priblíženia (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Nastaviť režim zobrazenia
PdfView1.DisplayMode := dmSingleContinuous;

// Otočiť stranu
PdfView1.Rotation := ro90;

Krok 5: Vlastnosti dokumentu

// Načítať metadáta dokumentu
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)));

Krok 6: Dokumenty chránené heslom

// Otvoriť PDF chránené heslom
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Krok 7: Veľké dokumenty (streamované načítanie)

Pre PDF s veľkosťou v gigabajtoch alebo pre vzdialené zdroje či zdroje založené na databáze použite LoadCustomDocument, aby PDFium načítaval bloky podľa potreby namiesto načítania celého súboru do pamäte

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

Krok 8: Rozloženie stránky (TPdfView FitMode)

FitMode udržiava dlhé dokumenty automaticky orámované pri Resize aj pri zmene aktuálnej strany:

PdfView1.FitMode := pfmFitPage; // celá strana vo výreze
// pfmFitWidth - šírka strany zodpovedá šírke výrezu
// pfmActualSize - 100%
// pfmNone - manuálne priblíženie

// Vzor prehliadača v tmavom režime, tmavá rolovacia plocha, papierovo biela strana PDF
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Krok 9: Zvýraznenie vyhľadávania

HighlightSearchText prehľadáva aktuálnu zobrazenú stranu a pri každom prekreslení nanáša cez každý nález masku HighlightColor:

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

// Prepnutie na inú stranu zvýraznenie automaticky vymaže

Krok 10: Archivácia výstupu PDF/A

SaveAsPdfA po základnom uložení vykoná prírastkovú aktualizáciu, ktorá vloží XMP metadátový stream, sRGB ICC OutputIntent a aktualizovaný katalóg dokumentu:

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

// Skontrolovať zhodu prichádzajúceho dokumentu
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Not PDF/A');
end;

Ďalšie kroky