PDFium Component Docs

Ta stran je lokalizirana za slovenščino in ohranja imena API-jev, datotek ter literalne vrednosti nespremenjene

Hitri vodnik za začetek

Ta vodnik vam bo v nekaj minutah pomagal začeti uporabljati komponente PDFium VCL

1. Ustvarite nov projekt

  1. V svojem IDE-ju ustvarite novo aplikacijo VCL Forms
  2. Projekt shranite na priročno mesto

2. Dodajte komponente na obrazec

  1. Odprite komponentno paleto losLab
  2. Na obrazec povlecite komponento TPdf
  3. Na obrazec povlecite komponento TPdfView
  4. Nastavite lastnost Pdf komponente TPdfView, da kaže na vašo komponento TPdf

3. Naložite svoj prvi PDF

Preprosto nalaganje PDF-ja:

// Naloži datoteko PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Ali naloži iz pomnilniškega 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;

4. Osnovne operacije s PDF

Krmarjenje po straneh

// Pojdi na naslednjo stran
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Pojdi na prejšnjo stran
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Izvlecite besedilo

// Izvleci vse besedilo s trenutne strani
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Izvleci besedilo iz pravokotnega območja
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Iskanje besedila

// Najdi besedilo v dokumentu
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Found at position: ' + IntToStr(Position))
  else
    ShowMessage('Not found');
end;

Ustvarite nov PDF

// Ustvari nov PDF z besedilom
Pdf1.CreateDocument;
Pdf1.Compressed := True; // omogoči stiskanje tokov
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4 size
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Povečava in prikaz

// Nastavi raven povečave (1,0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Nastavi način prikaza
PdfView1.DisplayMode := dmSingleContinuous;

// Zavrti stran
PdfView1.Rotation := ro90;

5. Lastnosti dokumenta

// Preberite metapodatke dokumenta
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)));

6. Dokumenti, zaščiteni z geslom

// Odprite PDF, zaščiten z geslom
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

7. Veliki dokumenti (tokovno nalaganje)

Za večgigabajtne PDF-je ali oddaljene vire / vire na osnovi podatkovne zbirke uporabite LoadCustomDocument so PDFium pulls blocks on demand namesto da bi celotno datoteko predpomnili v pomnilnik:

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

8. Postavitev strani (FitMode TPdfView)

FitMode keeps long documents framed automatically ob Resize in ob spremembi trenutne strani:

PdfView1.FitMode := pfmFitPage; // whole page in viewport
// pfmFitWidth — page width matches viewport width
// pfmActualSize — 100%
// pfmNone — manual zoom

// Vzorec pregledovalnika za temni način: temno območje drsenja, papirnato bela stran PDF
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

9. Označevanje iskanja

HighlightSearchText skenira trenutno stran pogleda in naslika masko HighlightColor čez vsako ujemanje pri vsakem ponovnem risanju:

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

// Preklop na drugo stran samodejno počisti poudarke

10. Arhivsko izvažanje PDF/A

SaveAsPdfA naknadno obdela osnovno shranjevanje s postopno posodobitvijo (incremental update), ki vnese tok metapodatkov XMP, sRGB ICC OutputIntent in posodobljen katalog dokumentov:

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

// Preveri skladnost vhodnega dokumenta
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Ni PDF/A');
end;

Naslednji koraki