PDFium Component Docs

Pikakäynnistysopas

Tämä opas auttaa sinua pääsemään alkuun PDFium VCL -komponenttien kanssa vain muutamassa minuutissa

Vaihe 1: Luo uusi projekti

  1. Luo uusi VCL Forms Application IDE:ssäsi
  2. Tallenna projekti sopivaan sijaintiin

Vaihe 2: Lisää komponentit lomakkeeseesi

  1. Avaa losLab-komponenttipaletti
  2. Vedä TPdf-komponentti lomakkeelle
  3. Vedä TPdfView-komponentti lomakkeelle
  4. Aseta TPdfView-komponentin Pdf-ominaisuus osoittamaan TPdf-komponenttiin

Vaihe 3: Lataa ensimmäinen PDF

Yksinkertainen PDF:n lataus:

// Lataa PDF-tiedosto
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Tai lataa muistivirrasta
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;

Vaihe 4: Perus-PDF-toiminnot

Selaa sivuja

// Siirry seuraavalle sivulle
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Siirry edelliselle sivulle
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Poimi teksti

// Poimi kaikki teksti nykyiseltä sivulta
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Poimi teksti suorakulmaiselta alueelta
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Hae tekstiä

// Etsi tekstiä asiakirjasta
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Found at position: ' + IntToStr(Position))
  else
    ShowMessage('Not found');
end;

Luo uusi PDF

// Luo uusi PDF tekstillä
Pdf1.CreateDocument;
Pdf1.Compressed := True; // ota virran pakkaus käyttöön
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4-koko
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Zoomaus ja näyttö

// Aseta zoom-taso (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Aseta näyttötila
PdfView1.DisplayMode := dmSingleContinuous;

// Kierrä sivua
PdfView1.Rotation := ro90;

Vaihe 5: Asiakirjan ominaisuudet

// Lue asiakirjan metatiedot
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)));

Vaihe 6: Salasanasuojatut asiakirjat

// Avaa salasanasuojattu PDF
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Vaihe 7: Suuret asiakirjat (suoratoistona lataus)

Useiden gigatavujen PDF-tiedostoissa tai etä- ja tietokantapohjaisissa lähteissä käytä LoadCustomDocument-menetelmää, jotta PDFium hakee lohkot pyynnöstä eikä koko tiedostoa puskuroida muistiin:

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

Vaihe 8: Sivun asettelu (TPdfView Fit Mode)

FitMode pitää pitkät asiakirjat automaattisesti kehyksessä Resize-tapahtumassa ja nykyisen sivun vaihtuessa:

PdfView1.FitMode := pfmFitPage; // koko sivu näkymään
// pfmFitWidth — sivun leveys vastaa näkymän leveyttä
// pfmActualSize — 100%
// pfmNone — manuaalinen zoomaus

// Tumman tilan katselumalli: tumma vieritysalue, paperinvalkoinen PDF-sivu
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Vaihe 9: Haun korostus

HighlightSearchText käy läpi nykyisen näkymäsivun ja piirtää HighlightColor-maskin jokaisen osuman päälle jokaisessa uudelleenpiirrossa:

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

// Siirtyminen toiselle sivulle tyhjentää korostuksen automaattisesti

Vaihe 10: PDF/A-arkistointitulostus

SaveAsPdfA tekee perustallennuksen jälkeen inkrementaalisen päivityksen, joka lisää XMP-metatietovirran, sRGB ICC OutputIntentin ja päivitetyn asiakirjakatalogin:

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

// Tarkista saapuvan asiakirjan vaatimustenmukaisuus
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Not PDF/A');
end;

Seuraavat vaiheet