PDFium Component Docs

Šis puslapis lokalizuotas lietuvių kalbai ir nekeičia API, failų pavadinimų bei literalinių reikšmių.

Greitos pradžios vadovas

Šis vadovas padės per kelias minutes pradėti dirbti su PDFium VCL komponentais

1 žingsnis: sukurkite naują projektą

  1. Sukurkite naują VCL Forms Application savo IDE
  2. Išsaugokite projektą patogioje vietoje

2 žingsnis: pridėkite komponentus į formą

  1. Atidarykite losLab komponentų paletę
  2. Nuvilkite TPdf komponentą į formą
  3. Nuvilkite TPdfView komponentą į formą
  4. Nustatykite TPdfView Pdf savybę į savo TPdf komponentą

3 žingsnis: įkelkite pirmąjį PDF

Paprastas PDF įkėlimas:

// Įkelti PDF failą
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Arba įkelti iš atminties srauto
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 žingsnis: pagrindinės PDF operacijos

Naršyti puslapius

// Eiti į kitą puslapį
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Eiti į ankstesnį puslapį
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Išskirti tekstą

// Išskirti visą dabartinio puslapio tekstą
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Išskirti tekstą iš stačiakampės srities
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Ieškoti teksto

// Rasti tekstą 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;

Sukurti naują PDF

// Sukurti naują PDF su tekstu
Pdf1.CreateDocument;
Pdf1.Compressed := True; // įjungti srauto glaudinimą
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4 dydis
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Mastelis ir rodymas

// Nustatyti mastelio lygį (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Nustatyti rodymo režimą
PdfView1.DisplayMode := dmSingleContinuous;

// Pasukti puslapį
PdfView1.Rotation := ro90;

5 žingsnis: dokumento savybės

// Nuskaityti dokumento metaduomenis
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 žingsnis: slaptažodžiu apsaugoti dokumentai

// Atidaryti slaptažodžiu apsaugotą PDF
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

7 žingsnis: dideli dokumentai (srautinis įkėlimas)

Multi-GB PDF arba nuotoliniams ar duomenų bazėmis pagrįstiems šaltiniams naudokite LoadCustomDocument, kad PDFium trauktų blokus pagal poreikį vietoje to, kad sukauptų visą failą atmintyje

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

8 žingsnis: puslapio išdėstymas (TPdfView Fit Mode)

FitMode automatiškai laiko ilgus dokumentus matymo srityje keičiant dydį ir pasikeitus dabartiniam puslapiui:

PdfView1.FitMode := pfmFitPage; // visas puslapis matomame lange
// pfmFitWidth — puslapio plotis sutampa su matomo lango pločiu
// pfmActualSize — 100%
// pfmNone — rankinis mastelis

// Tamsaus režimo peržiūros modelis: tamsi slinkimo sritis, balto popieriaus PDF puslapis
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

9 žingsnis: paieškos paryškinimas

HighlightSearchText nuskaito dabartinį peržiūros puslapį ir kiekvieno perpiešimo metu ant kiekvieno sutapimo uždeda HighlightColor kaukę:

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

// Perėjus į kitą puslapį paryškinimas išvalomas automatiškai

10 žingsnis: PDF/A archyvinė išvestis

SaveAsPdfA po įrašymo pritaiko papildomą inkrementinį atnaujinimą, įterpiantį XMP metaduomenų srautą, sRGB ICC OutputIntent ir atnaujintą dokumento katalogą:

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

// Patikrinti gaunamo dokumento atitiktį
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Nėra PDF/A');
end;

Kiti žingsniai