En este tutorial, exploraremos cómo crear una aplicación profesional para ver archivos PDF utilizando. PDFium VCL, un componente potente de Delphi que encapsula el motor de renderizado PDFium de Google. Esta demostración muestra las capacidades básicas de visualización que forman la base de cualquier aplicación PDF.
Resumen
La demostración del visor de PDF muestra las funcionalidades esenciales necesarias para visualizar documentos PDF en una aplicación Delphi. Proporciona una solución completa y lista para usar para la visualización de PDF, con características comparables a los lectores de PDF comerciales.
Características principales
- Carga de documentos. – Abra archivos PDF con soporte para protección por contraseña.
- Navegación de páginas. – Primero, botones de "anterior", "siguiente" y "última página" con atajos de teclado.
- Controles de zoom. – Múltiples niveles de zoom, incluyendo ajuste a página y ajuste al ancho.
- Rotación de páginas – Rotar páginas 90° hacia la izquierda o hacia la derecha.
- Selección de texto. – Seleccionar y copiar texto de documentos PDF.
- Marcadores. – Navegar utilizando el índice del documento.
- Búsqueda de texto. – Encontrar texto dentro del documento.
- Imprimir. – Imprimir documentos con selección de rango de páginas.
- Guardar como. – Exportar el documento a un nuevo archivo PDF.
Requisitos de la DLL PDFium
Antes de ejecutar cualquier aplicación PDFium VCL, debe instalar los archivos DLL de PDFium. Los archivos DLL se encuentran en: DLLs carpeta del paquete PDFium VCL:
pdfium32.dll– Versión de 32 bits (~5 MB).pdfium64.dll– Versión de 64 bits (~6 MB).pdfium32v8.dll– 32 bits con el motor de JavaScript V8 (aproximadamente 23 MB).pdfium64v8.dll– 64 bits con el motor de JavaScript V8 (aproximadamente 27 MB).
Instalación: Ejecutar PDFiumVCL\DLLs\CopyDlls.bat como Administrador. Este script copia automáticamente los DLLs apropiados a los directorios del sistema 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\ |
Nota: Utilice los DLLs estándar (pdfium32.dll/pdfium64.dll) para la mayoría de las aplicaciones. Las versiones de V8 solo son necesarias si sus archivos PDF contienen JavaScript que requiere ejecución.
Componentes principales
La demostración utiliza dos componentes principales de PDFium VCL:
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
Componente TPdf.
El TPdf Este componente gestiona todas las operaciones de documentos PDF, incluyendo la carga, el guardado y el acceso a las propiedades del documento, como metadatos, marcadores e información de la página.
Componente TPdfView.
El TPdfView Este componente es un control visual desplazable que renderiza páginas PDF con desplazamiento fluido, soporte de zoom y manejo de la interacción del usuario.
Cargar un documento PDF.
Abrir un archivo PDF es sencillo:
|
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; |
Navegación de páginas.
Implementar la navegación de páginas es simple con el PageNumber propiedad:
|
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; |
Control de zoom.
El TPdfView El componente ofrece opciones 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]; |
Rotación de páginas
Rota las páginas usando el Rotation propiedad:
|
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; |
Mostrar información del documento
Accede a los metadatos del documento a través de 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; |
Trabajar con marcadores
La demostración completa un TreeView con los marcadores del documento para facilitar la navegación:
|
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; |
Opciones de renderizado:
Personalice la renderización con varias opciones:
|
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]; |
Conclusión.
La demostración de PDF Viewer proporciona una base sólida para integrar la funcionalidad de visualización de PDF en sus aplicaciones Delphi. Con PDFium VCL, obtiene acceso al mismo motor de renderización de PDF que utiliza Google Chrome, lo que garantiza una visualización de PDF de alta calidad y precisa.
El componente gestiona automáticamente funciones complejas de PDF, como anotaciones, campos de formulario y fuentes integradas, lo que le permite centrarse en desarrollar las características únicas de su aplicación en lugar de realizar el análisis de PDF a bajo nivel.
Descargue PDFium VCL desde loslab.com para comenzar a desarrollar aplicaciones PDF en Delphi.