Bu eğitimde, kullanarak profesyonel bir PDF görüntüleme uygulamasının nasıl oluşturulacağını keşfedeceğiz. PDFium VCL, Google'ın PDFium oluşturma motorunu kapsayan güçlü bir Delphi bileşeni. Bu demo, herhangi bir PDF uygulamasının temelini oluşturan temel görüntüleme yeteneklerini sergiliyor.
Genel Bakış
PDF Görüntüleyici demosu, PDF belgelerini bir Delphi uygulamasında görüntülemek için gereken temel işlevleri gösterir. Ticari PDF okuyucularla karşılaştırılabilir özelliklere sahip, eksiksiz, kullanıma hazır bir PDF görüntüleme çözümü sağlar.
Temel Özellikler
- Belge Yükleniyor – PDF dosyalarını şifre koruma desteğiyle açın
- Sayfada Gezinme – Klavye kısayollarına sahip ilk, önceki, sonraki, son sayfa düğmeleri
- Yakınlaştırma Kontrolleri – Sayfaya sığdırma ve genişliğe sığdırma dahil çoklu yakınlaştırma seviyeleri
- Sayfa Döndürme – Sayfaları 90° sola veya sağa döndürün
- Metin Seçimi – PDF belgelerinden metin seçin ve kopyalayın
- Yer İmleri – Belgenin içindekiler tablosunu kullanarak gezinin
- Metin Arama – Belge içindeki metni bul
- Yazdırılıyor – Belgeleri sayfa aralığı seçimiyle yazdırın
- Farklı Kaydet – Belgeyi yeni bir PDF dosyasına aktarın
PDFium DLL Gereksinimleri
Herhangi bir PDFium VCL uygulamasını çalıştırmadan önce PDFium DLL dosyalarını yüklemelisiniz. DLL'ler şurada bulunur:
PDFium VCL paketinin DLLs klasörü:
pdfium32.dll– 32 bit sürüm (~5 MB)pdfium64.dll– 64 bit sürüm (~6 MB)pdfium32v8.dll– V8 JavaScript motorlu 32 bit (~23 MB)pdfium64v8.dll– V8 JavaScript motorlu 64 bit (~27 MB)
Kurulum: Çalıştır
DLL'leri otomatik olarak Windows sistem dizinlerine kopyalamak için Yönetici olarak PDFiumVCL\DLLs\CopyDlls.bat Yönetici olarak. Bu komut dosyası uygun DLL'leri otomatik olarak Windows sistem dizinlerine kopyalar:
|
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\ |
Not: Standart DLL'leri kullanın (
Çoğu uygulama içinpdfium32.dll/pdfium64.dll). V8 sürümleri yalnızca PDF'lerinizin yürütülmesi gereken JavaScript içermesi durumunda gereklidir.
Temel Bileşenler
Demo iki ana PDFium VCL bileşenini kullanır:
Urvanov Sözdizimi Vurgulayıcı v2.9.1|
1 2 |
Pdf: TPdf; // Non-visual component for PDF operations PdfView: TPdfView; // Visual component for rendering PDF pages |
TPdf Bileşeni
TPdf bileşeni, yükleme, kaydetme ve meta veriler, yer imleri ve sayfa bilgileri gibi belge özelliklerine erişme dahil tüm PDF belgesi işlemlerini gerçekleştirir.
TPdfView Bileşeni
TPdfView bileşeni, PDF sayfalarını düzgün kaydırma, yakınlaştırma desteği ve kullanıcı etkileşimi yönetimiyle işleyen kaydırılabilir bir görsel kontroldür.
PDF Belgesi Yükleme
Bir PDF dosyasını açmak basittir:
Urvanov Sözdizimi Vurgulayıcı 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; |
Sayfada Gezinme
Sayfada gezinmeyi uygulamak basit PageNumber özelliği:
|
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; |
Yakınlaştırma Kontrolü
TPdfView bileşeni esnek yakınlaştırma seçenekleri sunar:
|
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]; |
Sayfa Döndürme
Sayfaları kullanarak döndürün Rotation özelliği:
|
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; |
Belge Bilgilerini Görüntüleme
Belge meta verilerine şu adresten erişin: TPdf bileşeni:
|
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; |
Yer İşaretleriyle Çalışmak
Demo, kolay gezinme için TreeView'ı belgenin yer işaretleriyle doldurur:
Urvanov Sözdizimi Vurgulayıcı 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; |
Oluşturma Seçenekleri
Oluşturmayı çeşitli seçeneklerle özelleştirin:
Urvanov Sözdizimi Vurgulayıcı 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]; |
Sonuç
PDF Görüntüleyici demosu, Delphi uygulamalarınızda PDF görüntüleme işlevselliği oluşturmak için sağlam bir temel sağlar. PDFium VCL ile Google Chrome tarafından kullanılan aynı PDF oluşturma motoruna erişim elde ederek yüksek kaliteli, doğru PDF görüntüleme sağlarsınız.
Bileşen, ek açıklamalar, form alanları ve gömülü yazı tipleri gibi karmaşık PDF özelliklerini otomatik olarak yöneterek, düşük düzeyli PDF ayrıştırma yerine uygulamanızın benzersiz özelliklerini oluşturmaya odaklanmanıza olanak tanır.
PDFium VCL'yi indirin Delphi'de PDF geliştirmeye başlamak için loslab.com'dan .