In questo tutorial, esploreremo come creare un'applicazione professionale per la visualizzazione di file PDF utilizzando PDFium VCL, un potente componente Delphi che avvolge il motore di rendering PDFium di Google. Questa demo mostra le funzionalità di base per la visualizzazione che costituiscono la base di qualsiasi applicazione PDF. PDFium VCL, un potente componente Delphi che avvolge il motore di rendering PDFium di Google. Questa demo mostra le funzionalità di base per la visualizzazione che costituiscono la base di qualsiasi applicazione PDF.
Panoramica
La demo del visualizzatore PDF dimostra le funzionalità essenziali necessarie per la visualizzazione di documenti PDF in un'applicazione Delphi. Fornisce una soluzione completa e pronta all'uso per la visualizzazione di file PDF, con funzionalità paragonabili a quelle dei lettori PDF commerciali.
Caratteristiche Principali
- Caricamento dei documenti – Apertura di file PDF con supporto per la protezione tramite password
- Navigazione tra le pagine – Pulsanti per la prima, la pagina precedente, la pagina successiva e l'ultima pagina, con scorciatoie da tastiera.
- Controlli di zoom. – Molti livelli di zoom, inclusi "adatta alla pagina" e "adatta alla larghezza".
- Rotazione delle pagine – Ruota le pagine di 90° a sinistra o a destra.
- Selezione del testo. – Seleziona e copia il testo dai documenti PDF.
- Segnalibri. – Naviga utilizzando l'indice del documento.
- Ricerca di testo. – Trova testo all'interno del documento.
- Stampa. – Stampa documenti con selezione dell'intervallo di pagine.
- Salva con nome. – Esporta il documento in un nuovo file PDF.
Requisiti delle librerie DLL di PDFium
Prima di eseguire qualsiasi applicazione PDFium VCL, è necessario installare i file DLL di PDFium. I file DLL si trovano nella cartella: DLLs cartella del pacchetto PDFium VCL:
pdfium32.dll– Versione a 32 bit (~5 MB).pdfium64.dll– Versione a 64 bit (~6 MB).pdfium32v8.dll– 32-bit con motore JavaScript V8 (~23 MB)pdfium64v8.dll– 64-bit con motore JavaScript V8 (~27 MB)
Installazione: Esegui PDFiumVCL\DLLs\CopyDlls.bat come amministratore. Questo script copia automaticamente le DLL appropriate nelle directory di sistema di 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\ |
Nota: Utilizzare le DLL standard (pdfium32.dll/pdfium64.dll) per la maggior parte delle applicazioni. Le versioni V8 sono necessarie solo se i file PDF contengono JavaScript che richiede l'esecuzione.
Componenti principali
La demo utilizza due componenti principali PDFium VCL:
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
Componente TPdf
Il TPdf Questo componente gestisce tutte le operazioni sui documenti PDF, inclusi il caricamento, il salvataggio e l'accesso alle proprietà del documento, come metadati, segnalibri e informazioni sulle pagine.
Componente TPdfView
Il TPdfView Questo componente è un controllo visivo scorrevole che visualizza le pagine PDF con scorrimento fluido, supporto zoom e gestione delle interazioni dell'utente.
Caricamento di un documento PDF
L'apertura di un file PDF è semplice:
|
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; |
Navigazione tra le pagine
L'implementazione della navigazione tra le pagine è semplice con il PageNumber proprietà:
|
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; |
Controllo zoom.
Il TPdfView Il componente offre opzioni di zoom flessibili:
|
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]; |
Rotazione delle pagine
Ruota le pagine utilizzando Rotation proprietà:
|
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; |
Visualizzazione delle informazioni del documento
Accedi ai metadati del documento tramite TPdf componente:
|
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; |
Lavorare con i segnalibri
La demo popola un TreeView con i segnalibri del documento per una facile navigazione:
|
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; |
Opzioni di rendering
Personalizza il rendering con varie opzioni:
|
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]; |
Conclusione.
La demo di PDF Viewer fornisce una solida base per integrare la funzionalità di visualizzazione PDF nelle tue applicazioni Delphi. Con PDFium VCL, hai accesso allo stesso motore di rendering PDF utilizzato da Google Chrome, garantendo una visualizzazione PDF di alta qualità e precisa.
Il componente gestisce automaticamente funzionalità PDF complesse come annotazioni, campi modulo e font incorporati, consentendoti di concentrarti sullo sviluppo delle funzionalità uniche della tua applicazione anziché sull'analisi PDF di basso livello.
Scarica PDFium VCL da loslab.com per iniziare lo sviluppo PDF in Delphi.