HTML'si Delphi'de PDFium VCL ile Zengin Özelliklere Sahip bir PDF Görüntüleyici Oluşturma | losLab Software Development Blog

Teknik makale

Delphi'de PDFium VCL ile Zengin Özelliklere Sahip bir PDF Görüntüleyici Oluşturma

· PDF Programlama

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:

Urvanov Sözdizimi Vurgulayıcı v2.9.1
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\
[Format Süresi: 0,0007 saniye]

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
[Format Süresi: 0,0001 saniye]

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;
[Format Süresi: 0,0004 saniye]

Sayfada Gezinme

Sayfada gezinmeyi uygulamak basit PageNumber özelliği:

Urvanov Sözdizimi Vurgulayıcı v2.9.1
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;
[Format Süresi: 0,0001 saniye]

Yakınlaştırma Kontrolü

 TPdfView bileşeni esnek yakınlaştırma seçenekleri sunar:

Urvanov Sözdizimi Vurgulayıcı v2.9.1
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];
[Format Süresi: 0,0002 saniye]

Sayfa Döndürme

Sayfaları kullanarak döndürün Rotation özelliği:

Urvanov Sözdizimi Vurgulayıcı v2.9.1
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;
[Format Süresi: 0,0003 saniye]

Belge Bilgilerini Görüntüleme

Belge meta verilerine şu adresten erişin: TPdf bileşeni:

Urvanov Sözdizimi Vurgulayıcı v2.9.1
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;
[Format Süresi: 0,0002 saniye]

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;
[Format Süresi: 0,0004 saniye]

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];
[Format Süresi: 0,0002 saniye]

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 .