Ce guide vous aidera à démarrer avec les composants PDFium VCL en quelques minutes seulement.
Pdf de TPdfView pour qu'elle pointe vers votre composant TPdfChargement PDF simple :
// Charger un fichier PDF
Pdf1.FileName := 'C:\Sample.pdf';
Pdf1.Active := True;
ShowMessage('Pages: ' + IntToStr(Pdf1.PageCount));
// Ou charger depuis un flux mémoire
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;
// Aller à la page suivante
if PdfView1.PageNumber < Pdf1.PageCount then
PdfView1.PageNumber := PdfView1.PageNumber + 1;
// Aller à la page précédente
if PdfView1.PageNumber > 1 then
PdfView1.PageNumber := PdfView1.PageNumber - 1;
// Extraire tout le texte de la page courante
Pdf1.PageNumber := 1;
Memo1.Text := Pdf1.Text;
// Extraire le texte d'une zone rectangulaire
var
RectText: WString;
begin
RectText := Pdf1.TextInRectangle(100, 100, 500, 200);
ShowMessage(RectText);
end;
// Rechercher du texte dans le 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;
// Créer un nouveau PDF avec du texte
Pdf1.CreateDocument;
Pdf1.Compressed := True; // activer la compression des flux
Pdf1.Active := True;
Pdf1.AddPage(0, 595, 842); // format A4
Pdf1.AddText('Hello World!', 'Arial', 24, 100, 700, clBlack, $FF, 0.0);
Pdf1.SaveAs('C:\NewDocument.pdf');
Pdf1.Active := False;
// Définir le niveau de zoom (1.0 = 100%)
PdfView1.Zoom := 1.5; // 150%
// Définir le mode d'affichage
PdfView1.DisplayMode := dmSingleContinuous;
// Faire pivoter la page
PdfView1.Rotation := ro90;
// Lire les métadonnées du document
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)));
// Ouvrir un PDF protégé par mot de passe
Pdf1.FileName := 'C:\Protected.pdf';
Pdf1.Password := 'mypassword';
Pdf1.Active := True;
Pour les PDF de plusieurs Go ou les sources distantes / adossées à une base de données, utilisez
LoadCustomDocument afin que PDFium récupère les blocs à la demande
au lieu de mettre en tampon le fichier entier en mémoire :
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('C:\Huge.pdf', fmOpenRead or fmShareDenyWrite);
Pdf1.LoadCustomDocument(FileStream, True); // AOwnsStream
Pdf1.Active := True;
end;
FitMode conserve les longs documents cadrés automatiquement
lors d'un Resize et lors d'un changement de page :
PdfView1.FitMode := pfmFitPage; // page entière dans la fenêtre
// pfmFitWidth — la largeur de la page correspond à celle de la fenêtre
// pfmActualSize — 100 %
// pfmNone — zoom manuel
// Modèle visionneuse mode sombre : zone de défilement sombre, page PDF blanc papier
PdfView1.Color := clBlack;
PdfView1.PageColor := clWhite;
HighlightSearchText analyse la page de la vue courante et
peint un masque HighlightColor sur chaque correspondance à chaque
redessin :
var
MatchCount: Integer;
begin
PdfView1.HighlightColor := clYellow;
MatchCount := PdfView1.HighlightSearchText('invoice');
Status.Caption := IntToStr(MatchCount) + ' matches';
end;
// Passer à une autre page efface automatiquement la surbrillance
SaveAsPdfA post-traite l'enregistrement de base avec une
mise à jour incrémentielle qui injecte un flux de métadonnées XMP, un
OutputIntent ICC sRGB et un catalogue de document mis à jour :
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf', pac1b) then
ShowMessage('Saved PDF/A-1b');
// Vérifier la conformité d'un document entrant
case Pdf1.PdfAConformance of
pac1b: Log.Add('PDF/A-1b');
pacNone: Log.Add('Not PDF/A');
end;