In diesem Tutorial erfahren Sie, wie Sie eine professionelle PDF-Viewer-Anwendung erstellen. PDFium VCL, eine leistungsstarke Delphi-Komponente, die die PDFium-Rendering-Engine von Google umschließt. Diese Demo zeigt die wichtigsten Anzeigefunktionen, die die Grundlage jeder PDF-Anwendung bilden.
Überblick
Die PDF Viewer-Demo demonstriert die wesentlichen Funktionen, die zum Anzeigen von PDF-Dokumenten in einer Delphi-Anwendung erforderlich sind. Es bietet eine vollständige, gebrauchsfertige PDF-Anzeigelösung mit Funktionen, die mit kommerziellen PDF-Readern vergleichbar sind.
Hauptmerkmale
- Laden von Dokumenten – Öffnen von PDF-Dateien mit Unterstützung für Passwortschutz.
- Seitennavigation – Schaltflächen für die erste, vorherige, nächste und letzte Seite mit Tastenkombinationen.
- Zoom-Steuerelemente – Mehrere Zoomstufen, einschließlich "Seite anpassen" und "Breite anpassen".
- Seitendrehung – Drehen von Seiten um 90° nach links oder rechts.
- Textauswahl – Auswählen und Kopieren von Text aus PDF-Dokumenten.
- Lesezeichen – Navigieren mithilfe des Inhaltsverzeichnisses des Dokuments.
- Textsuche – Suchen nach Text innerhalb des Dokuments.
- Drucken – Dokumente mit Auswahl des Seitenbereichs drucken.
- Speichern unter – Dokument als neue PDF-Datei exportieren.
PDFium-DLL-Anforderungen
Bevor Sie eine PDFium VCL-Anwendung ausführen, müssen Sie die PDFium-DLL-Dateien installieren. Die DLLs befinden sich im DLLs Ordner des PDFium VCL-Pakets:
pdfium32.dll– 32-Bit-Version (~5 MB).pdfium64.dll– 64-Bit-Version (~6 MB).pdfium32v8.dll– 32-Bit-Version mit V8 JavaScript-Engine (~23 MB).pdfium64v8.dll– 64-Bit-Version mit V8 JavaScript-Engine (~27 MB).
Installation: Ausführen PDFiumVCL\DLLs\CopyDlls.bat als Administrator. Dieses Skript kopiert automatisch die entsprechenden DLLs in die Windows-Systemverzeichnisse:
|
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\ |
Notiz: Verwenden Sie die Standard-DLLs (pdfium32.dll/pdfium64.dll) für die meisten Anwendungen. Die V8-Versionen werden nur benötigt, wenn Ihre PDFs JavaScript enthalten, das ausgeführt werden muss.
Kernkomponenten
Die Demo verwendet zwei Hauptkomponenten von PDFium VCL:
|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
TPDF-Komponente
Der TPdf Komponente, die alle PDF-Dokumentoperationen abwickelt, einschließlich Laden, Speichern und Zugriff auf Dokumenteigenschaften wie Metadaten, Lesezeichen und Seiteninformationen.
TPdfView-Komponente
Der TPdfView Komponente ist eine scrollbare visuelle Steuerung, die PDF-Seiten mit flüssigem Scrollen, Zoom-Unterstützung und Benutzerinteraktionsverarbeitung rendert.
Laden eines PDF-Dokuments
Das Öffnen einer PDF-Datei ist unkompliziert:
|
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; |
Seitennavigation
Die Implementierung der Seitennavigation ist einfach mit der PageNumber Eigenschaft:
|
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; |
Zoomsteuerung
Der TPdfView Komponente bietet flexible Zoom-Optionen:
|
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]; |
Seitendrehung
Seiten drehen mit der Rotation Eigenschaft:
|
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; |
Dokumentinformationen anzeigen
Zugriff auf Metadaten des Dokuments über die TPdf Komponente:
|
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; |
Arbeiten mit Lesezeichen
Die Demo füllt eine TreeView mit den Lesezeichen des Dokuments für eine einfache Navigation:
|
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; |
Renderoptionen
Passen Sie das Rendering mit verschiedenen Optionen an:
|
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]; |
Abschluss
Die PDF Viewer-Demo bietet eine solide Grundlage für die Integration von PDF-Anzeigefunktionen in Ihre Delphi-Anwendungen. Mit PDFium VCL erhalten Sie Zugriff auf dieselbe PDF-Rendering-Engine, die auch von Google Chrome verwendet wird, und sorgen so für eine qualitativ hochwertige und genaue PDF-Anzeige.
Die Komponente verarbeitet komplexe PDF-Funktionen wie Anmerkungen, Formularfelder und eingebettete Schriftarten automatisch, sodass Sie sich auf die Entwicklung der einzigartigen Funktionen Ihrer Anwendung konzentrieren können und nicht auf die einfache PDF-Analyse.
Laden Sie PDFium VCL herunter Besuchen Sie loslab.com, um mit der PDF-Entwicklung in Delphi zu beginnen.