W tym samouczku omówimy, jak utworzyć profesjonalną aplikację przeglądarki PDF przy użyciu PDFium VCL, potężny komponent Delphi, który stanowi uzupełnienie silnika renderującego PDFium firmy Google. To demo prezentuje podstawowe możliwości przeglądania, które stanowią podstawę każdej aplikacji PDF.
Przegląd
Demo przeglądarki PDF Viewer demonstruje podstawową funkcjonalność potrzebną do przeglądania dokumentów PDF w aplikacji Delphi. Zapewnia kompletne, gotowe do użycia rozwiązanie do przeglądania PDF z funkcjami porównywalnymi z komercyjnymi czytnikami PDF.
Kluczowe funkcje
- Ładowanie dokumentu – Otwórz pliki PDF z obsługą ochrony hasłem
- Nawigacja strony – Przyciski Pierwsza, Poprzednia, Następna, Ostatnia strona ze skrótami klawiaturowymi
- Sterowanie powiększeniem – Wiele poziomów powiększenia, w tym dopasowanie do strony i dopasowanie do szerokości
- Obrót strony – Obróć strony o 90° w lewo lub w prawo
- Wybór tekstu – Zaznacz i skopiuj tekst z dokumentów PDF
- Zakładki – Nawiguj, korzystając ze spisu treści dokumentu
- Wyszukiwanie tekstowe – Znajdź tekst w dokumencie
- Drukowanie – Drukuj dokumenty z wyborem zakresu stron
- Zapisz jako – Eksportuj dokument do nowego pliku PDF
PDFium Wymagania DLL
Przed uruchomieniem jakiejkolwiek aplikacji PDFium VCL należy zainstalować pliki DLL PDFium. Biblioteki DLL znajdują się w pliku DLLs folder pakietu PDFium VCL:
pdfium32.dll– wersja 32-bitowa (~5 MB)pdfium64.dll– wersja 64-bitowa (~6 MB)pdfium32v8.dll– 32-bitowy z silnikiem V8 JavaScript (~23 MB)pdfium64v8.dll– 64-bitowy z silnikiem V8 JavaScript (~27 MB)
Instalacja: Uruchom PDFiumVCL\DLLs\CopyDlls.bat jako Administrator. Skrypt ten automatycznie kopiuje odpowiednie biblioteki DLL do katalogów systemu 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\ |
Uwaga: Użyj standardowych bibliotek DLL (pdfium32.dll/pdfium64.dll) dla większości zastosowań. Wersje V8 są potrzebne tylko wtedy, gdy pliki PDF zawierają JavaScript, który wymaga wykonania.
Podstawowe komponenty
Demo wykorzystuje dwa główne komponenty PDFium VCL:
Zakreślacz składni Urvanov v2.9.1|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
TPdf Komponent
TPdf obsługuje wszystkie operacje na dokumentach PDF, w tym ładowanie, zapisywanie i uzyskiwanie dostępu do właściwości dokumentu, takich jak metadane, zakładki i informacje o stronie.
TPdfView Komponent
TPdfView to przewijalny wizualny element sterujący, który renderuje strony PDF z płynnym przewijaniem, obsługą powiększania i obsługą interakcji użytkownika.
Ładowanie dokumentu PDF
Otwarcie pliku PDF jest proste:
Zakreślacz składni Urvanov v2.9.1|
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; |
Nawigacja strony
Implementacja nawigacji na stronie jest prosta dzięki PageNumber właściwość:
|
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; |
Sterowanie powiększeniem
TPdfView oferuje elastyczne opcje powiększania:
|
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]; |
Obrót strony
Obracaj strony za pomocą Rotation właściwość:
|
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; |
Wyświetlanie informacji o dokumencie
Uzyskaj dostęp do metadanych dokumentu poprzez TPdf komponent:
|
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; |
Praca z zakładkami
Demo wypełnia TreeView zakładkami dokumentu, co ułatwia nawigację:
Zakreślacz składni Urvanov v2.9.1|
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; |
Opcje renderowania
Dostosuj renderowanie za pomocą różnych opcji:
Zakreślacz składni Urvanov v2.9.1|
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]; |
Wniosek
Wersja demonstracyjna przeglądarki PDF Viewer zapewnia solidną podstawę do tworzenia funkcjonalności przeglądania PDF w aplikacjach Delphi. Dzięki PDFium VCL masz dostęp do tego samego silnika renderującego PDF, którego używa Google Chrome, zapewniając wysoką jakość i dokładność wyświetlania PDF.
Komponent automatycznie obsługuje złożone funkcje PDF, takie jak adnotacje, pola formularzy i osadzone czcionki, dzięki czemu możesz skupić się na budowaniu unikalnych funkcji aplikacji, a nie na niskopoziomowym analizowaniu PDF.
Pobierz PDFium VCL od losLab.com aby rozpocząć rozwój PDF w Delphi.