PDFium Delphi Component, Delphi ve C++Builder uygulamalarına güçlü PDF işleme ve görüntüleme yetenekleri kazandıran kapsamlı, profesyonel düzeyde bir bileşen kütüphanesidir. Sayfa render ve belge okuma için PDFium render motorunu kullanır; motorun sağlamadığı her şeyi Object Pascal ile kendisi uygular
Kütüphaneyi değerlendirirken bu ayrım önem taşır. PDFium sayfa çizer, metin ayıklar ve mevcut yapıları okur. Bir belgeyi imzalayamaz, şifreleme yazamaz, bir PDF standardını doğrulayamaz veya linearize ya da artımlı bir revizyon üretemez. PDFium Delphi Component kabaca 55 üniteye yayılmış 115.000 satır Object Pascal ile gelir ve bu satırların 62.000'den fazlası, PDFium API'sinde hiçbir karşılığı bulunmayan 36 ünitededir — kriptografi, imzalar, şifreleme, standart uyumu, PDF serileştirme, form veri alışverişi, layout ve metin shaping. Bunların tamamı kaynak kod olarak teslim edilir
Kütüphane üç kayıtlı bileşenden oluşur: 475 public üyeli, belge işleme ve manipülasyon için TPdf; 152 üyeli, etkileşimli görsel sunum için TPdfView; ve sayfa navigasyonu için TPdfThumbnailView İster basit bir PDF görüntüleyici, ister imzalı belge iş akışı, ister arşiv dönüşüm hattı ya da eksiksiz bir belge yönetim sistemi oluşturmanız gereksin, PDFium Delphi Component ihtiyaç duyduğunuz araçları ve esnekliği sağlar
Aşağıdaki yeteneklerin PDFium C API'sinde karşılığı yoktur. Her biri PDFium Delphi Component tarafından Object Pascal ile uygulanmış, yayımlanmış ISO, ETSI, IETF veya FIPS maddelerine göre doğrulanmış ve kaynak kod olarak sunulmuştur
İmza okuma değil, eksiksiz imzalama. PDFium bir imza sözlüğünün var olduğunu bildirebilir; PDFium Delphi Component ise onu oluşturur
SignPades, SignPadesToStream ve SignPadesBytes üzerinden/Certs, /OCSPs ve /CRLs ile Document Security Store enjeksiyonu, imza başına VRI sözlükleri ve /Extensions /ESIC işaretçisi/SubFilter /ETSI.RFC3161 li Document Time-stamp sözlükleriICmsSigner arayüzünün ardındaPreparePadesRemoteSignature ve CompletePadesRemoteSignature işlemi böler; böylece özel anahtar uzak bir hizmette veya donanım modülünde kalabilirValidatePades belgenin ulaştığı en yüksek baseline seviyesini ve madde düzeyi sorun kodlarını bildirir; ValidatePadesTrust ve ValidatePadesTrustAsync sertifika zinciri güven denetimi eklerSignPadesWithPdfA, EN 319 142-1 Annex A.7 uyarınca tek çağrıda PDF/A-4'e dönüştürür ve imzalarPDFium şifreli dosyaları açar; şifreleme yazmaz. PDFium Delphi Component, yazma tarafını ISO 32000-2 ve teknik özelliklerine göre uygular
SaveAsEncrypted ve /O /U /OE /UE /Perms sözlük girişleri/Length düzeltmesi ve yeniden inşa edilmiş çapraz başvuru tablosuyla akış ve literal dize şifrelemesi/AuthCode belirteçleriAltı ISO standart ailesi; her biri madde düzeyi sonuç kodları döndüren bir doğrulayıcı ve eşleşen bir kaydetme ya da işaretleyici enjeksiyon yoluyla gelir
Motor tek bir sıralı tüm-dosya kaydetme sunar. Uygulamaların sıkça ihtiyacı bundan fazlasıdır; bu yüzden PDFium Delphi Component kendi revizyonlarını motorun semantik çıktısının üzerine yazar
SaveAsLinearized; ilk sayfa gruplaması, iki çapraz başvuru bölümü ve Annex F sayfa-ofset ile paylaşılan-nesne ipucu tablolarıyla Fast Web View dosyaları üretirSaveAsObjectStream; uygun nesneleri sayfa-yerel sıralama ve eksiksiz tip-2 çapraz başvuru kapsamıyla /ObjStm içine gruplarBeginIncrementalSave ve CommitIncrementalSave; yalnızca değişen ve yeni dolaylı nesneleri şifreli veya şifresiz kaynaklara ekler, önceki çıktıyı /Prev, /Encrypt, /Info ve kalıcı /ID ile birlikte bayt bayt korur; değişikliksiz bir commit dosyayı büyütmezSaveAsRepaired; tek revizyonlu bir kopya yazar ve teslim edilmeden önce bağımsız katı bir yüklemeyle yeniden doğrularTPdf.PdfVersion; kaynak belgeyi yeniden ayrıştırmak yerine PDFium ayrıştırıcı durumunu yeniden kullanır ve yalnızca sekiz baytlık bir başlık denetimi yaparTPdfRandomAccessStore; ara verileri SaveMemoryLimit sınırına kadar bellekte tutar, sonra kapatılınca silinen özel bir geçici dosyaya taşır; çekirdek kaydetme son işlemesi üç çalışma alanı için de aynı politikayı uygularken varsayılan open-action ve sayfa etiketi katalog güncellemeleri sınırlı pencereler ve seyrek bir indeks kullanır/AF dizileriIPdfOcrProvider her tanıma motorunu kabul eder — bileşen sayfa bitmap'lerini sağlar ve oluşan aranabilir metin katmanını sayfa başına durum ile mevcut metni atlayarak yazarGetStructuredText; karakter geometrisi ve Tagged PDF semantiğinden sayfa / blok / satır / stilli-aralık hiyerarşisi kurar; ExtractTables ve ExtractDocumentTables çerçeveli ve boşlukla hizalanmış tabloları algılar, birleşik aralıkları korur, güven puanlar ve CSV veya JSON üretirBuildReflowDocument; sabit düzenli bir PDF'i, güvenli HTML çıktısı başlıkları, paragrafları, listeleri, şekilleri, sayfa bölümlerini ve tablo aralıklarını koruyan bir düğüm ağacına dönüştürürMeasureText ve WrapText, sayfaya hiçbir şey eklemeden sözcük kaydırma sağlarTPdfStreamInspector; keyfi akış nesnelerini açık kaynak, ham, çözülmüş, genişleme-oranı ve akış-sayısı bütçeleri altında çözer ve hazırlanmış bir dosyada belleği tüketmek yerine yapılandırılmış bir durum döndürürPDF işleme sisteminin kalbi olan TPdf; yükleme, kaydetme, metin çıkarma, form işleme ve metaveri yönetimi dahil tüm belge düzeyindeki işlemleri yürütür
Eksiksiz kullanıcı etkileşim yetenekleriyle zengin PDF görüntüleme deneyimi sunan gelişmiş bir görsel kontrol
LoadCustomDocument aracılığıyla istek üzerine çalışan TStream adaptörlerinden yükleyin; compatible, strict ve recovery politikalarıyla birlikte yapılandırılmış xref tanılamalarıSaveAsRepaired ile bağımsız olarak katı doğrulamadan geçmiş tek revizyonlu onarım kopyaları oluşturunSaveAsPdfA / SaveAsPdfAToStream aracılığıyla, paketlenmiş sRGB ICC profili ve özel profil desteğiyle PDF/A-1b oluşturmaValidatePdfA ve salt okunur PdfAConformance özelliği aracılığıyla PDF/A doğrulamasıMergeFiles (sınırlı kaynaklı toplu birleştirme), ImportPagesByIndex (alt küme içeri aktarma), ImportNPagesToOne (N-up ızgara), MovePages (yerinde yeniden sıralama)CreateXObjectFromPage ve InsertFormObjectFromXObject ile bir sayfayı birçok sayfaya damgalayınRenderPageProgressive ve IPdfCancellationToken aracılığıyla iptal edilebilir aşamalı renderTPdfProgressiveDocument aracılığıyla native aşamalı indirme; seyrek byte-range ipuçları, önceliklendirilmiş aralık zamanlaması, sınırlı yeniden denemeler, iptal ve belge, form, sayfa kullanılabilirlik kapıları dahilSaveAsLinearized aracılığıyla Fast Web View çıktısı; ilk sayfa gruplaması, iki çapraz başvuru bölümü ve Annex F sayfa-ofset ile paylaşılan-nesne ipucu tabloları dahilSaveAsObjectStream aracılığıyla modern PDF 1.5+ nesne paketleme; sınırlı ObjStm grupları, sayfa-yerel sıralama ve eksiksiz tip-2 xref kapsamı dahilBeginIncrementalSave ve CommitIncrementalSave aracılığıyla değişen-nesne revizyon oturumları; şifreli önek koruma, devralınan güvenlik parametreleri, etkisiz commit'ler, katı yeniden açma doğrulaması, dayanıklı yan dosyalar, atomik değiştirme, geri alma ve commit başına istatistikler dahilTPdfRandomAccessStore ve SaveMemoryLimit aracılığıyla sınırlı rastgele erişimli çalışma deposu; güvenli geçici dosya taşması, konumlu I/O ve kaydetme başına tepe tanılamaları dahilFitMode, sayfanın görünüm alanı içindeki yerleşimini seçer (manuel zoom, gerçek boyut, sayfaya sığdır, genişliğe sığdır); Resize / sayfa değişikliğinde otomatik olarak yeniden uygulanırPageColor, render edilen PDF sayfa arka planını çevreleyen kontrolün Color değerinden ayırır; karanlık mod görüntüleyicileri içindirHighlightSearchText ve ClearHighlight aracılığıyla arama sonucu vurgulamaPageShadowSize / PageShadowColor) ve sayfa kenarlığı (PageBorderColor)LinkOptions) ile güvenli bağlantı tıklama işleme ve OnAnnotationLinkClick / OnWebLinkClick olaylarıAllowUserPageChange, ChangePageOnMouseScrolling, AllowUserTextSelection)TPdfThumbnailView yan panel bileşeni aracılığıyla küçük resim navigasyonu| Yön | Ayrıntılar |
|---|---|
| Render Motoru | Google PDFium - Endüstri standardı, kapsamlı şekilde test edilmiş PDF motoru |
| PDF Desteği | PDF sürümleri 1.0'dan 1.7'ye kadar, şifrelenmiş ve parola korumalı dosyalar |
| Platform Uyumluluğu | Windows 32-bit ve 64-bit uygulamaları |
| IDE Desteği | Delphi XE5 / C++Builder XE5 (RAD Studio XE5) ile Delphi/C++Builder 13.1 Florence (RAD Studio 13.1) arası, Lazarus 3.8+ |
| Karakter Kodlama | Tam Unicode desteği, çok dilli metin işleme |
| Bellek Yönetimi | Büyük belgeler için optimize edilmiş, verimli kaynak kullanımı |
| Thread Güvenliği | Tek thread'li tasarım (PDFium gereklilikleri uyarınca) |
PDFium Delphi Component, sorumlulukları net bir şekilde ayıran ve kod yeniden kullanılabilirliğini en üst düzeye çıkaran katmanlı bir mimari modeli izler:
| Katman | Dosyalar | Sorumluluk |
|---|---|---|
| VCL Bileşenleri | PDFium.pas, FPdfThumbnail.pas | Tasarım zamanı destekli Delphi VCL bileşenleri (TPdf, TPdfView, TPdfThumbnailView) |
| API Bağlamaları | FPdfView.pas, FPdfDoc.pas, FPdfText.pas, FPdfEdit.pas, FPdfAnnot.pas, FPdfFormFill.pas, FPdfPageOps.pas, FPdfAttachment.pas, FPdfSignature.pas, FPdfStructTree.pas, FPdfDataAvail.pas, FPdfExtensions.pas, FPdfFWLEvent.pas, FPdfCompress.pas, FPdfUtils.pas | PDFium DLL çağrıları için fonksiyon işaretçisi bildirimleri |
| PDF/A Boru Hattı | FPdfPdfa.pas | PDF/A-1b oluşturma (XMP enjeksiyonu, sRGB ICC OutputIntent, katalog güncellemesi) ve doğrulama (uyum algılama, sorun listeleme) |
| Asenkron Altyapı | FPdfAsync.pas | Uzun süren render ve dışa aktarma işleri için IPdfCancellationToken / IPdfCancellationTokenSource, PdfNoCancellationToken singleton'ı ve TPdfFuture<T> yardımcısı |
| Geometri Yardımcıları | FPdfMatrix.pas | Translate, Scale, Rotate, Flip, Skew ve Multiply yardımcılarıyla FS_MATRIX üzerine OO sarmalayıcı |
| Sayfa İşlemleri | FPdfPageOps.pas | FPDF_ImportPagesByIndex, FPDF_ImportPages, FPDF_ImportNPagesToOne, FPDF_MovePages için sarmalayıcılar, ölçeklenebilir dosya destekli toplu zamanlama ve Form-XObject yardımcıları (CreateXObjectFromPage / InsertFormObjectFromXObject) |
| Küçük Resim Yan Paneli | FPdfThumbnail.pas | TPdfThumbnailView - hover, seçim ve OnPageClick navigasyonlu, sayfa başına kaydırılabilir küçük resim paneli |
| Native Motor | DLLs\Win32|Win64\pdfium.dll ve pdfium.v8.dll | Google PDFium native render motoru, isteğe bağlı V8 etkin yapılarla |
TPdf üyesi ve 36 çalışmaya hazır proje geliştirme süresini kısaltırPDFium Delphi Component anında verimlilik için tasarlanmıştır. Bileşen kütüphanesi şunları içerir:
Basit bir PDF görüntüleyici ya da karmaşık bir belge işleme sistemi oluşturuyor olun; PDFium Delphi Component, Delphi ve C++Builder uygulamalarınız için profesyonel PDF işlevselliğinin temelini sağlar