Questa guida vi aiuterà a iniziare a utilizzare i componenti PDFium VCL in pochi minuti.
Pdf del TPdfView in modo che punti al componente TPdfCaricamento PDF semplice:
// Carica un file PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pagine: ' + IntToStr(Pdf1.PageCount));
// Oppure carica da uno stream di memoria
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;
// Vai alla pagina successiva
if PdfView1.PageNumber < Pdf1.PageCount then
PdfView1.PageNumber := PdfView1.PageNumber + 1;
// Vai alla pagina precedente
if PdfView1.PageNumber > 1 then
PdfView1.PageNumber := PdfView1.PageNumber - 1;
// Estrai tutto il testo dalla pagina corrente
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;
// Estrai testo da un'area rettangolare
var
RectText: WString;
begin
RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
ShowMessage(RectText);
end;
// Cerca testo nel documento
var
Position: Integer;
begin
Position := Pdf1.FindFirst('termine di ricerca');
if Position >= 0 then
ShowMessage('Trovato alla posizione: ' + IntToStr(Position))
else
ShowMessage('Non trovato');
end;
// Crea un nuovo PDF con testo
Pdf1.CreateDocument;
Pdf1.Compressed := True; // abilita la compressione degli stream
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // formato A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;
// Imposta il livello di zoom (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%
// Imposta la modalità di visualizzazione
PdfView1.DisplayMode := dmSingleContinuous;
// Ruota la pagina
PdfView1.Rotation := ro90;
// Leggi i metadati del documento
ShowMessage('Titolo: ' + Pdf1.Title);
ShowMessage('Autore: ' + Pdf1.Author);
ShowMessage('Creator: ' + Pdf1.Creator);
ShowMessage('Producer: ' + Pdf1.Producer);
ShowMessage('Pagine: ' + IntToStr(Pdf1.PageCount));
ShowMessage('Versione: ' + IntToStr(Ord(Pdf1.PdfVersion)));
// Apri un PDF protetto da password
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Per PDF di più gigabyte o sorgenti remote / su database, utilizzare
LoadCustomDocument in modo che PDFium recuperi i blocchi su richiesta
invece di bufferizzare l'intero file in memoria:
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
Pdf1.Active := True;
end;
FitMode mantiene i documenti lunghi inquadrati automaticamente
al Resize e al cambio di pagina corrente:
PdfView1.FitMode := pfmFitPage; // pagina intera nel viewport
// pfmFitWidth — larghezza pagina corrispondente alla larghezza del viewport
// pfmActualSize — 100%
// pfmNone — zoom manuale
// Pattern visualizzatore in modalità scura: area di scorrimento scura, pagina PDF bianco-carta
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;
HighlightSearchText scansiona la pagina corrente del visualizzatore e
dipinge una maschera HighlightColor su ogni corrispondenza a ogni
ridisegno:
var
MatchCount: Integer;
begin
PdfView1.HighlightColor := clYellow;
MatchCount := PdfView1.HighlightSearchText('fattura');
Status.Caption := IntToStr(MatchCount) + ' corrispondenze';
end;
// Passare a una pagina diversa cancella automaticamente l'evidenziazione
SaveAsPdfA post-elabora il salvataggio di base con un
aggiornamento incrementale che inietta uno stream di metadati XMP, un OutputIntent
ICC sRGB e un catalogo del documento aggiornato:
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
ShowMessage('PDF/A-1b salvato');
// Verifica la conformità di un documento in ingresso
case Pdf1.PdfAConformance of
pac1b: Log.Add('PDF/A-1b');
pacNone: Log.Add('Non PDF/A');
end;