Acest ghid vă ajută să începeți să lucrați cu componentele PDFium VCL în doar câteva minute
Pdf a TPdfView astfel încât să indice componenta TPdfÎncărcare PDF simplă:
// Încărcați un fișier PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
// Sau încărcați dintr-un flux de memorie
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;
// Mergeți la pagina următoare
if PdfView1.PageNumber < Pdf1.PageCount then
PdfView1.PageNumber := PdfView1.PageNumber + 1;
// Mergeți la pagina anterioară
if PdfView1.PageNumber > 1 then
PdfView1.PageNumber := PdfView1.PageNumber - 1;
// Extrageți tot textul din pagina curentă
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;
// Extrageți text dintr-o zonă dreptunghiulară
var
RectText: WString;
begin
RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
ShowMessage(RectText);
end;
// Căutați text în document
var
Position: Integer;
begin
Position := Pdf1.FindFirst('search term');
if Position >= 0 then
ShowMessage('Found at position: ' + IntToStr(Position))
else
ShowMessage('Not found');
end;
// Creați un PDF nou cu text
Pdf1.CreateDocument;
Pdf1.Compressed := True; // activați compresia fluxului
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // dimensiune A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;
// Setați nivelul de zoom (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%
// Setați modul de afișare
PdfView1.DisplayMode := dmSingleContinuous;
// Rotiți pagina
PdfView1.Rotation := ro90;
// Citiți metadatele documentului
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)));
// Deschideți un PDF protejat cu parolă
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Pentru PDF-uri de ordinul mai multor GB sau surse la distanță ori bazate pe bază de date, folosiți
LoadCustomDocument astfel încât PDFium să preia blocurile la cerere
în loc să memoreze întregul fișier în memorie:
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
Pdf1.Active := True;
end;
FitMode păstrează automat documentele lungi încadrate
la Resize și când se schimbă pagina curentă:
PdfView1.FitMode := pfmFitPage; // întreaga pagină în viewport
// pfmFitWidth — lățimea paginii se potrivește cu lățimea viewportului
// pfmActualSize — 100%
// pfmNone — zoom manual
// Model pentru vizualizare în mod întunecat: zonă de derulare întunecată, pagină PDF albă ca hârtia
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;
HighlightSearchText scanează pagina curentă afișată și
aplică o mască HighlightColor peste fiecare potrivire la fiecare
rerandare:
var
MatchCount: Integer;
begin
PdfView1.HighlightColor := clYellow;
MatchCount := PdfView1.HighlightSearchText('invoice');
Status.Caption := IntToStr(MatchCount) + ' matches';
end;
// Trecerea la o altă pagină elimină automat evidențierea
SaveAsPdfA preprocesează salvarea de bază cu o
actualizare incrementală care injectează un flux de metadate XMP, un sRGB
ICC OutputIntent și un catalog de document actualizat:
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
ShowMessage('Saved PDF/A-1b');
// Verificați conformitatea unui document de intrare
case Pdf1.PdfAConformance of
pac1b: Log.Add('PDF/A-1b');
pacNone: Log.Add('Not PDF/A');
end;