PDFium Component Docs

Gyors kezdési útmutató

Ez az útmutató néhány perc alatt segít elkezdeni a PDFium VCL használatát

1. lépés: Új projekt létrehozása

  1. Hozzon létre egy új VCL Forms Application projektet az IDE-ben
  2. Mentse a projektet egy könnyen elérhető helyre

2. lépés: Összetevők hozzáadása az űrlaphoz

  1. Nyissa meg a losLab összetevőpalettát
  2. Helyezzen egy TPdf összetevőt az űrlapra
  3. Helyezzen egy TPdfView összetevőt az űrlapra
  4. Állítsa a TPdfView Pdf tulajdonságát a TPdf összetevőre

3. lépés: Az első PDF betöltése

Egyszerű PDF-betöltés:

// Töltsön be egy PDF-fájlt
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Oldalak: ' + IntToStr(Pdf1.PageCount));

// Vagy töltsön be memóriastreamből
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. lépés: Alapvető PDF-műveletek

Oldalak közti navigáció

// Ugrás a következő oldalra
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Ugrás az előző oldalra
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Szöveg kinyerése

// Kinyeri az összes szöveget az aktuális oldalról
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Szöveg kinyerése téglalap alakú területről
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Szöveg keresése

// Szöveg keresése a dokumentumban
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Találat a pozíción: ' + IntToStr(Position))
  else
    ShowMessage('Nem található');
end;

Új PDF létrehozása

// Új PDF létrehozása szöveggel
Pdf1.CreateDocument;
Pdf1.Compressed := True; // engedélyezze a stream tömörítését
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4 méret
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Nagyítás és megjelenítés

// Állítsa be a nagyítási szintet (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Állítsa be a megjelenítési módot
PdfView1.DisplayMode := dmSingleContinuous;

// Oldal forgatása
PdfView1.Rotation := ro90;

5. lépés: Dokumentumtulajdonságok

// Dokumentum-metaadatok beolvasása
ShowMessage('Cím: ' + Pdf1.Title);
ShowMessage('Szerző: ' + Pdf1.Author);
ShowMessage('Létrehozó: ' + Pdf1.Creator);
ShowMessage('Előállító: ' + Pdf1.Producer);
ShowMessage('Oldalak: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Verzió: ' + IntToStr(Ord(Pdf1.PdfVersion)));

6. lépés: Jelszóval védett dokumentumok

// Jelszóval védett PDF megnyitása
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

7. lépés: Nagy dokumentumok (streameléses betöltés)

Több gigabájtos PDF-ekhez vagy távoli / adatbázis-alapú forrásokhoz használja a LoadCustomDocument metódust, hogy a PDFium igény szerint kérje le a blokkokat a teljes fájl memóriába pufferelése helyett

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

8. lépés: Oldalelrendezés (TPdfView illesztési mód)

FitMode automatikusan keretben tartja a hosszú dokumentumokat átméretezéskor és az aktuális oldal változásakor

PdfView1.FitMode := pfmFitPage; // teljes oldal a nézetben
// pfmFitWidth — az oldal szélessége megegyezik a nézet szélességével
// pfmActualSize — 100%
// pfmNone — kézi nagyítás

// Sötét témájú nézet minta: sötét görgetési terület, papírfehér PDF-oldal
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

9. lépés: Keresési kiemelés

A HighlightSearchText az aktuális nézetoldalt vizsgálja, és minden egyezésre HighlightColor maszkkal fest minden újrarajzoláskor

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

// Másik oldalra váltáskor a kiemelés automatikusan törlődik

10. lépés: PDF/A archiválási kimenet

A SaveAsPdfA a mentés alapműveletét egy inkrementális frissítéssel egészíti ki, amely XMP metaadatfolyamot, sRGB ICC OutputIntent-et és frissített dokumentumkatalógust szúr be

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

// Bejövő dokumentum megfelelőségének ellenőrzése
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Not PDF/A');
end;

Következő lépések