Dans ce tutoriel, nous allons explorer comment créer une application de visionnage de PDF professionnelle en utilisant PDFium VCL, un composant Delphi puissant qui encapsule le moteur de rendu PDFium de Google. Cette démonstration présente les fonctionnalités de base de la lecture qui constituent la fondation de toute application PDF. PDFium VCL, un composant Delphi puissant qui encapsule le moteur de rendu PDFium de Google. Cette démonstration présente les fonctionnalités de base de la lecture qui constituent la fondation de toute application PDF.
Aperçu
La démonstration du visionneur PDF illustre les fonctionnalités essentielles nécessaires pour afficher des documents PDF dans une application Delphi. Elle fournit une solution de visionnage PDF complète et prête à l'emploi, avec des fonctionnalités comparables aux lecteurs PDF commerciaux.
Principales fonctionnalités
- Chargement des documents – Ouvrir des fichiers PDF avec prise en charge de la protection par mot de passe
- Navigation dans les pages – Boutons de page précédente, suivante, suivante et dernière, avec raccourcis clavier.
- Contrôles de zoom. – Plusieurs niveaux de zoom, y compris l'ajustement à la page et à la largeur.
- Rotation des pages. – Faire pivoter les pages de 90° vers la gauche ou la droite.
- Sélection de texte. – Sélectionner et copier du texte à partir de documents PDF.
- Favoris. – Naviguer à l'aide de la table des matières du document.
- Recherche de texte. – Rechercher du texte dans le document.
- Impression. – Imprimer des documents avec sélection de plage de pages.
- Enregistrer sous. – Exporter le document vers un nouveau fichier PDF.
Exigences des DLL PDFium
Avant d'exécuter une application PDFium VCL, vous devez installer les fichiers DLL de PDFium. Les DLL se trouvent dans le répertoire : DLLs dossier du package PDFium VCL :
pdfium32.dll– Version 32 bits (environ 5 Mo).pdfium64.dll– Version 64 bits (environ 6 Mo).pdfium32v8.dll– 32 bits avec le moteur JavaScript V8 (environ 23 Mo).pdfium64v8.dll– 64 bits avec le moteur JavaScript V8 (environ 27 Mo).
Installation : Exécuter PDFiumVCL\DLLs\CopyDlls.bat en tant qu'administrateur. Ce script copie automatiquement les DLL appropriées dans les répertoires système de Windows :
|
1 2 3 4 5 6 |
@echo off REM On 64-bit Windows: REM - 32-bit DLLs → %SystemRoot%\SysWOW64\ REM - 64-bit DLLs → %SystemRoot%\System32\ REM On 32-bit Windows: REM - 32-bit DLLs → %SystemRoot%\System32\ |
Remarque : Utilisez les DLL standard (pdfium32.dll/pdfium64.dll) pour la plupart des applications. Les versions V8 ne sont nécessaires que si vos fichiers PDF contiennent du JavaScript qui nécessite une exécution.
Composants principaux
La démo utilise deux principaux composants PDFium VCL :
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
Composant TPdf
La TPdf Ce composant gère toutes les opérations sur les documents PDF, notamment le chargement, la sauvegarde et l'accès aux propriétés du document, telles que les métadonnées, les signets et les informations sur les pages.
Composant TPdfView
La TPdfView Ce composant est un contrôle visuel défilant qui affiche les pages PDF avec un défilement fluide, une prise en charge du zoom et une gestion des interactions utilisateur.
Chargement d'un document PDF
L'ouverture d'un fichier PDF est simple :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
procedure TFormMain.SpeedButtonOpenPdfClick(Sender: TObject); var Password: string; begin if OpenDialog.Execute then begin Pdf.FileName := OpenDialog.FileName; Pdf.Password := ''; Pdf.PageNumber := 0; try PdfView.Active := True; except on Error: EPdfError do if Error.Message = 'Password required or incorrect password' then begin if InputQuery('Enter Password', 'Password: ', Password) then begin Pdf.Password := Password; PdfView.Active := True; end else raise; end else raise; end; if PdfView.PageCount > 0 then PdfView.PageNumber := 1; end; end; |
Navigation dans les pages
La mise en œuvre de la navigation dans les pages est simple grâce à PageNumber propriété :
|
1 2 3 4 5 6 7 8 9 10 11 |
// Navigate to first page PdfView.PageNumber := 1; // Navigate to last page PdfView.PageNumber := PdfView.PageCount; // Previous page PdfView.PageNumber := PdfView.PageNumber - 1; // Next page PdfView.PageNumber := PdfView.PageNumber + 1; |
Contrôle de zoom.
La TPdfView Le composant offre des options de zoom flexibles.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Set specific zoom levels PdfView.Zoom := 1.0; // 100% PdfView.Zoom := 0.5; // 50% PdfView.Zoom := 2.0; // 200% // Fit to page width PdfView.Zoom := PdfView.PageWidthZoom[PdfView.PageNumber]; // Fit entire page in view PdfView.Zoom := PdfView.PageZoom[PdfView.PageNumber]; // Actual size (based on DPI) PdfView.Zoom := PdfView.ActualSizeZoom[PdfView.PageNumber]; |
Rotation des pages.
Faites pivoter les pages à l'aide de. Rotation propriété :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Rotate right (clockwise) case PdfView.Rotation of ro0: PdfView.Rotation := ro90; ro90: PdfView.Rotation := ro180; ro180: PdfView.Rotation := ro270; ro270: PdfView.Rotation := ro0; end; // Rotate left (counter-clockwise) case PdfView.Rotation of ro0: PdfView.Rotation := ro270; ro90: PdfView.Rotation := ro0; ro180: PdfView.Rotation := ro90; ro270: PdfView.Rotation := ro180; end; |
Affichage des informations du document.
Accédez aux métadonnées du document via. TPdf Le composant.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
procedure TFormMain.SpeedButtonShowInfoClick(Sender: TObject); begin ShowMessage( 'Author: ' + Pdf.Author + #13#10 + 'Creator: ' + Pdf.Creator + #13#10 + 'Keywords: ' + Pdf.Keywords + #13#10 + 'Producer: ' + Pdf.Producer + #13#10 + 'Subject: ' + Pdf.Subject + #13#10 + 'Title: ' + Pdf.Title + #13#10 + 'Creation date: ' + Pdf.CreationDate + #13#10 + 'Modified date: ' + Pdf.ModifiedDate ); end; |
Travailler avec les signets.
La démo remplit un TreeView avec les signets du document pour une navigation facile.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
procedure TFormMain.AddBookmarks(Node: TTreeNode; Bookmarks: TBookmarks); var ChildNode: TTreeNode; I: Integer; begin for I := 0 to Length(Bookmarks) - 1 do begin ChildNode := TreeViewBookmarks.Items.AddChildObject( Node, Bookmarks[I].Title, Bookmarks[I].Handle ); ChildNode.HasChildren := Pdf.HasBookmarkChildren[Bookmarks[I]]; if ChildNode.HasChildren then AddBookmarks(ChildNode, Pdf.BookmarkChildren[Bookmarks[I]]); end; end; |
Options de rendu.
Personnalisez le rendu avec diverses options :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Available render options type TRenderOption = ( reAnnotations, // Render annotations reLcd, // LCD optimized rendering reNoNativeText, // Don't use native text output reGrayscale, // Render in grayscale reLimitCache, // Limit image cache size reHalftone, // Use halftone for image stretching rePrinting, // Optimize for printing reNoSmoothText, // Disable text anti-aliasing reNoSmoothImage, // Disable image anti-aliasing reNoSmoothPath // Disable path anti-aliasing ); // Apply options to the view PdfView.Options := [reAnnotations, reLcd]; |
Conclusion.
La démo du lecteur PDF offre une base solide pour intégrer des fonctionnalités de lecture de PDF dans vos applications Delphi. Avec PDFium VCL, vous accédez au même moteur de rendu PDF utilisé par Google Chrome, garantissant un affichage PDF de haute qualité et précis.
Le composant gère automatiquement les fonctionnalités PDF complexes telles que les annotations, les champs de formulaire et les polices intégrées, vous permettant de vous concentrer sur la création des fonctionnalités uniques de votre application plutôt que sur l'analyse PDF de bas niveau.
Téléchargez PDFium VCL depuis loslab.com pour commencer le développement PDF dans Delphi.