PDFium Component Docs

Hurtigstartguide

Denne veiledningen hjelper deg i gang med PDFium VCL-komponenter på bare noen få minutter

Trinn 1: Opprett et nytt prosjekt

  1. Opprett en ny VCL Forms Application i IDE-en din
  2. Lagre prosjektet på et praktisk sted

Trinn 2: Legg til komponenter på skjemaet

  1. Åpne losLab-komponentpaletten
  2. Plasser en TPdf-komponent på skjemaet ditt
  3. Plasser en TPdfView-komponent på skjemaet ditt
  4. Sett Pdf-egenskapen til TPdfView slik at den peker på TPdf-komponenten din

Trinn 3: Last inn din første PDF

Enkel PDF-innlasting:

// Last inn en PDF-fil
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));

// Eller last inn fra en minnestrøm
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;

Trinn 4: Grunnleggende PDF-operasjoner

Naviger mellom sider

// Gå til neste side
if PdfView1.PageNumber < Pdf1.PageCount then
  PdfView1.PageNumber := PdfView1.PageNumber + 1;

// Gå til forrige side
if PdfView1.PageNumber > 1 then
  PdfView1.PageNumber := PdfView1.PageNumber - 1;

Trekk ut tekst

// Trekk ut all tekst fra den gjeldende siden
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;

// Trekk ut tekst fra et rektangulært område
var
  RectText: WString;
begin
  RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
  ShowMessage(RectText);
end;

Søk i tekst

// Finn tekst i dokumentet
var
  Position: Integer;
begin
  Position := Pdf1.FindFirst('search term');
  if Position >= 0 then
    ShowMessage('Found at position: ' + IntToStr(Position))
  else
    ShowMessage('Not found');
end;

Opprett en ny PDF

// Opprett en ny PDF med tekst
Pdf1.CreateDocument;
Pdf1.Compressed := True; // aktiver strømkomprimering
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // A4-størrelse
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;

Zoom og visning

// Angi zoomnivå (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%

// Angi visningsmodus
PdfView1.DisplayMode := dmSingleContinuous;

// Roter siden
PdfView1.Rotation := ro90;

Trinn 5: Dokumentegenskaper

// Les dokumentmetadata
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)));

Trinn 6: Passordbeskyttede dokumenter

// Åpne en passordbeskyttet PDF
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;

Trinn 7: Store dokumenter (strømmende innlasting)

For fler-GB-PDF-er eller eksterne / databasebaserte kilder, bruk LoadCustomDocument slik at PDFium henter blokker ved behov i stedet for å bufre hele filen i minnet:

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

Trinn 8: Sidelayout (TPdfView FitMode)

FitMode holder lange dokumenter automatisk innrammet ved Resize og når den gjeldende siden endres:

PdfView1.FitMode := pfmFitPage; // hele siden i visningsområdet
// pfmFitWidth — sidens bredde samsvarer med visningsområdets bredde
// pfmActualSize — 100%
// pfmNone — manuell zoom

// Mønster for mørk modus: mørkt rulleområde, papirhvit PDF-side
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;

Trinn 9: Søkeutheving

HighlightSearchText skanner den gjeldende visningssiden og legger en HighlightColor-maske over hvert treff ved hver omtegning:

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

// Bytte til en annen side fjerner uthevingen automatisk

Trinn 10: Arkivutdata for PDF/A

SaveAsPdfA etterbehandler grunnlagringen med en inkrementell oppdatering som legger inn en XMP-metadata-strøm, en sRGB ICC OutputIntent og en oppdatert dokumentkatalog:

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

// Kontroller samsvar for et innkommende dokument
case Pdf1.PdfAConformance of
  pac1b: Log.Add('PDF/A-1b');
  pacNone: Log.Add('Not PDF/A');
end;

Neste steg