Neste tutorial, vamos explorar como criar um aplicativo profissional de visualização de arquivos PDF usando. PDFium VCL, um componente Delphi poderoso que encapsula o motor de renderização PDFium do Google. Esta demonstração mostra as funcionalidades básicas de visualização que formam a base de qualquer aplicativo PDF.
Visão Geral
O demo do Visualizador de PDF demonstra as funcionalidades essenciais necessárias para visualizar documentos PDF em uma aplicação Delphi. Ele oferece uma solução completa e pronta para uso para visualização de PDF, com recursos comparáveis a leitores de PDF comerciais.
Principais Características
- Carregamento de documentos. – Abra arquivos PDF com suporte para proteção por senha.
- Navegação de página. – Primeiro, anterior, próximo, último botão de página com atalhos de teclado.
- Controles de zoom. – Múltiplos níveis de zoom, incluindo ajuste à página e ajuste à largura.
- Rotação de páginas – Gire as páginas 90° para a esquerda ou para a direita.
- Seleção de texto. – Selecione e copie texto de documentos PDF.
- Marcadores. – Navegue usando o índice do documento.
- Pesquisa de texto. – Encontrar texto dentro do documento.
- Impressão. – Imprimir documentos com seleção de intervalo de páginas.
- Salvar como. – Exportar o documento para um novo arquivo PDF.
Requisitos da DLL PDFium
Antes de executar qualquer aplicação PDFium VCL, você deve instalar os arquivos DLL do PDFium. Os arquivos DLL estão localizados em: DLLs pasta do pacote PDFium VCL:
pdfium32.dll– Versão de 32 bits (~5 MB).pdfium64.dll– Versão de 64 bits (~6 MB).pdfium32v8.dll– 32 bits com o motor JavaScript V8 (aproximadamente 23 MB).pdfium64v8.dll– 64 bits com o motor JavaScript V8 (aproximadamente 27 MB).
Instalação: Executar PDFiumVCL\DLLs\CopyDlls.bat como Administrador. Este script copia automaticamente os DLLs apropriados para os diretórios do sistema 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: Use os DLLs padrão (pdfium32.dll/pdfium64.dll) para a maioria das aplicações. As versões V8 são necessárias apenas se seus arquivos PDF contiverem JavaScript que requer execução.
Componentes principais
A demonstração usa dois componentes principais PDFium VCL:
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
Componente TPdf.
O TPdf Este componente gerencia todas as operações de documentos PDF, incluindo carregamento, salvamento e acesso a propriedades do documento, como metadados, marcadores e informações da página.
Componente TPdfView.
O TPdfView Este componente é um controle visual com rolagem que renderiza páginas PDF com rolagem suave, suporte a zoom e tratamento de interação do usuário.
Carregando um documento PDF.
Abrir um arquivo PDF é simples:
|
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; |
Navegação de página.
Implementar a navegação de página é simples com o PageNumber Rolagem Contínua (Continuous Scrolling)
|
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; |
Controle de Zoom
O TPdfView O componente oferece opções de zoom flexíveis:
|
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]; |
Rotação de páginas
Gire as páginas usando o Rotation Rolagem Contínua (Continuous Scrolling)
|
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; |
Exibindo informações do documento
Acesse os metadados do documento através do 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; |
Trabalhando com marcadores
A demonstração preenche um TreeView com os marcadores do documento para facilitar a navegação:
|
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; |
Opções de Renderização
Personalize a renderização com diversas opções:
|
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]; |
Conclusão.
A demonstração do Visualizador de PDF oferece uma base sólida para construir funcionalidades de visualização de PDF em seus aplicativos Delphi. Com o PDFium VCL, você tem acesso ao mesmo mecanismo de renderização de PDF usado pelo Google Chrome, garantindo uma exibição de PDF de alta qualidade e precisa.
O componente lida automaticamente com recursos complexos de PDF, como anotações, campos de formulário e fontes incorporadas, permitindo que você se concentre na construção dos recursos exclusivos do seu aplicativo, em vez de na análise de baixo nível de PDF.
Baixe o PDFium VCL de loslab.com para começar a desenvolver em PDF no Delphi.