PDFium Delphi Component sürüm notları
PDFium Delphi Component kullanıcıya görünür özellikleri, düzeltmeleri, görüntüleyici iyileştirmeleri, belge üretimi, PDF/A çıktısı, render işlemleri ve dokümantasyon güncellemeleri için sürüm geçmişi.
Son sürüm
- Son sürüm: 3.137.1; Yayın tarihi:
Version 3.137.1
Düzeltildi (Fixed)
- OpenSSL çevrimiçi iptal denetimleri, OCSP kanıtı veya yanıtlayıcı yokken önceki CRL durumunu, nedenini, yerel hatayı ve etkilenen sertifikayı korur; böylece kesin süresi geçmiş CRL tanılaması sürdürülür
Version 3.137.0
Eklendi (Added)
- Yerel Free Pascal/LCL derlemeleri, platform yazı tipi çözümlemesi, özel geçici depolama, belge yükleme, düzenleme, formlar, kaydetme ve işleme ile Linux Qt6 ve macOS Cocoa'yı destekler
- macOS Keychain imzalama, yerel sorgu Keychain yolunu ve sınırlı çevrimdışı sertifika zinciri dışa aktarımını destekler; yerel Free Pascal ve Delphi imza ve zaman damgası taşimalarıyla birlikte
- Paralel işleme, her işçinin gerçek modül yolunu, başlatma adresini ve unload sonucunu raporlar ve mevcut bir PDFium görüntüsünü yeniden kullanan yerel yükleyicileri reddeder
Düzeltildi (Fixed)
- Unix PDFium bağlamaları, 4 GiB ötesi özel akış okumaları dahil LP64 işaretsiz uzun callback ve tampon genişliklerini korur
- Yerel LCL işleme, bit eşlem bayt sırasına ve kanal düzenine uyar; Cocoa çıktısındaki ve aygıt bağlamı işlemesindeki renkleri korur
- Bit eşlem, döşeme ve aşamalı işleme, yerel sayfa saydamlık sorgusundan bağımsız olarak clNone ve clDefault için saydam arka plan alfasını korur
- İmzalama, EC anahtarları dahil sertifika açık anahtar algoritmalarını doğru tanımlar; macOS CMS doğrulaması bağımsız dış imza ve zaman damgası sonuçlarını korur ve desteklenmeyen RSA-PSS doğrulamasını açıkça bildirir
- PAdES zaman damgası doğrulaması kritik ve münhasır bir id-kp-timeStamping EKU'su ister; OpenSSL temel TSA zincirlerini S/MIME sertifika amacını yanlış uygulamadan değerlendirir
- Unix atomik dosya işlemeleri, değiştirmeden sonra dizin boşaltması başarısız olsa bile yeni artımlı temeli korur; işlenmiş çıktı özel durumunu ve eksik kalıcılık sonucunu ortaya çıkarır
Değiştirildi (Changed)
- Delphi POSIX future'ları varsayılan iş parçacığı önceliğini kabul eder ve worker başlamadan önce desteklenmeyen öncelik isteklerini reddeder
Version 3.136.0
Eklendi (Added)
- İsteğe bağlı LittleCMS ICC dönüşümleri ve belge renk dönüştürme, orijinal metin, vektör ve 8 veya 16 bit görüntü bileşenlerini kullanır, seçili spot renkleri korur ve desteklenmeyen içeriği açıkça bildirir
- Karmaşık karartma, desteklenen içeriği iç içe Form XObject'lerde, dolgu eğri yollarında ve döndürülmüş, yansıtılmış veya kesilmiş görüntülerde korur; sınırlı geometri bütçeleri ve ayrıntılı kaldırma raporlarıyla
- Aktif nesne okuma, somutlaştırma ve kod çözmeden önce bağımsız nesne gövdesi ve sıkıştırılmış nesne akışı bütçelerini açığa çıkarır
Güvenlik (Security)
- Karartma, etiketli değiştirme metnini, XFA'yı, optional-content katmanlarını, metin kırpma ve doğrulanamayan boyama durumlarını — içerik akışlarına bölünmüş operatörler dahil — reddeder ve desteklenmeyen hassas içerik semantiğinin dışa aktarılmasını engeller
Version 3.135.0
Eklendi (Added)
- Açıklama ve AcroForm widget karşılaştırması, özellik değişikliklerini sayfa piksellerinden bağımsız raporlar; kararlı adlar, açık sayfa eşlemeleri, belirsizlik raporları ve önce/sonra bindirme sınırlarıyla
- Tablo hücreleri, karma metin stillerini ve alternatif metinli görüntüleri destekler; sayfalar arası isteğe bağlı kapsayan hücre devamı, ara toplam satırları ve devam etiketleri sunarken Tagged PDF ilişkilerini korur
Düzeltildi (Fixed)
- Etiketli düzen oluşturma, yetenekleri denetlemeden önce yerel kitaplığı başlatır; böylece yeni bir belge bileşenindeki ilk işlem olabilir
- Tek bir metin nesnesindeki çoklu değiştirmeler, orijinal sınırlarına göre bir kez sığdırılır; genel minimum yatay ölçeği zorlar ve gereksiz ara düzenlemelerden kaçınır
Version 3.134.0
Eklendi (Added)
- Gezinme birleştirme, seçilen, yeniden sıralanan ve tekrarlanan sayfalarda adlandırılmış hedefleri ve iç sayfa bağlantılarını korur; açık çakışma ilkeleri ve işlemsel doğrulamayla
- Stilli metin değiştirme; doğrulanmış kaynak planları, bağımsız ön izlemeler, yerel yazı tipi yeniden kullanımı, açık yedek, sınırlı yatay sığdırma ve başarısız veya iptal edilen düzenlemelerden sonra geri alma ekler
- OpenSSL imzalama, RSA-PSS, RSA PKCS#1 v1.5 ve ECDSA için açıkça yapılandırılmış özel anahtarlar ve sertifika zincirlerini kabul eder; Windows dışı varsayılan imzalayıcı çözümü dahil
- OpenSSL doğrulaması, kimliği doğrulanmış çevrimdışı ve sınırlı çevrimiçi OCSP kanıtı, başarısız sertifika kimlikleri ve her CMS imzalayıcı için isteğe bağlı tanılama ekler
- FPC macOS Security.framework doğrulayıcısı, bağımsız kriptografik, zincir güveni ve iptal sonuçlarını açık trust anchor'lar ve sağlanan OCSP kanıtıyla raporlar
Düzeltildi (Fixed)
- Bağlantı açıklaması URI çıkarma, sonlandırıcı dahil tam yerel tamponu sağlar; böylece geçerli hedefler doğru döndürülür
Version 3.133.0
Eklendi (Added)
- İşlemsel AcroForm birleştirme, seçili sayfaları, alan reddini, yeniden adlandırmayı, ad alanlarını ve uyumlu paylaşılan metin/seçim alanlarını destekler; izole kaynaklar, görünümler ve hesaplama sırasıyla
- İsteğe bağlı barkod sağlayıcısı Code128, QR, DataMatrix ve PDF417 üretir ve gri tonlamalı görüntüleri tanır; açık yerel bağımlılıklar ve sınırlı işleme bütçeleriyle
Düzeltildi (Fixed)
- FormField, devralınan üst değerleri okur ve metin düzenlemelerini paylaşılan widget'lar arasında tutarlı biçimde işler; kalıcı kaydetme/yeniden açma değerleri ve salt okunur denetimleriyle
- Devralınan metin widget'ları için görünüm yeniden oluşturma, üst değerlerini gölge widget değeri bırakmadan geri yükler; başarılı alan ataması paylaşılan sayfa önbelleklerini geçersiz kılar
Version 3.132.0
Eklendi (Added)
- İsteğe bağlı sayfa hizalama, eklenen, silinen ve taşınan sayfaları tanımlar; sınırlı Unicode metin değişiklikleri, bağlantılı görsel bölgeler ve dışa aktarılabilir karşılaştırma bindirmeleriyle
- İşlemsel gezinme birleştirme, seçilen, tekrarlanan ve yeniden sıralanan sayfa içe aktarmalarında outline hiyerarşisini, stilleri, URI eylemlerini ve yeniden eşlenen hedefleri korur
- İsteğe bağlı Tesseract OCR sağlayıcısı, açık bağımlılık tanılamayı, Unicode kelime geometrisini, iptali ve tanıma bütçelerini destekler; aranabilir katman kaydı ve yeniden açma doğrulamasıyla
Güvenlik (Security)
- RSA-PSS ilkesi, eksiksiz imza ve kısıtlanmış açık anahtar parametrelerini değerlendirir; hatalı biçimlendirilmiş DER'yi ve uyumsuz karma, maske, tuz veya sonda kısıtlamalarını reddeder
Düzeltildi (Fixed)
- Outline kaydetme doğrulaması, yalnızca dal düğümüne özgü genişletilmiş durum farkı nedeniyle yaprak yer imlerini artık reddetmiyor
Version 3.131.0
Eklendi (Added)
- WatermarkStamp artık hedef ve damga PDF'lerini, hedef sayfa aralığını ve yalnızca sayfa numarası çıktısını kabul eder; karışık sayfa boyutları için orantılı yerleşimle
- MergePDF artık birleştirmeden önce her girdinin seçili sayfalarını ve hedef aralığını ön izler ve sayfa çıkarma için tek girdiyi destekler
Düzeltildi (Fixed)
- MergePDF, içe aktarmadan önce her kaynağı doğrular ve okunamayan girdilerde, geçersiz aralıklarda, başarısız içe aktarmalarda veya iptalde durur; eksik birleştirme kaydetmek yerine
- WatermarkStamp kaynak ve şablon dosyalarını korur ve her iki damga bindirmesi devre dışı bırakıldığında bile sayfa numaralarını güvenilir biçimde kaydeder
Değiştirildi (Changed)
- Her yerel demo dizini 22 eksiksiz iş akışına odaklandı; SecurityAudit ve XfdfLab Miscellaneous altına taşındı, proje yolları ve gezinme düzeltildi
Kaldırıldı (Removed)
- Sabit AnnotationsLab geçidi kaldırıldı; açıklama oluşturma, inceleme ve değişimi XFDF ve içerik çıkarma örnekleriyle API testlerinde kapsanmaya devam ediyor
Version 3.130.0
Değiştirildi (Changed)
- Her yerel demo dizini 24 eksiksiz iş akışının çevresinde düzenlendi; Miscellaneous altında dokuz odaklı API konusu, ilk demo seçimi için de ayrı bir rehber sunuluyor
- Odaklı ek açıklama, erişilebilirlik, yazı tipi, navigasyon, metin dışa aktarma, sayfa görüntüsü render, yazdırma tercihi, etkileşim ve XFA örnekleri kendi kaynaklarıyla ve paketlenmiş girdileriyle kullanılabilir durumda tutuldu
Kaldırıldı (Removed)
- Minimal CJKTextLab ve RTLTextLab projeleri kaldırıldı; Unicode ile belge üretimi CreatePDF'te kullanılmaya devam ediyor, şekillendirilmiş metin API'leri ise API referansında belgelenmeye devam ediyor
Düzeltildi (Fixed)
- C++Builder erişilebilirlik API turunun konuşma betiğini dışa aktarırken başarısız olması düzeltildi
- C++Builder ek açıklama örneğinin vurgulama koordinatları için hatalı dizi ofsetleri kullanması düzeltildi
Version 3.129.0
Değiştirildi (Changed)
- Her yerel demo kendi başına yeterli hale getirildi: örnek mantık onu kullanan projelerin içine taşındı, tanıtım PDF'leri ilgili görüntüleme ve çıkarma projelerine paketlendi ve Demo/Shared dizini kaldırıldı
- Projeler bağımsız olarak kopyalandığında bile çevrimdışı özellik turları, canlı önizlemeler, düzenlenebilir formlar, doldurulmuş raporlar, ekler, navigasyon, yazdırma tercihleri ve statik XFA incelemesi kullanılabilir durumda tutuldu
- FontProperties artık gerçek yazı tipi ve karakter metrikleri zaten görüntülenmiş biçimde açılıyor ve başka bir belge açıldıktan hemen sonra ilk metin nesnesini analiz ediyor
Düzeltildi (Fixed)
- PDFViewer deneyim çubuğunun konumu ve arka planı tüm yerel varyantlarda eşitlendi; FontProperties, kapanmadan önce görüntüleyici bağlantısını serbest bırakıyor
Version 3.128.0
Eklendi (Added)
- Canlı metin, vektör grafikleri, gömülü görüntüler, bir tablo, AcroForm alanları, yer imleri, bağlantılar, ek açıklamalar ve ekler içeren çevrimdışı, altı sayfalık bir demo tanıtım belgesi eklendi
- Tüm yerel PDFViewer varyantlarına metin arama, iki sayfalı düzenler, gece okuma, belge inceleme ve form keşfi için tek tıkla görüntüleme deneyimleri eklendi
Değiştirildi (Changed)
- CreatePDF artık kaydetmeden önce düzenlenebilir metaveri ve içerik seçenekleri, gerçek görüntü ve ek açıklama nesneleri ile isteğe bağlı bir Unicode sayfası içeren canlı iki sayfalık bir önizleme açıyor
- Odaklı görüntüleme, arama, çıkarma, form ve navigasyon örnekleri artık önceden doldurulmuş iş akışlarıyla açılıyor; ek, yazdırma tercihi ve statik XFA örnekleri gerçek, özelliğe özgü veriler içeriyor
Düzeltildi (Fixed)
- Görüntüleyicinin yaşam döngüsü ile başlangıç, belge değiştirme, önizleme yeniden oluşturma ve kapanma sırasındaki odak yönetimi düzeltildi
- Lazarus FormFill değer düzenleyicisinin başlangıçta ilk alan seçildikten sonra devre dışı kalması düzeltildi
- SearchAndSelect belge bağlama düzeltildi; sonraki sayfalardaki form alanlarını atlayan ya da bellekte üretilen örnekler için kullanılamayan dosya başlıklarını sorgulayan çıkarma raporları da düzeltildi
Version 3.127.0
Değiştirildi (Changed)
- MultiPageViewer demoları, görüntüleyicinin yerleşik metin seçme ve pano API'lerini kullanıyor; seçim böylece sayfa düzenleri arasında tutarlı kalıyor ve ayrı çift tıklama seçim kipi kaldırıldı
- Örnekler kılavuzu 35 demo konusunun tamamını kendilerine özgü iş akışlarıyla eşliyor; Delphi ve Lazarus erişilebilirlik, intake ve preflight konsol örnekleri aynı Pascal uygulamalarını paylaşıyor
Eklendi (Added)
- XfdfLab, XFDF'yi içe aktardıktan sonra PDF'yi kaydedebiliyor: Delphi GUI'si Save PDF sunuyor, konsol varyantları ise açık bir ikinci çıktı yolunu kabul ediyor
Düzeltildi (Fixed)
- C++Builder ve Lazarus MultiPageViewer demoları desteklenmeyen form özellikleri olmadan açılıyor ve tüm MultiPageViewer demoları kapanmadan önce belgelerinin bağlantısını kesiyor
- Lazarus erişilebilirlik workbench'i HTML inceleme raporu için JPEG sayfa küçük resimleri üretiyor
- ExtractImages demoları, gerçek gömülü görüntü nesneleri içeren iki sayfalık bir örnek oluşturuyor; böylece varsayılan çıkarma iş akışı dört görüntü üretiyor
- Konsol XFDF gidiş-dönüş örneği ek açıklama içeriklerini ve yazar verilerini koruyor ve çıktıyı yazmadan önce çakışan ya da mevcut PDF çıktı yollarını reddediyor
Version 3.126.2
Düzeltildi (Fixed)
- Tam XFA görüntüleme varsayılan metin seçme ayarlarıyla çalışıyor, klavye girdisi sırasında seçili metni değiştiriyor, salt okunur alanlara ve devre dışı bırakılmış form olaylarına saygı gösteriyor ve dinamik düzen değişikliklerinden sonra görüntülenen sayfa tanıtıcılarını yeniliyor
- Windows V8 kitaplıkları, kaydedilen XFA stream'ini değiştirmeden önce bozuk XDP özniteliklerini, yinelenen öznitelikleri, geçersiz ad alanı kullanımını ve uyumsuz XML bildirimlerini reddediyor
Güvenlik (Security)
- İmza revizyon analizi, widget'lar ile görünüm nesneleri aynı nesne grafiğine başvurduğunda sayfa içeriği sahipliğini koruyor; böylece sonraki sayfa düzenlemeleri DocMDP kapsamında izin verilen form ya da açıklama güncellemeleri olarak kabul edilmiyor
- Kilitli bir alan ile bir açıklama dolaylı bir değer nesnesi paylaştığında FieldMDP kilitleri etkisini koruyor
Version 3.126.1
Düzeltildi (Fixed)
- Dinamik XFA yeniden sayfalandırması, sayfalar eklendikten ya da kaldırıldıktan sonra
TPdf.PageCountveOnXfaPageCountChangeddeğerlerini gerçek toplam sayfa sayısıyla güncelliyor; ana uygulamanın gezinmesi form düzeniyle eş zamanlı kalıyor - Güncellenen Windows V8 kitaplıkları, dinamik XFA düzen değişikliklerinden sonra giriş widget'ının geometrisini yeniliyor; alanlar başka bir sayfaya taşındığında metin ve giriş tıklama alanları hizalı kalıyor
Version 3.126.0
Eklendi (Added)
- Güncellenen Win32 ve Win64 V8 kitaplıkları, desteklenen tek stream'li XFA belgelerini kaydederken etkin veri kümeleri ve form paketleri dışındaki XML yorumlarını ve işleme talimatlarını koruyor; buna UTF-8 ve UTF-16 girdiler dahil
Düzeltildi (Fixed)
- Tek stream'li XFA kaydetme, geçersiz UTF-8 ya da UTF-16 kodlamasını, eksik etiketleri, geçersiz varlık başvurularını ve bozuk işleme talimatlarını bu girdileri sessizce yeniden yazmak yerine reddediyor; etkin veri paketlerindeki desteklenmeyen yapılar, DTD bildirimleri ve XMLDSig açık kaydetme hataları olmaya devam ediyor
- Görüntüleyici kopyalama, kesme ve form yapıştırma işlemleri, Windows panosunu başka bir iş parçacığı ya da uygulama tuttuğunda kısa süreliğine yeniden deniyor; geçici çekişmenin çözülmesine izin veriliyor, başarısız bir kesme yine de özgün alan metnini koruyor
Version 3.125.3
Düzeltildi (Fixed)
- Güncellenen Win32 ve Win64 sıradan
pdfium.dllkitaplıkları, son tamponlanmış PDF yazması başarısız olduğunda artık hatayı bildiriyor; bu, V8 kitaplıklarında daha önce yayımlanan onarımla aynı
Version 3.125.2
Düzeltildi (Fixed)
- Güncellenen Windows V8 kitaplıkları, paket dizileri ve desteklenen tek stream'li XDP belgeleri için düzenlenmiş XFA metnini kaydetme ve yeniden açma boyunca koruyor; buna boş değerler, özgün boşluklar, satır sonları ve tamamlayıcı Unicode karakterleri dahil
- Güncellenen V8 kitaplıklarında XFA paket dışa aktarma hataları ve son tamponlanmış yazıcı hataları artık belgenin değişiklik durumunu temizlemeden kaydetme hatası bildiriyor; desteklenmeyen XML yapıları ya da XML imzaları içeren tek stream'li belgeler reddediliyor
- Güncellenen V8 kitaplıkları, ana uygulamanın açıkça verdiği V8 platformunu ve isolate'i PDFium başlatma ve sonlandırma boyunca koruyor
LibraryNameiçindeki açık bir yol artıkEnableV8Engine=Truedahil her iki motor modunda tam olarak o runtime'ı seçiyor; eksik bir açık yol, başka bir paket kitaplığı yüklemek yerine başarısız oluyor
Version 3.125.1
Düzeltildi (Fixed)
ValidatePdfFilesParallelartık paylaşılan PDFium motorunu bozmuyor: worker iş parçacıkları daha önce belgeleri eşzamanlı açıp inceliyordu; bu da bazı belgelerin yükleme hataları ya da erişim ihlalleriyle başarısız olmasına, sürecin çökmesine ya da sonraki PDF işlemlerinin bozulmasına yol açabiliyordu; artık her belgenin PDFium bölümü tek tek işlenirken kural değerlendirmesi paralel çalışmaya devam ediyor- Toplu doğrulama sırasında açılamayan bir belge, artık ardından gelen "etkin PDF belgesi yok" iletisi yerine gerçek yükleme hatasını bildiriyor
Version 3.125.0
Eklendi (Added)
PdfLibraryConfigurationSupportError, birTPdfLibraryConfigurationdeğerinin verilen Skia ve Fontations yeteneklerine sahip bir PDFium derlemesiyle kullanılıp kullanılamayacağını bildiriyor
Düzeltildi (Fixed)
- Skia içermeyen bir PDFium derlemesinde
prpSkiaya da Fontations içermeyen bir derlemedepfbpFontationsistemek, artık süreci durduran ya da PDFium'u yarım başlatılmış bırakan yerel denetimde takılmak yerine kitaplık yüklemesininEPdfErrorfırlatmasını sağlıyor; yapılandırma mühürsüz kalıyor; böylece uygulama başka ayarlar seçip yeniden yükleyebiliyor
Version 3.124.0
Değiştirildi (Changed)
- PAdES doğrulaması artık her RSA algoritmasını kabul etmek yerine RSA imzalarına ETSI TS 119 312 imza takımlarını uyguluyor: MD2, MD4 ve MD5 özetleri için
AlgorithmPolicyStatuspcsInvalid; SHA-1 ve SHA-224 gibi 112 bitlik özetler için, güncel doğrulamada artık kabul görmediklerindenpcsIndeterminate. SHA-1 imzaları genel bütünlük sonucunu koruyor ve reddedilmek yerine inceleme için işaretleniyor digestAlgorithmdeğeri, imza algoritmasının sabitlediği özetten farklı olan bir RSA imzası (örneğin SHA-1 özeti üzerinden sha256WithRSAEncryption) artıkppeiSignatureAlgorithmMismatcholarak raporlanıyor ve bütünlükten kalıyor; RSA olmayan bir imzalayan anahtarı üzerindeki RSA imza algoritmaları da öyle- İmzalayan sertifikası bulunamayan RSA imzaları, mevcut ECDSA davranışıyla uyumlu biçimde artık
pcsIndeterminateraporluyor; tanınmayan özetler ve imza olmayan RSA OID'leripcsUnsupportedraporluyor - SHA3 özetli RSA PKCS #1 v1.5 imzaları ve eski OIW sha1WithRSASignature tanımlayıcısı artık RSA olarak tanınıyor
Version 3.123.0
Eklendi (Added)
PdfNativeRendererType, birTPdfRendererPreferencedeğerinin verilen bir PDFium derlemesi için hangi renderer'ı seçtiğini bildiriyor;prpDefault, Skia etkin runtime'larda Skia'ya, diğerlerinde AGG'ye çözümleniyor
Düzeltildi (Fixed)
ConfigurePdfLibraryiçindeBrotliEnabledya daIsolatePerDocumentetkinleştirmek, renderer tercihiprpDefault'ta bırakıldığında artık işlemeyi Skia'dan AGG'ye geçirmiyor; paketlenen Skia etkin runtime'lar varsayılan renderer'larını koruyor; böylece sayfa çıktısı bu alakasız seçeneklerle değişmiyor
Version 3.122.2
Düzeltildi (Fixed)
- Free Pascal ve Lazarus derlemeleri artık her yükleme yolunda (dosya, bellek, özel akış ve aşamalı yükleme) dosya adlarını ve parolaları PDFium'a UTF-8 olarak iletiyor; böylece Çince, Japonca ya da başka ASCII olmayan adlar taşıyan klasörlerdeki belgeler ile ASCII olmayan parolalı şifreli belgeler, program Lazarus UTF-8 string modunu kullanmasa bile açılıyor
Version 3.122.1
Düzeltildi (Fixed)
LastLoadReportartık her başarısız yüklemede değiştiriliyor: bileşeni istisna fırlatmadan etkin olmayan bırakan başarısız birActive:= Trueile başarısız düzLoadDocumentya daLoadCustomDocumentçağrıları, hata metniyle birlikteplsFailedraporluyor; böylece tek birTPdf'yi yeniden kullanan toplu iş kodu, önceki dosyanın yüklenmiş olarak bildirilmesini artık görmüyorActiveyardım sayfası artık gerçek başarısızlık davranışını (istisna yok, bileşen etkin olmayan kalır, ayrıntılarLastLoadReport'ta) veFileName'in yalnızca bileşen etkin değilken değiştirilebileceğini açıklıyor
Version 3.122.0
Eklendi (Added)
FPdfAssocFilesiçindekiEPdfAssocFilesError,InjectAssociateFiles'in neden enjekte edemediğini bildiriyor: kaynakta okunabilir bir trailer ya da katalog yok ya daTargetPagenegatif ya da var olmayan bir sayfayı adlandırıyor; hedef akış değiştirilmeden bırakılıyor
Değiştirildi (Changed)
SaveAsWithAssociateFilesveSaveAsWithAssociateFilesToStream,TAssocFilesOptions.TargetPage0..PageCountaralığının dışındaysa artıkEPdfErrorfırlatıyor; bu değerler daha önce belgelenen davranışın tersine belge kataloğuna ekleniyordu
Düzeltildi (Fixed)
SaveAsWithAssociateFilesveSaveAsWithAssociateFilesToStream, kaydedilen belge enjeksiyon için ayrıştırılamadığında artıkFalsedöndürüyor; önceki davranış, belgeyi değiştirmeden yazmak ve istenen dosyalar olmadanTruedöndürmektiSaveAsWithAssociateFiles, çıktı üretilmeden önce mevcut bir hedef dosyayı artık kesmiyor; reddedilen ya da başarısız bir kaydetme dosyayı dokunulmaz bırakıyor
Version 3.121.4
Düzeltildi (Fixed)
- Sayfa düzeyi ilişkili dosyalar (
TAssocFilesOptions.TargetPage) artık belge sayfa sırasındaki o konumdaki sayfaya ekleniyor; sayfa nesneleri dosyada görüntülendikleri sıradan farklı bir sırada depolandığında (örneğin sayfalar yeniden sıralandığında ya da araya eklendiğinde) dosyalar daha önce başka bir sayfaya düşebiliyordu
Version 3.121.3
Düzeltildi (Fixed)
SaveAsWithAssociateFilesile kaydedilen ilişkili dosyalar, Çince, Japonca ve diğer ASCII olmayan dosya adlarını ve açıklamaları artık bozulmadan koruyor:/UFve/Desc, sistem ANSI kod sayfası üzerinden dönüştürülerek (Delphi) ya da ham UTF-8 baytları olarak (Free Pascal) yazılmak yerine Unicode PDF metin dizeleri olarak yazılıyor- Eski
/Fdosya adı artık her zaman taşınabilir yazdırılabilir ASCII; ASCII olmayan karakterler_ile değiştiriliyor; böylece/F'i kendi kod sayfasıyla çözen okuyucular artık mojibake göstermiyor
Version 3.121.2
Düzeltildi (Fixed)
- İlişkili dosyalar MIME türlerini artık geçerli PDF adları olarak kodluyor; böylece
text/plaingibi değerler artık bozuk gömülü dosya sözlükleri üretmiyor ya da PDF/A-3 doğrulamasını engellemiyor
Version 3.121.1
Düzeltildi (Fixed)
- Bir ek açıklamayı okuyup değişiklikleri geri yazmak, ilgili akışlar yokken artık boş rollover ve down görünüm akışları oluşturmuyor; böylece PDF/A ek açıklama görünümü gereksinimleri korunuyor
Version 3.121.0
Eklendi (Added)
OnlineRetrievaletkinleştirildiğinde OpenSSL CMS doğrulaması, paylaşılan zaman aşımı ile istek ve yanıt boyutu sınırlarıyla HTTP(S) üzerinden AIA ara sertifikalarını ve CRL'leri getirebiliyor; indirilen sertifikalar, yapılandırılmış güven zinciri onları doğrulayana dek güvenilmeyen kalıyor- Çevrimiçi getirme, Windows'ta WinHTTP'yi, FPC Unix'te kullanılabilir libcurl'ü kullanıyor, HTTPS sertifika doğrulamasını koruyor ve desteklenmeyen taşıma yapılandırmalarını mevcut yetenek tanılamalarıyla ortaya koyuyor
Düzeltildi (Fixed)
- Klasik çapraz başvuru yeniden inşası, çıktı tablosunu tek seferde ayırıyor ve nesne slotlarını doğrudan dolduruyor; böylece büyük seyrek nesne numaralarında karesel iş yükünden kaçınılıyor, ayrıştırıcı kaynak sınırları ve en güncel nesiller korunuyor
- PDF/X-1a çıktısı, varsayılan RGB profilini sessizce gömmek yerine yapısal olarak geçerli bir ICC v2 CMYK yazıcı profili istiyor; geçersiz profiller, mevcut hedef dosya değiştirilmek üzere açılmadan önce başarısız oluyor
- PDF/X-1a doğrulaması gömülü profili ve dört bileşen bildirimini denetliyor, preflight raporları geçersiz çıktı profillerini tanımlıyor; varsayılan çıktı koşulu etiketleri sağlanan profili izlerken açık çağıran etiketleri korunuyor
Version 3.120.4
Düzeltildi (Fixed)
- Tablo çıkarma demosunun klasör toplu modu artık klasördeki her PDF'i işliyor: paylaşılan belge örneği dosyalar arasında etkin kalmıştı, bu yüzden ikinci ve sonraki dosyalar bir atama hatası fırlatıp başarısız raporlanıyordu; artık her belge Delphi, Lazarus ve C++Builder sürümlerinde kendi örneğini alıyor
- Filigran demosunun örnek belgesi sayfalarını oluşturma sırasında tutuyor (1, 2, 3, 4); ilk sayfa artık bir insert-at-index çağrısıyla sona döndürülmüyor
- XFA ve XFDF demoları başarısız belge açılışını işlenmeyen bir istisna yerine mesajla bildiriyor, ekler demosu bir belge yüklüyken yeni bir belgeye başlayabiliyor ve Lazarus görüntüleyicisi kaydettiği bitmapi serbest bırakıyor
- Delphi yazdırma demosu artık yön, duplex, gri tonlama, kalite ve DPI ayarlarını yazdırma işine uyguluyor, yazdırma penceresinde seçilen kopya sayısına uyuyor, render edilemeyen sayfaları atlıyor ve baskıdan sonra önizlemeyi geri getiriyor
- Yükleyicisi açılış hatalarını yutan interaktif demolar artık yanıltıcı bir yüklü durumu göstermiyor, çıkarma çıktı dosyaları UTF-8 BOM taşıyor, CJK ve RTL konsol demoları çıkarılan metni yazdırmadan önce konsolu UTF-8'e çeviriyor ve güven (confidence) girişi ondalıkları sistem yerel ayarından bağımsız ayrıştırıyor
- PAdES timestamp testi artık doğrulayıcının imza timestamp enjeksiyonundan sonra B-T seviyesine ulaştığını gerçekten doğruluyor; test belgesi kendi içinde tutarlı bir ByteRange taşıyor
- API kapsamı ve PDF/A testleri, pdfium.dll yüklüyken artık hiçbir yükleme hatasını ortam kaynaklı atlama saymıyor; ayrıca string değerlerini üçüncü taraf üreticiler literal string olarak serialize ettiğinde belgelerin şifresinin çözülmesini kapsayan yeni bir regresyon testi geldi
Version 3.120.3
Düzeltildi (Fixed)
EncryptDocumentBytes, kaynak PDF artımlı kaydedilmişken artık temel revizyonun tüm nesnelerini düşürmüyor: klasik çapraz başvuru zinciri/Prevüzerinden en yeniden başlayarak geziliyor ve yeni girdiler kazanıyor, kaynak hâlihazırda şifreliyse reddediliyor, birstreamanahtar sözcüğü akış verisi sayılmadan önce bir sözlüğü kapatmak zorunda ve son nesnenin kapsamı, baytlarının içindeki ilkendobjyerine kaynak xref ile sınırlanıyor- String değerlerini literal string olarak serialize eden üçüncü taraf üreticilerin çıkardığı şifreli belgeler artık kimlik doğrulama hatasıyla düşmek yerine şifresi çözülüyor
- PDF/E marker enjeksiyonu, kaynak trailer'da
/Infoyokken sentezlenen Info sözlüğünü gömülü ICC profil akışıyla aynı numaralandırmıyor; bu çakışma artımlı xref'in/DestOutputProfile'ı yanlış nesneye göstermesine yol açıyordu - PDF/X doğrulaması, XMP
pdfxid:GTS_PDFXVersiondeğerini çevresindeki boşluklardan arındırarak karşılaştırıyor; böylece meşru şekilde dolgulanmış element-form XMP artık yanlış bir Info uyuşmazlığı bildirmiyor - PDF/UA doğrulaması attribute-form
pdfuaid:partXMP'yi tanıyor, bayt taramalarından önce nesne akışlarını standartlar doğrulayıcılarının geri kalanı gibi açıyor, çapraz başvuru akışlı belgeler için şifreleme/Pbitini de kontrol ediyor ve boş olmayan birdc:titledeğeri istiyor; marker enjeksiyonu artık boş bir title girdisi yaymıyor - PDF/VT marker enjeksiyonu, sayfa listesi doldurulduktan sonra doğrulamayı geçemeyen bozuk bir DPart hiyerarşisi taşıyan kaynakta artık her sayfa nesnesini iki kez toplayıp yeniden yazmıyor
TsaUrlolmadan PAdES B-T ve üzeri seviyede imza atmak artık sessizce B-B imza üretmek yerine hata fırlatıyor; B-LTA document time-stamp de çağıranınkini yeniden göndermek yerine kendi nonce'unu türetiyor- CMS imza timestamp enjeksiyonu, ilk SignerInfo'dan sonrasını sessizce düşürmek yerine çok imzalı girdiyi reddediyor; SignedData sürümü subjectKeyIdentifier sid ile 3 oluyor,
certReq FALSEDER gereği timestamp isteklerinden çıkarılıyor ve gövde ortasında çıkan bir WinHTTP taşıma hatası, kırpılmış DER gövdesi yerine taşıma hatası olarak raporlanıyor - Sistem yazı tipi gömme, istenen ailenin gerçekte karşılık gelen TrueType Collection yüzünü çözüp tek başına bir yazı tipi olarak çıkarıyor; böylece bir
.ttc'nin ilk olmayan yüzü istendiğinde (örneğin NSimSun) artık 0. yüz gömülüp render edilmiyor BuildToUnicodeCMapglifleri surrogate pair karakterleriyle doğru eşleştiriyor ve ek (supplementary) eşlemeleri bfchar girdileri olarak yayıyor; ilk astral karakterden sonraki her girdiyi kaydırmak yerine- Şekillendirilmiş metin, CID metin ve OCR ekleme, geri alma için nesneyi kaydetmeden önce sayfa ekleme sonucunu kontrol ediyor; böylece başarısız bir ekleme, iki kez yok edilecek askıda bir tanıtıcı bırakamıyor
- Sıkıştırıcıdaki ve ToUnicode onarımındaki stream anahtar sözcüğü algılaması, ISO 32000-1 7.3.8.1'in izin verdiği tek başına CR satır sonunu kabul ediyor
Değiştirildi (Changed)
- Deneme Win64x C++Builder paket derlemesi, önceki tam derlemenin bıraktığı bayat COFF
PDFiumPas.lib'i temizliyor; böylece iki import-library türü birlikte dağıtılamıyor. FULL yükleyici, catch-all listesinden yalnızca yerelde geliştirme için kullanılan dosyaları (packagefiles.xml, durum belgeleri) çıkarıyor ve kurulum sonrası demo derlemeleri, derleme betiklerinin gerçekten okuduğuPDFiumPas_BDS_ROOTdeğişkeni üzerinden IDE kökünü sabitliyor
Version 3.120.2
Düzeltildi (Fixed)
AddTextveSetTextile yerleştirilen metin, düzen üretimi ve OCR arama katmanı artık hem canlı belgeden hem kayıttan sonra tam kod noktalarıyla çıkıyor: geçerli PDFium derlemesinde boşluklar artık U+00A0, tireler U+00AD olarak dönmüyor- Sistem yazı tipleri, kod noktasına göre anahtarlanan CID yazı tipleri olarak gömülüyor; her Unicode karakter için bir CID ve açık bir
CIDToGIDMapile. Böylece birkaç karakterin paylaştığı bir glif (boşluk ve bölünemez boşluk, tire ve soft tire, Omega ve Ohm işareti) herhangi bir görüntüleyicide her karakter için sadakatle geri okunuyor; Unicode cmap alt tablası olmayan yazı tipleri önceki gömme yolunu koruyor
Version 3.120.1
Düzeltildi (Fixed)
- Subset yazı tipleriyle kaydedilen belgeler artık yeniden yüklendiğinde çıkarılan metnini bozmuyor: pdfium'un serialize ettiği ToUnicode CMap, bir CID'i iki farklı kod noktasına eşleyebiliyordu (boşluklar U+00A0, tireler U+00AD olarak); artık her tam kayıt bu çelişkili eşlemeleri yerinde onarıyor ve CMap yapısını bayt düzeyinde aynı bırakıyor, böylece PDFium okuyucusu, MuPDF ve qpdf özgün karakterleri çıkarıyor
- Artımlı kayıtlar, sparse güncellemeler ve çapraz başvuru akışlı belgeler bu onarımla asla yeniden yazılmıyor ve değişmeden geçiyor; çelişkili eşlemesi olmayan dosyalar bayt bayt kopyalanıyor
- Repodaki
sample.pdftest fikstürü onarılmış kayıt yoluyla yeniden üretildi ve yükleme politikası testleri artık fikstür offset'lerini kod içine gömmek yerine xref girdilerini dinamik olarak buluyor
Version 3.120.0
Eklendi (Added)
- Bookmark'lar outline metin stillerini bildiriyor:
TBookmark.Style, yeniFPDFBookmark_GetStylebağlaması üzerinden okunan italic ve bold bayraklarını taşıyor;BookmarkStyleFeaturesAvailableise yüklenen pdfium.dll'in bu dışa aktarıma sahip olup olmadığını söylüyor - Ekler PDF 2.0 associated-file relationship'ini açığa çıkarıyor:
AttachmentRelationship[],TPdfAttachmentMetadata'nın veTPdfAnnotationAttachment'ınRelationshipalanı, yeniFPDFAttachment_GetAFRelationshipbağlaması üzerinden/AFRelationshipadını okuyor;AttachmentRelationshipFeaturesAvailablebunu korumaya alıyor GetObjectRenderedStrokePattern, bir yol nesnesinin konturunda kullandığı tiling desenini yeniFPDFPageObj_GetRenderedStrokePatternbağlaması üzerinden sahipliği çağırandaki bir bitmape rasterleştiriyor;StrokePatternRenderingFeaturesAvailabledışa aktarımı raporluyorTPdfLibraryConfiguration.IsolatePerDocument,FPDF_LIBRARY_CONFIGsürüm 7'dekim_IsolatePerDocumentbayrağına karşılık geliyor; böylece V8 derlemeleri her belgeye kendi isolate'ini verebiliyor.ConfigurePdfLibrary, bu bayrakla birlikte açık birV8Isolatevermeyi reddediyor
Değiştirildi (Changed)
- Geçerli PDFium başlıklarındaki 476 public dışa aktarımın tamamı bağlı; üç yeni giriş noktası toleranslı yükleniyor, böylece eski pdfium.dll'li kurulumlar çalışmaya devam ediyor ve ilgili özellikler boş ya da
nilsonuç bildiriyor
Version 3.119.1
Düzeltildi (Fixed)
- Windows çevrimdışı güven doğrulaması, iptal verisi erişimini de önbelleğe kısıtlıyor; böylece çevrimiçi erişim kapalıyken örtük CRL ya da OCSP ağ istekleri engelleniyor
- Windows'ta iptal hataları bağımsız zincir güven hatasını koruyor ve iptal nedenlerini yerel tanılamalarla PAdES sonuçlarına ve kanıt raporlarına taşıyor
Version 3.119.0
Eklendi (Added)
- PAdES güven doğrulaması ve kanıt raporları, belge imzaları ile timestamp'ler için ayrı iptal nedenleri ve yerel hatalar açığa çıkarıyor; JSON alanları ve sona eklenen CSV sütunları dahil
Version 3.118.0
Eklendi (Added)
- CMS doğrulama sonuçları
RevocationReasonveRevocationErroralanlarını açığa çıkarıyor; süresi dolmuş, erişilemeyen ve geçersiz yerel CRL'ler için OpenSSL tanılamalarıyla
Düzeltildi (Fixed)
- OpenSSL, zincir güveni başarılı ve yerel CRL doğrulaması iptali doğruladığında, açıkça iptal edilmiş sertifikaları geçersiz raporluyor; imza ve güven sonuçlarını ayrı tutmaya devam ediyor
Version 3.117.1
Düzeltildi (Fixed)
- Açık sürümlü kayıtlar, predictor ile sıkıştırılmış çapraz başvuru akışları taşıyan geçerli çok sayfalı formları kabul ediyor; artık hatalı biçimli bir çapraz başvuru bölümü bildirmiyor
Version 3.117.0
Eklendi (Added)
- Tablo algılama artık dolu dikdörtgenler olarak çizilmiş kenarları ve gölgeleri de okuyor: yeni eklenen
MaxRulingThickness'ten daha kalın olmayan dolu bir kutu bir ruling çizgisine dönüşüyor, daha büyük dolu kutular ise kenarlarını tabloya katıyor. Böylece Word, Google Docs ve tarayıcılardan dışa aktarılan tablolar artık whitespace parçaları yerine başlık satırları birleşmiş çizgili ızgaralar olarak bulunuyor.DetectFilledRulingsbu davranışı kapatıyor - Izgara kurulmadan önce ruling koordinatları
RulingSnapToleranceiçinde hizalanıyor; bu sayede hücre bazlı kenar parçaları, çift kenarlar ve aralarında küçük bir boşluk kalan gölgeli hücreler tek tabloda birleşiyor - Form XObject'lerin içindeki ruling'ler birleşik nesne matrisleri üzerinden algılamaya katılıyor;
IncludeFormXObjectsile kontrol ediliyor ExtractDocumentTables, yalnızca sayfa kenarlarına değen parçaları değil, sayfa içeriğinin bittiği yerde biten ve sonraki sayfanın içeriğinin başladığı yerde devam eden continuation parçalarını da bağlıyor ve zincirinin parçası olarak sonraki sayfaya taşan tek bir satırı elinde tutuyor- TableExtractionLab, Delphi, Lazarus ve C++Builder varyantlarında seçenekler panelinde
DetectFilledRulings'i sunuyor
Değiştirildi (Changed)
- Whitespace algılaması artık çizgili bir ızgaraya ait olan kelimeleri yok sayıyor ve her sütun sınırının, ayırdığı satırlar boyunca metinsiz bir koridor olmasını istiyor; böylece iki yana yaslı paragraflar ve madde işaretli listeler artık tablo olarak raporlanmıyor
- İlk satırı tam genişlikte tek hücre olan bir continuation adayı, önceki tablonun devamı yerine başlıklı yeni bir tablo sayılıyor
- Çizgili ızgaralarda
MinRows1 kabul ediyor; whitespace algılaması iki satırlık alt sınırını koruyor ve hücre bazlı kenar kutuları çizgiyle çekilmiş ızgara hatlarından çok daha fazla geldiği için varsayılanMaxRulingSegmentsbütçesi 16384'e çıkıyor - Hücre metni, üst üste binen kelime kutularından satır satır kuruluyor; böylece glif kutularının yüksekliği farklı olan kelimeler soldan sağa sıralarını koruyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri 3.117.0'ı raporluyor
Version 3.116.4
Eklendi (Added)
- TableExtractionLab klasör toplu işlemi kazanıyor:
Batch folder, seçilen klasördeki her PDF içinExtractDocumentTablesçalıştırıyor, belge başına tablo sayılarını listeliyor, metin katmanı olmayan belgeleri OCR için işaretliyor ve bozuk ya da kilitli dosyaların çalıştırmayı yarıda kesmesine izin vermiyor Export all CSV, toplu çalıştırmalarda algılanan her tabloyu<document>-<n>-page<p>-t<i>.csvolaraktablesalt klasörü altında yazıyor, tek dosyada ise yüklenen belgenin yanına kaydediyor- Algılama hazır ayarı seçicisi akort edilmiş
TPdfTableExtractionOptionssunuyor: Default, Compact columns (dar kelime işlemci çıktıları içinMinColumnGap4 ileAlignmentTolerance5) ve Compact + wide rows (1.5-2x satır aralığı içinMaxRowGapFactor6) - Default hazır ayarında hiç tablo vermeyen belgeler, tek belge ve toplu çıkarımda birer kez Compact columns ile yeniden deneniyor ve toplu satırları sonucu hangi hazır ayarın ürettiğini raporluyor
Düzeltildi (Fixed)
- Toplu çıkarım her belgeyi paylaşılan tek bileşeni yeniden yüklemek yerine kendi
TPdförneğinde açıyor; böylece klasör çalıştırmasının ortasında etkin olmayan bileşen hataları olarak yüzeye çıkan sessiz yükleme başarısızlıkları ortadan kalkıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri 3.116.4'ü raporluyor
Version 3.116.3
Değiştirildi (Changed)
- Üç toolchain'deki TableExtractionLab örneği de ürettiği örnek belgeyi artık yalnızca bellekte tutmak yerine demo çalıştırılabilirinin yanına
TableExtractionSample.pdfolarak yazıyor; klasör yazılabilir değilse lab önceki bellek içi davranışa geri dönüyor ve durumu durum satırında bildiriyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri 3.116.3'ü raporluyor
Version 3.116.2
Düzeltildi (Fixed)
- Kütüphane eski Delphi sürümlerinde derlenmeyi bırakmıştı. 64-bit tick helper'ı ile güven listesi ve üretim XML codec'leri, yalnızca daha yeni derleyicilerin RTL birimlerinin taşıdığı
GetTickCount64veCP_UTF8'i çağırıyordu; reflow HTML writer'ı, bu derleyicilerin tek bir literale koyduğu 255 elemanlık sınırı aşan bir CSS dize literali gömüyordu; XFA dataset birleştirmesi ise pre-XE7 derleyicilerin reddettiği,TBytesile düz bir dinamik dizi alanı arasında atama yapıyordu. Artık eski derleyiciler RTL sağlamadığındaGetTickCount64'ü kernel32'den bağlıyor veCP_UTF8'i yerel olarak bildiriyor, stil sayfası kısa literallerin birleştirilmiş hâli olarak geliyor ve paket yükü öğe öğe kopyalanıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri 3.116.2'yi raporluyor
Version 3.116.1
Eklendi (Added)
Demo\Delphi\TableExtractionLab,Demo\CBuilder\TableExtractionLabveDemo\Lazarus\TableExtractionLab, tablo algılamayı tek bir iş akışına çeviriyor. Lab; birleşik başlık hücreleri taşıyan çizgili bir tablo, ruling olmayan whitespace hizalı bir tablo ve sayfa sınırını aşan uzun bir tablo içeren örnek bir belge kuruyor, ardındanExtractTablesya daExtractDocumentTablesçalıştırıp satırları, sütunları, span'ları, başlık bayraklarını, algılama modunu, güven puanını ve continuation gruplarını listeliyor- Lab seçili tabloyu
TPdfTable.ToCsvveTPdfTable.ToJsonile dışa aktarıyor, seçenekler panelindenDetectRuledTables,DetectWhitespaceTables,DetectContinuationsveMinConfidence'i düzenliyor ve raporun tamamını panoya kopyalıyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri 3.116.1'i raporluyor
Version 3.114.21
Düzeltildi (Fixed)
- PDF/A doğrulaması, ek açıklama içeren her belgede harici dosya referansı raporluyordu. ISO 19005-1 §6.1.7, stream nesnesi sözlüğünde
/F,/FFilterve/FDecodeParms'i yasaklar; ama kontrol bu adları dosyanın tamamında arıyordu ve/Fayrıca §6.5.3'ün her ek açıklamanın taşımasını istediği ek açıklama bayrakları anahtarıdır. Kontrol artık yalnızca stream nesnesi sözlüklerinin içine bakıyor
Version 3.114.20
Düzeltildi (Fixed)
- Üç imza arka ucunda da RSASSA-PSS imzaları bozuk algoritma parametreleri taşıyordu. RFC 4055, RSASSA-PSS-params'ın dört alanına da etiket takar; salt uzunluğu çıplak bir integer olarak yazılıyordu ki parser bunu başka bir alanın başlangıcı olarak okur, trailer alanı ise DER'in atılmasını istediği varsayılan değerine eşit olduğu hâlde yazılıyordu. Doğrulayıcı ya parametreleri ayrıştıramıyor ya da imza 32 kullanırken varsayılan 20 baytlık salt'a düşüyordu; sonuçta PSS imzaları reddediliyordu. PKCS#1 v1.5 ve ECDSA imzaları etkilenmedi
Version 3.114.19
Düzeltildi (Fixed)
- SHA-256 dışında bir digest ile zaman damgası istemek, SHA-256 digest taşıdığı hâlde o algoritmayı bildiren bir istek üretiyordu; zaman damgası otoritesi bunu ya reddediyor ya da daha kötüsü, geldiği gibi damgalıyordu. Hesaplanan tek digest SHA-256 olduğundan artık başka tanımlayıcılar tamamen reddediliyor; boş tanımlayıcı yine varsayılan SHA-256'yı seçiyor. Lazarus ve C++Builder için PDF Viewer örneği ayrıca form dosyasının adını andığı ama kodunun tanımlamadığı bir yer imi genişletme handler'ını bağlıyordu; form yüklendiğinde bu başarısız oluyor ve handler Delphi örneğinden taşındı
Version 3.114.18
Düzeltildi (Fixed)
- Delphi için XFA Lab ve XFDF Lab örnekleri ile Lazarus için XFA Lab örneği başlangıçta çöküyordu. Her biri kontrollerini formunun create handler'ından kuruyor; ama form kaynağı ne mevcuttu ne de bağlanmıştı, bu yüzden ana formu oluşturmak resource-not-found hatası fırlatıyor ve handler hiç çalışmıyordu. Üçü de artık form dosyasını ve onu gömen directive'i taşıyor
Version 3.114.17
Düzeltildi (Fixed)
- Bir işlem yarı yolda başarısız olduğunda iki yerel kaynak yanlış işleniyordu. Başarısız bir thumbnail render, yerel render'ı kapatmadan önce hedef bitmap'i serbest bırakıyordu; render tam da o bitmap'in kendi piksellerine çizim yapıyorsa kapanış, çoktan serbest bırakılmış belleği okuyordu.
AddBitmap'de başarısız bir bitmap tahsisi, az önce oluşturduğu görüntü nesnesini sahipsiz ve ona tekrar ulaşmanın yolu olmadan bırakıyordu
Version 3.114.16
Düzeltildi (Fixed)
- FDF metni okumak
0x7Eüzerindeki karakterleri yanlış üretiyordu. ISO 32000-1 Ek D.2'deki PDFDocEncoding tablosu0x80'de bullet ile başlar; ama eşleme0x7F'ten başlatılmış, dolayısıyla0x9F'e kadar bütün blok bir kaymıştı: dagger bullet okunuyor, em dash üç nokta okunuyor, böylece sonundaki zcaron tamamen dışarı düşüyordu.0xA0'daki Euro da eksikti ve kırılmaz boşluk olarak dönüyordu. İçe aktarılan FDF'deki alan adları ve değerler artık doğru çözülüyor
Version 3.114.15
Düzeltildi (Fixed)
- Trailer'ı ya da kataloğu okunamayan bir belgede güven doğrulamak, dizinin sonunun ötesine yazıyordu. Uyumluluk geçişi bu durumda hiçbir imza kaydetmeden vazgeçiyor; ondan sonra çalışan toplayıcı ise doğrudan bayt akışıyla çalıştığı için imza sözlüklerini hâlâ bulabiliyor, böylece boş olan diziye bulunan her sözlük için bir kayıt yazılıyordu. Sayı artık uyumluluk geçişinin ürettiğiyle sınırlandırılıyor
Version 3.114.14
Düzeltildi (Fixed)
- Bir PDF/A onarım planını yürütmek, planlayıcının engellediği adımları uyguluyordu. Bir adım; belge imza taşıdığında, adım onları geçersiz kılacaksa ve çağıran buna izin vermediğinde engellenir; yürütücü ise yalnızca adımın güvenlik düzeyini test ediyordu ki bu koşulu ifade etmez, böylece planın zaten reddettiği otomatik onarım imzalı bir belgenin imzalarını geçersiz kılabilirdi. Engellenen adımlar artık atlanıyor ve atlanmış sayılıyor
Version 3.114.13
Düzeltildi (Fixed)
- Sertifika kümesi 127 bayttan büyük olan bir CMS değerine — yani gerçek her sertifikaya — imza zaman damgası eklemek sonucu bozuyordu. İç içe yapının başlangıcını bulan yardımcı, uzunluk oktetleri üzerinde geriye yürürken sonuncusunu ilki sanıyor ve kestiği dilim, istenen yapının çok önünde başlıyordu. Başlık uzunluğu artık DER'in tartışmasız belirttiği gibi içerik uzunluğundan türetiliyor. Kendi kendine testler bunu kaçırdı çünkü fixture sertifikaları kısa biçimin yeterli olacağı kadar küçüktü
Version 3.114.12
Düzeltildi (Fixed)
- İmzalı öznitelikler, X.690 §11.6'nın bir DER SET OF'tan istediği kodlamalarına göre sıralı olmak yerine kuruluş sıralarına göre çıkartılıyordu. Böylece öznitelik kümesini digest hesaplamadan önce yeniden kodlayan bir doğrulayıcı — OpenSSL de BouncyCastle da böyle yapıyor — farklı bir digest hesaplıyor ve sağlam bir PAdES imzasını geçersiz raporluyordu. Bu kütüphanenin ürettiği imzalar artık o stack'lerde de doğrulanıyor; Windows katmanından doğrulama etkilenmedi çünkü gelen baytları geldiği gibi digest'liyor
Version 3.114.11
Düzeltildi (Fixed)
- İçerik baytından geniş negatif bir DER INTEGER yanlış değerle kodlanıyordu. Writer, mantıksal kaydırmadan sonra işareti yeniden ekleyerek aritmetik kaydırmayı taklit ediyor; ama kullandığı maske, kaydırmanın boşaldığı bayt yerine alt baytın üzerindeki her biti set ediyordu, böylece kalan baytlarda hâlâ duran büyüklük üzerine yazılıyordu. Örneğin -100000, -34464 olarak kodlanıyordu. Zaman damgası isteği nonce'ları ve bu boyuttaki diğer her işaretli tamsayı artık doğru kodlanıyor
Version 3.114.10
Düzeltildi (Fixed)
- PDF/A doğrulaması, ISO 19005-1 §6.4'teki saydamlık kuralının sabit alpha bölümünü hiç raporlamıyordu. Yardımcı, arama anahtarını başına eğik çizgi ekleyerek kuruyor; çağıran da bir tane geçiyordu, böylece
//CAaranıyordu ve hiçbir şey eşleşmiyordu. Her iki alpha kontrolü de yalnızca1ve1.0metinlerini kabul ediyordu ki bu da tam opak/CA 1.00'i ihlal olarak işaretliyordu; bir değeri artık yazılışı ne olursa olsun tanınıyor
Version 3.114.9
Düzeltildi (Fixed)
- Sayfa düzeyindeki URI aksiyonu bozuk metin döndürüyordu. Yol, yerel katmandan UTF-8 baytları olarak geliyordu ve doğrudan geniş bir dizeye yazılıyordu; bu, baytları 16-bit kod birimlerine eşliyor ve tamponun kalanını bellekte ne varsa ona bırakıyordu.
GetPageActionURIartık baytları, belge düzeyindeki aksiyon yolunun çoktan yaptığı gibi çözüyor
Version 3.114.8
Güvenlik (Security)
- Windows dışı hedeflerde her şifreleme anahtarının, salt'ının ve başlatma vektörünün arkasındaki rastgele baytlar çalışma zamanı PRNG'sinden geliyordu; program
Randomizeçağırmadıkça bu PRNG'nin tohumu sabit. Böylece her işlem aynı dosya şifreleme anahtarını, aynı/UEve/OEsalt'larını, aynı/Permsbaytlarını ve aynı AES-GCM nonce'larını üretiyordu; Linux ya da macOS'taki bir Free Pascal build'inin şifreli çıktısı kolayca geri kazanılabilir hâle geliyor ve sabit bir anahtar altında GCM nonce tekrarlanıyordu. Baytlar artık/dev/urandom'dan geliyor ve çekirdek havuzu erişilemez olduğunda, Windows'taCryptGenRandomerişilemezken zaten yaptığı gibi geri düşmek yerine istisna fırlatıyor
Version 3.114.7
Düzeltildi (Fixed)
- Bozuk biçimli bir nesne akışı, sıkıştırma ve onarım giriş noktalarının çözülmüş tamponun sonunun ötesini okumasına yol açabiliyordu. Artık akışın bildirdiği üye ofsetleri, başlık çözülür çözülmez aralık ve artan sıra için denetleniyor; başlığın taşıyabileceğinden büyük bildirilmiş üye sayısı, hiç bellek ayrılmadan reddediliyor ve her üyenin bayt aralığı, sondaki boşlukları kırpmadan önce doğrulanıyor
Version 3.114.6
Düzeltildi (Fixed)
- Satır içi görselleri dışsallaştırmak kullanılamaz bir görüntü XObject üretiyordu. Sözlük, ilk anahtarından önce başıboş bir eğik çizgiyle yazılıyordu; bu boş bir isim açıyor ve her anahtarı önceki anahtarın değerine kaydırıyordu. Inline kısaltma tablosu Decode'u
G'ye eşliyordu,D'ye değil; böylece/Ddizisi düşüyor ve DeviceGray değer kısaltması bir anahtar sanılıyordu. İçerik akışından çıkarılan görseller artık biçimi düzgün bir sözlük taşıyor ve Decode dizilerini koruyor
Version 3.114.5
Düzeltildi (Fixed)
- HarfBuzz shaper'ı sağdan sola akışlarda küme uzunluklarını yanlış gliflere atıyor ve bir kümeyi paylaşan gliflere — işaretler ve ligatür bileşenleri gibi — bir uzunluk veriyordu. Her glifin
ClusterLength'i artık her iki yönde de mantıksal sırada kendi kümesinin başlangıcından sonraki kümeye kadar uzanıyor; böylece Arapça ve İbranice metin için karakterden glife eşleme Uniscribe arka ucunun rapor ettiğiyle eşleşiyor
Version 3.114.4
Düzeltildi (Fixed)
- libcurl zaman damgası taşımacılığı sayısal seçeneklerini 32-bit değerler olarak geçiriyor ve HTTP durum kodunu 32-bit okuyordu; oysa libcurl C
longalır ve döner, ki Linux ve macOS'ta bu 64 bittir. Durum sorgusu yığında hedefinin yanındaki dört baytı üzerine yazabiliyordu ve seçenek değerleri yazmacın üst yarısında ne varsa ona bağlıydı. İkisi de artık platformunlonggenişliğini kullanıyor; böyleceFPdfTsaFpcLP64 hedeflerinde sağlam
Version 3.114.3
Düzeltildi (Fixed)
- PKCS#11 arka ucu, token nesne etiketinin ham baytlarını doğrudan bir dizeye kopyalıyordu; Delphi'de bu, UTF-8 baytlarını UTF-16 kod birimlerinin üzerine düşürüyor.
TPdfPkcs11Options.CertificateLabelüzerinden seçilen bir sertifika bu yüzden asla eşleşemiyordu veEnumerateCertificatesbozukLabelTextraporluyordu. Etiketler artık standardın tanımladığı UTF-8 olarak çözülüyor veC_Login'e verilen PIN, konak kod sayfası üzerinden daraltılmak yerine UTF-8 olarak kodlanıyor; böylece ASCII dışı bir PIN token'a sapasağlam ulaşıyor
Version 3.114.2
Düzeltildi (Fixed)
- macOS Keychain imzalayıcısı, bir anahtarın RSASSA-PSS kabul edip etmediğine karar verirken
SecKeyIsAlgorithmSupported'a yanlış işlemi soruyordu: sorgu sign yerine decrypt işlemini adıyordu, cevap hep hayırdı ve her RSA imzası sessizce PKCS#1 v1.5'e düşüyordu. PSS destekleyen bir anahtar artıkTPadesSignerOptions.PaddingScheme'in istediği gibi PSS ile imzalıyor ve işlem argümanı framework'ün bildirdiği genişlikte geçiriliyor
Version 3.114.1
Düzeltildi (Fixed)
- Sağdan sola metinlerde iç içe parantez çiftleri yanlış yöne çözülüyordu. UAX #9 kuralı BD16, çiftleri açan parantezlerin göründüğü sırada işler ve N0 ile çözülen bir çift, ondan sonra açılan çift için önceki güçlü bağlam olur; çiftler ise onun yerine kapatan parantezlerin tamamladığı sırada işleniyordu, böylece içteki çift, dıştaki çiftin kurduğu bağlamı değil de sardığı harfi takip edebiliyordu. İçinde iç içe parantezli bir ifade barındıran Arapça ya da İbranice cümle gibi metinler artık okurun beklediği gibi diziliyor
Version 3.114.0
Eklendi (Added)
FPdfCryptoSsl, PDF imzalarını ve zaman damgası tokenlarını OpenSSL üzerinden doğruluyor ve imza doğrulamasındaki son platform eksiğini kapatıyor: Linux'ta hiç CMS doğrulama arka ucu yoktu.ConfigureSslCmsVerifierbu arka ucu kuruyor, libcrypto çalışma zamanında isimle çözümlendiği için hiçbir şey ona bağlanmıyor ve hem 1.1 hem 3.x serisi bağlanabiliyor- İmza ile sertifika zinciri ayrı geçişlerde değerlendiriliyor; böylece güven köküne ulaşmayan bir zincir altındaki sağlam imza, bozuk imza yerine geçerli imza + geçersiz güven olarak raporlanıyor
ConfigureSslTrustAnchorssistem deposuna DER güven kökleri ekliyor,ConfigureSslCrlsise iptal kontrolünün başvurabileceği CRL'leri sağlıyor. İptal, yalnızca gerçekten bir CRL mevcutsa kontrol edilmiş sayılıyor, çünkü OpenSSL kendiliğinden hiçbir CRL çekmiyor; CRL verilmemişse sonuç, denetlenmemiş bir zinciri geçirmek yerine unsupported diyorSslAvailable,SslMissingSymbols,SslLibraryPath,SslLibraryVersionveSslAbiLayoutneyin bağlandığını neyin bağlanmadığını raporlarken,ConfigureSslLibraryPathplatform varsayılanları bir kütüphane bulamadığında arka ucu belirli bir kütüphaneye yönlendiriyor
Version 3.113.0
Eklendi (Added)
TPdfKeychainCmsVerifier, macOS'ta PDF imzalarını ve zaman damgası tokenlarınıCMSDecoderve SecTrust üzerinden doğruluyor; imza doğrulaması artık yalnızca Windows'a özgü değil.ConfigureKeychainCmsVerifierbunu kuruyor ve aynı birim,FPdfCryptoWin'in Windows için yaptığı gibi macOS desteğinin iki yarısını da kapsıyor- İptal kontrolü de dikkate alınıyor: istendiğinde temel X.509 ilkesine bir iptal ilkesi ekleniyor ve çevrimiçi erişim kapatıldığında değerlendirme, önbelleğe alınmış yanıtlarla sınırlanıyor. İmza, zincir, çevrimiçi erişim ve iptal aşamaları için ilerleme kontrol noktaları, Windows arka ucunun raporladığı biçimde tetikleniyor
KeychainVerificationAvailable, doğrulama desteğini imzalamadan ayrı raporluyor; ikisi farklı framework sembolleri gerektiriyor ve biri diğerine gerek kalmadan var olabiliyor
Version 3.112.0
Eklendi (Added)
FPdfCryptoMac, PAdES'i macOS Keychain kimliğiyle imzalıyor; Windows sertifika deposunun karşılığı bu: sertifika ve özel anahtarı Keychain'den geliyor, imzayıSecKeyCreateSignatureüretiyor, dolayısıyla anahtar sistem keystore'undan hiç ayrılmıyor.ConfigureKeychainSignerProviderbunu kuruyor ve PKCS#11 token arka ucunda gerektiği gibi uygulamanın yanına ek bir modül dağıtmak gerekmiyor- İmzalayan sertifikayı takip ediyor: EC anahtarı ECDSA imzalıyor, RSA anahtarı RSASSA-PSS imzalıyor; PSS'nin olmadığı yerlerde - eski bir macOS ya da bunu kabul etmeyen bir anahtar - dolgu PKCS#1 v1.5'e düşüyor ve üretilen AlgorithmIdentifier, PSS iddia etmek yerine bunu belirtiyor
KeychainMissingSymbols, çözümlenemeyen framework sembollerini listeliyor; böylece arka ucu kullanılamaz raporlayan bir dağıtım, eksik framework ile bu binding'in yanlış aldığı bir ismi ayırt edebiliyor
Version 3.111.0
Eklendi (Added)
ConfigurePadesCmsVerifier, PAdES doğrulayıcısının kullandığı CMS doğrulama arka ucunu kuruyor; imza ve zaman damgası doğrulaması artık Windows'a bağlı değil.IPdfCmsVerifier, bir arka ucun yanıtladığı iki işlemi bildiriyor - PDF imzası için detached, zaman damgası tokenı için attached - vePadesCmsVerificationAvailableherhangi bir arka ucun mevcut olup olmadığını raporluyor
Değiştirildi (Changed)
- Doğrulama sonucu ve seçenek kayıtları
FPdfCryptoiçineTPdfCmsVerify*olarak taşındı.TWinCmsVerify*adları alias olarak duruyor; mevcut kod çalışmaya devam ediyor ve takılan bir arka uç, Windows'takiyle aynı türleri konuşuyor - Windows davranışı değişmedi: doğrulayıcı kurulmadığında hâlâ CryptoAPI kullanılıyor ve ilerleme kontrol noktaları, iptal seçenekleri ile yerel hata kodları aynı. Hiçbir arka ucun yanıt vermediği yerde her karar, denetlenmeden bırakılmak yerine unsupported raporluyor
Version 3.110.0
Eklendi (Added)
FPdfPkcs11, PAdES'i PKCS#11 token içinde kalan bir anahtarla imzalıyor.ConfigurePkcs11SignerProviderbunu imzalama arka ucu olarak kuruyor, modül çalışma zamanında yol üzerinden yüklendiği için hiçbir şey bağlanmıyor ve aynı kod Windows, Linux ve macOS'ta hizmet veriyor.IPdfPkcs11SignerProviderarayüzünün bildirdiği token numaralandırması da onunla birlikte gerçekleniyor: slotlar, tokenlar ve her birinin taşıdığı sertifikalar- Windows dışında imzalama, yaygın durum için ana makinenin sağladığı bir provider gerektirmiyor: bir token modülü ile
TPdfPkcs11Optionsyeterli. RSA PKCS#1 v1.5, RSASSA-PSS ve ECDSA'nın tamamı token üzerinden üretiliyor FPdfSha1, tek bir amaçla SHA-1 ekliyor:TPadesSignerOptions'un taşıdığı thumbprint ile sertifika eşlemek. Windows bunu sertifika deposu içinde çözüyordu; token sertifika baytlarını geri veriyor ve eşleştirmeyi çağırana bırakıyor. Bu bir imzalama özeti değil ve PAdES yığını her yerde SHA-256 ile imzalamaya devam ediyor
Değiştirildi (Changed)
- Public-key algoritma OID'sini okuyan, issuer ve serial'i çıkararak ham ECDSA imzasını yeniden sarmalayan sertifika DER yardımcıları, Windows arka ucundan her imzalama arka ucunun ulaşabileceği
FPdfCms'e taşındı
Version 3.109.0
Değiştirildi (Changed)
- Yerel kütüphane yükleyicisi artık yalnızca Windows'a özgü değil.
LibraryName, hedefe göre varsayılan olarakpdfium.dll,libpdfium.soya dalibpdfium.dylibadını alıyor, V8 derlemesi eşleşen ad altında aranıyor ve yükleme ile sembol bağlama Free Pascal'da taşınabilir yükleyici üzerinden yapılıyor. Win32 ve Win64 dağıtım düzeni ile mimari uyuşmazlık tanılaması dahil Windows davranışı değişmedi - Diğer hedeflerdeki dağıtım dizinleri, derlenmiş birimlerin zaten kullandığı
<cpu>-<os>yazımını izliyor;DLLs/x86_64-linux/libpdfium.so,Lib/FPC/x86_64-linux'un yanında duruyor. Sistem dizini fallback'i yalnızca Windows'a özgü kalıyor; başka yerde yükleyicinin arama yolu bunu karşılıyor
Version 3.108.0
Eklendi (Added)
TPdfHarfBuzzTextShaper, Uniscribe olmayan Free Pascal hedeflerinde çift yönlü ve karmaşık betikli metinleri şekillendiriyor. Gömme düzeyleriniFPdfBidiile çözüyor, run'ları betiğe göre ayırıyor, her run'ı libharfbuzz ile şekillendiriyor ve run'ları görsel sıraya diziyor.ConfigureTextShaperile kurun; libharfbuzz çalışma zamanında çözümlenir ve eksik olduğundaHarfBuzzAvailablebunu dürüstçe raporlar- Shaper yazı tiplerini numaralandırmıyor. Uniscribe, yazı tipi ikilisini bir device context'ten okur ve bunun taşınabilir bir karşılığı yok; bu yüzden ana makine, yazı tipi adını yazı tipi dosyası baytlarına eşleyen bir
TPdfFontDataResolvergeçiriyor ve bu politika ait olduğu yerde kalıyor
Version 3.107.0
Eklendi (Added)
FPdfBidi, Unicode Bidirectional Algorithm'ü (UAX #9) saf Pascal'da gerçekliyor:PdfResolveBidiLevelsher UTF-16 kod birimi için bir gömme düzeyi döndürüyor,PdfBidiVisualOrderL2 yeniden sıralamasını uyguluyor vePdfBidiClassOfbir kod noktasının Bidi_Class'ını açıyor. P2-P3, X1-X10, W1-W7, N0-N2, I1-I2 ve L1-L2 kuralları, isolate başlatıcıları ve BD16 köşeli ayraç çiftleri dahil kapsanıyor- Birim, derleyici ve platform açısından nötr; çift yönlü metnin Uniscribe'ın bulunmadığı yerlerde de dizilebilmesini sağlayan tam olarak bu. Bir shaping motoru, yönü zaten bilinen bir run için glifleri çözüyor; bu yüzden yönü önce belirlemesi gereken parça burası
Version 3.106.0
Eklendi (Added)
ConfigureTextShaper, kütüphanenin tamamının yönlendiği metin shaping arka ucunu kuruyor; yanındaActiveTextShaper,ActiveTextShaperNameveClearTextShaperda geliyor.ShapePdfTextileTPdf.AddShapedTextartık doğrudan bir Uniscribe örneği oluşturmak yerine kurulu shaper'ı kullanıyor; böylece ana makine kendi motorunu, bir test de belirleyici bir motoru takabiliyor
Değiştirildi (Changed)
FPdfTextShapingWindows dışı hedeflerde de derleniyor: Uniscribe arka ucu artık tek gerçekleme değil, platformun varsayılanı ve Windows derlemesine hapsedilmiş durumda. Arka ucun bulunmadığı yerlerde shaping giriş noktaları, derlenememek yerine bunu raporluyor
Version 3.105.1
Güvenlik (Security)
- Zaman damgası yanıtı artık her iki aktarımda da 4 MB ile sınırlı. Daha önce sürekli gönderen bir TSA, alma tamponunu sınırsızca büyütebiliyor ve imza çağrısını sınırsız bellek büyümesine dönüştürebiliyordu
Version 3.105.0
Eklendi (Added)
- RFC 3161 zaman damgalama, Windows dışı Free Pascal hedeflerinde de çalışıyor: yeni libcurl arka ucu TimeStampReq'i gönderip TimeStampResp'i okuyor; böylece
PadesTsaAvailableTrue raporluyor ve PAdES B-T, B-LT ile B-LTA orada token alabiliyor. libcurl çalışma zamanında çözümleniyor ve derleme zamanı bağımlılığı değil; yokluğunda arka uç, WinHttp'ninkiyle aynı şekilde kullanılamaz raporluyor. Windows WinHttp kullanmaya devam ediyor ve etkilenmiyor - Bu hedeflerde imzalama, hâlâ kütüphanenin sahip olmadığı anahtar malzemesi gerektiriyor:
FPdfCryptoWinyalnızca Windows'ta çalıştığı için bunuConfigurePadesSignerProviderile birIPadesSignerProvider(token destekli anahtarlar içinIPdfPkcs11SignerProvider) üzerinden sağlayın
Version 3.104.1
Eklendi (Added)
- XFA inceleme laboratuvarı örneği artık Lazarus için de mevcut; XFA yetenek sorguları, paket listeleme, paket dışa aktarma ve
OnXfaRuntimeMissingfallback'i LCL derlemesinden çalıştırılabiliyor
Version 3.104.0
Değiştirildi (Changed)
- Kütüphane Free Pascal 3.2'de önlenebilir tanılama uyarıları olmadan derleniyor: dahili zamanlama, milisaniye tikini kullanımdan kaldırılmış 32-bit çağrı yerine
GetTickCount64'ten okuyor; kullanımdan kalkan SSE control-word erişimcileriGetMXCSRveSetMXCSRile değiştirildi; içerik parmak izinin offset tabanı, derleme zamanı aralık kontrolünü tetiklememesi için açıkça tiplendirildi; ve bir bitmap üstten alta düzen için denetlenirken scanline adresleri işaretsiz işaretçiler olarak karşılaştırılıyor
Version 3.103.1
Düzeltildi (Fixed)
- XMP'ye taşınan belge meta verisi Free Pascal'da ASCII dışı karakterlerini koruyor:
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRveSaveAsPdfVT'ye ulaşan başlık, yazar, konu, anahtar sözcük ve oluşturan adları artık bayt bayt kopyalanmak yerine string codepage'i üzerinden dönüştürülüyor; böylece ana program UTF-8 codepage üzerinde çalışmasa bile meta veri paketi, ISO 19005-1 6.7.2'nin gerektirdiği gibi geçerli UTF-8 kalıyor - XFDF dışa aktarma, üretim meta verisi gidiş dönüşleri ve güvenilen liste XML ayrıştırma aynı codepage-doğru dönüşümü kullanıyor;
TBytesilestringarasında hareket eden metin artık ana makinenin codepage'ine bağlı değil
Version 3.103.0
Eklendi (Added)
TPdfEuropeanTrustedList, kimliği doğrulanmış Avrupa güvenilen listelerini ayrıştırıyor, sağlama toplamlı önbellekleri aynı kimlik doğrulayıcıyla yeniden yüklüyor, çağıranın sağladığı güncelleme kaynaklarını kabul ediyor, güncel güven köklerini açıyor ve nitelikli imza servislerini istenen doğrulama zamanında değerlendiriyorTPadesTrustValidationOptions.QualifiedTrustEvaluator, PAdES doğrulayıcısına ağ erişimi eklemeden her doğrulanan imzalayıcıya çevrimdışı nitelikli güven ilkesi uyguluyor
Version 3.102.0
Eklendi (Added)
BeginIncrementalSaveileCommitIncrementalSave, AES-256 ile şifrelenmiş belgelere artık kimliği doğrulanmış revizyonlar ekliyor; orijinal/Encryptreferansını, güvenlik parametrelerini, tam nesil sayılarını ve önceki baytları koruyor
Değiştirildi (Changed)
- Dosya commit overload'u artık aynı dizindeki bir yan dosyayı kalıcı olarak flush edip katı biçimde yeniden açıyor, revizyon sınırını doğruluyor ve herhangi bir başarısızlık sonrası oturumu geri alarak hedefi atomik olarak değiştiriyor
Version 3.101.0
Değiştirildi (Changed)
SaveAsRedactedartık kısmen kesişen metinlerin, dikdörtgen yolların ve eksene hizalı görüntülerin güvenli bölümlerini koruyor; ardından sayfa, Form XObject, pattern, appearance ve iç içe kaynak kapsamlarınca artık referans edilmeyen kaynak adlarını kaldırıyor
Version 3.100.0
Değiştirildi (Changed)
OptimizeImagesartık ölçek, içerik sınıfı, ölçülen detay ve çağıranın kalite tercihi üzerinden box, bilinear, bicubic, Lanczos ya da bilevel yeniden örnekleme seçiyor; alfa duyarlı filtreleme ve sıkı bir çalışma belleği bütçesiyle
Version 3.99.0
Eklendi (Added)
GraftPdfAcroForm, hiyerarşik AcroForm alanlarını, widget'ları, appearance'ları, hesaplama sırasını, varsayılan kaynakları, eylemleri ve değerleri açık sayfa eşlemeleri ve çakışma ilkeleri üzerinden içeri aktarıyorTPdfCrossDocumentGraftMap, içeri aktarılan dolaylı nesneleri kaynak kimliğine göre yeniden kullanıyor; döngüleri, paylaşılan referansları, tam kaynak nesil sayılarını ve işlemsel başarısızlık semantiğini koruyor
Version 3.98.0
Eklendi (Added)
TPdfOutlineEditor, ana hat öğelerini oluşturuyor, taşıyor, siliyor, biçimlendiriyor, genişletiyor ve yeniden hedefliyor; açık hedefleri sayfa planı sonuçları üzerinden yeniden eşliyor ve bağımsız olarak doğrulanan artımlı bir revizyon ekliyor
Version 3.97.0
Eklendi (Added)
TPdfTreeEditor, rastgele PDF NameTree ve NumberTree yapılarını okuyor, doğruluyor, güncelliyor, dengeliyor, bölüyor, birleştiriyor, serileştiriyor ve artımlı olarak kaydediyor; yeniden kullanılabilir dolaylı referansları ve ham giriş değerlerini koruyor
Version 3.96.0
Eklendi (Added)
TPdfParserResourceBudget, özel PDF parser'lar genelinde özyineleme, token, nesne, çözülmüş bayt, genişleme oranı, tahsis ve son tarihler için tek bir thread-safe süreç ilkesi sunuyor; değişmez işlem başına anlık görüntüler ve yapılandırılabilir varsayılanlarla
Version 3.95.0
Değiştirildi (Changed)
ValidatePdfXartık geçerli xref'li şifrelenmemiş belgelerde sınırlı seyrek okumalarla etkin PDF/X sözlüklerini, meta veriyi, output intent'leri, yazı tiplerini, yasaklanan özellikleri, saydamlığı, renk uzaylarını ve sayfa kutularını doğruluyor
Version 3.94.0
Değiştirildi (Changed)
ValidatePdfRartık geçerli xref'li şifrelenmemiş belgelerde sınırlı seyrek ve pencereli okumalarla etkin PDF/R sözlüklerini, sayfaları, görüntü filtrelerini, meta veriyi ve alt bilgi işaretçilerini doğruluyor
Version 3.93.0
Değiştirildi (Changed)
ValidatePdfEartık geçerli xref'li belgelerde sınırlı seyrek okumalarla etkin PDF/E sözlüklerini, meta veriyi, output intent'leri, formları ve yasaklanan özellikleri doğruluyor
Version 3.92.0
Değiştirildi (Changed)
ValidatePdfVTartık geçerli xref'li belgelerde sınırlı seyrek okumalarla gelişmiş recurring-XObject kapsamı, görünürlük, kapsülleme ve iç içe Form kullanımı analizini yapıyor
Version 3.91.0
Eklendi (Added)
TPdfSparseDictionaryReader, bir nesnenin etkin neslini çözümleyebiliyor ve çağıranın verdiği bayt sınırı altında doğrudan bir stream'i çözebiliyor
Değiştirildi (Changed)
ValidatePdfVT, normal geçerli xref yolunda PDF/VT meta verisi, DPart, OutputIntent, Info, sayfa ve sıradan sözlük kontrolleri için artık sınırlı seyrek okumalar kullanıyor
Version 3.90.0
Eklendi (Added)
TPdfSparseDictionaryReader, yinelenen sınırlı dolaylı nesne sözlüğü okumaları için tek bir seyrek xref ve object-stream indeksini açık tutuyor
Değiştirildi (Changed)
InjectPdfVTMarkersartık mevcut bir PDF/VT DPart hiyerarşisini sınırlı kaynak okumalarıyla doğrulayıp koruyor; bozuk hiyerarşiler yeniden inşa fallback'i üzerinden devam ediyor
Version 3.89.0
Eklendi (Added)
ReadPdfSparsePageDictionaries, sayfa ağacı sırasına göre sayfa nesnesi kimliklerini ve sınırlı sözlük baytlarını seyrek nesne indeksi üzerinden döndürüyor
Değiştirildi (Changed)
InjectPdfVTMarkers, kaydedilen PDF'te hâlihazırda bir DPart hiyerarşisi yoksa artık PDF/VT DPart hiyerarşisini sentezliyor ve işaretçi nesnelerini sınırlı kaynak okumalarıyla ekliyor
Version 3.88.0
Eklendi (Added)
ReadPdfSparseCatalogSubDict, doğrudan ya da dolaylı bir katalog alt sözlüğünü seyrek nesne indeksi üzerinden okuyor; PDF/UA işaretçi enjeksiyonu bunuMarkInfoveViewerPreferencesiçin kullanıyor
Değiştirildi (Changed)
InjectPdfUaMarkersartık katalogMarkInfoveViewerPreferences'ini seyrek aramayla çözüyor ve PDF/UA revizyonunu normal xref yolunda sınırlı kaynak okumalarıyla ekliyor
Version 3.87.0
Eklendi (Added)
AppendPdfSparseUpdate, kaydedilmiş bir PDF'e tek bir seyrek revizyon akıtıyor: kaynak baytları aynen, çağıranın sağladığı nesne gövdeleri kaydedilmiş offsetlerde ve/Prevüzerinden zincirlenen tek bir artımlı xref/trailer bloğuNormalizePageViewRect, eşlenen iki sayfa uzayı köşesini sayfaya kırpılmış görünür dikdörtgene normalleştiriyor ya da sayfanın hiçbir kısmının görünür olmadığını raporluyor- PDF/E işaretçi enjeksiyonu, kaynak belgenin Info sözlüğü yoksa
/ISO_PDFEVersionile yeni bir Info nesnesi sentezliyor
Değiştirildi (Changed)
- PDF/E, PDF/X ve PDF/R işaretçi enjeksiyonu artık katalog, Info ve trailer'ı seyrek aramayla çözüyor ve revizyonları normal xref yolunda sınırlı kaynak okumalarıyla
AppendPdfSparseUpdateüzerinden ekliyor - Form doldurma
FFI_GetPageViewRectcallback'i artık her zaman tüm sayfa kutusu yerine, ekliTPdfViewiçinde gerçekten görünen sayfa kısmını raporluyor; headless belgeler için sayfa boyutlarına düşüyor TPdf.AboutInfo, Lazarus paket meta verisi ve kurulum meta verisi artık Version 3.87.0'ı tutarlı şekilde raporluyor
Düzeltildi (Fixed)
FPDFPath_GetBezierControlPointsbinding'i açıldığından beri yol segmenti kontrol noktaları hiç doldurulmuyordu: yerel export yalnızca her üç girişli kübün uç nokta indeksi için yanıt veriyor; sorgu artık eğri başına bir kez yapılıyor ve üç giriş de eğrinin kontrol noktalarını taşıyor
Version 3.86.0
Eklendi (Added)
ReadPdfSparseRevisionInfo, stream son işlemcileri için sınırlı son revizyon, katalog, şifreleme, belge kimliği ve etiketli yapı bilgilerini açıyorComposePdfSparseUpdateId, artımlı güncelleme belge tanımlayıcılarını tüm kaynak PDF'i somutlaştırmadan koruyor ya da türetiyor
Değiştirildi (Changed)
InjectPdfAMarkersartık katalog ve trailer'ı seyrek aramayla çözüyor, büyük girdileri sınırlı parçalar hâlinde kopyalıyor ve PDF/A revizyonunu normal xref yolunda kaynak boyutunda bir bayt dizisi ayırmadan ekliyor- PDF/A işaretçi enjeksiyonu, klasik ya da xref-stream çıktı stilini, katalog ve Info nesil sayılarını, trailer tanımlayıcılarını, şifreleme reddi davranışını ve Level A düşürme kurallarını koruyor
Version 3.85.0
Eklendi (Added)
SanitiseActiveContentPdfStream, özel sınırlı ya da disk destekli depolama için çağıranın sahibi olduğu bir prune çalışma alanı kabul ediyor
Değiştirildi (Changed)
- Aktif içerik temizliği artık normal xref yolunda PDF'in tamamını tek bir bayt dizisine okumak yerine, katalog ve trailer'ı seyrek arama, sınırlı parser pencereleri ve sabit boyutlu aralık kopyalamasıyla güncelliyor
TPdf.SaveAsSanitised,SaveMemoryLimitveSaveTemporaryDirectory'yi prune çalışma alanına uyguluyor ve taşma tanılarını raporluyor
Düzeltildi (Fixed)
StripMetadata=Trueartık katalogda/Metadatagirişi olmasa bile trailer/Inforeferansını kaldırıyor
Version 3.84.0
Değiştirildi (Changed)
TPdf.PdfVersionartık tüm kaynak PDF'i yeniden ayrıştırmak yerineFPDF_GetFileVersionüzerinden PDFium parser durumunu yeniden kullanıyor- Sürüm sorguları, bozuk bir katalog bildiriminin etkin sürümü düşürmesini önlemek için en fazla sekiz baytlık PDF başlığını okuyor
Version 3.83.0
Değiştirildi (Changed)
PageLabelledPdfStreamartık kataloğu sınırlı stream pencereleri ve seyrek lazy nesne indeksi üzerinden çözüyor ve güncelliyor- Sayfa etiketi çıktısı, normal xref yolunda tam bir belge bayt dizisi ayırmak yerine büyük kaynak PDF'leri sabit boyutlu aralıklarla kopyalıyor
Version 3.82.0
Değiştirildi (Changed)
ApplyDefaultOpenActionartık klasik, xref-stream, hibrit ve object-stream revizyonlarını seyrek lazy nesne indeksi üzerinden okuyor; çok yüksek nesne numaralı belgeler dahil- Varsayılan open-action işleme, PDF'in tamamını tek bir bayt dizisine yüklemek yerine sabit boyutlu pencereler ve sınırlı aralık kopyalaması kullanıyor
Version 3.81.0
Eklendi (Added)
PostProcessSavedPdf, özel bellek tavanları ve disk destekli işleme için çağıranın sahibi olduğu üç seekable çalışma alanı kabul ediyor
Değiştirildi (Changed)
TPdf.SaveAs,SaveMemoryLimitveSaveTemporaryDirectory'yi kaydedilen PDF son işleme çalışma alanlarının her birine uyguluyor ve taşmalarını tanılara ekliyor- Yerel artımlı xref-stream onarımı, dosyanın tamamını kapsayan bayt dizileri ve yinelenen tam dosya yeniden tahsisleri yerine sabit boyutlu kuyruk ve sözlük pencereleri ile sınırlı aralık kopyalaması kullanıyor
Version 3.80.0
Eklendi (Added)
ReadAttachmentMetadata, ek adlarını, açıklamalarını, MIME alt türlerini, çözülmüş boyutlarını ve okunabilirliklerini tek bir sınırlı yerel numaralandırmada yakalıyorExtractAttachmentsToStreams, bir toplu işlemi dosya başına ve toplam bayt sınırları, yapılandırılabilir yazma parçaları, iptal desteği ve öğe başına sonuçlarla çağıranın sahibi olduğu stream'lere yazıyor
Değiştirildi (Changed)
- Toplu çıkarma, batch'teki her payload'ı somutlaştırmak yerine PDFium Delphi Component belleğinde en fazla bir çözülmüş ek tutuyor
Version 3.79.0
Eklendi (Added)
TPdfCacheGovernor,TPdf.CacheBudgetBytes, tür başına kullanım sorguları ve telemetri, tutulan önbellek belleğini tek bir thread-safe global LRU bayt bütçesiyle koordine ediyorTPdfTileCacheile süreç genelindeki sistem yazı tipi önbelleği, tam bitmap ve yazı tipi baytı muhasebesiyle çağıranın seçtiği bir governor'a katılabiliyor
Değiştirildi (Changed)
- Ayrışan sayfa sahneleri, küçük resimler, yapı verisi, metin anlık görüntüleri ve sayfa nesnesi anlık görüntüleri artık mevcut giriş sayısı sınırları korunarak varsayılan 256 MiB
TPdfbütçesi altında rekabet ediyor - Etkin sayfa sahneleri render tamamlanana kadar sabitlenmiş kalıyor; opak yerel sayfa sahneleri, PDFium yapılandırılabilir bir toplam önbellek baytı API'si açığa çıkarmadığı için açıkça tahmin edilen bir yük kullanıyor
Version 3.78.0
Eklendi (Added)
TPdfLayoutPagedPlan,TPdfLayoutDocument.BuildPagedPlanveTPdf.GeneratePagedLayout, yerleşim komutlarını çağıranın seçtiği seekable depolamaya akıtıyor ve bir seferde bir sayfayı somutlaştırıyor
Değiştirildi (Changed)
- Büyük üretilmiş yerleşimler komutları geçici depolamaya taşıyabiliyor, yapılandırılabilir bir LRU sayfa önbelleği tutabiliyor, bitişik olmayan üst ve alt bilgi segmentlerini geri yükleyebiliyor ve her akış öğesinden sonra sarmalanmış metni serbest bırakabiliyor
Version 3.77.0
Eklendi (Added)
TPdfLayoutTable, satırlar, hücreler ve tablo seçenekleri; çözümlenmiş grid izleri, başlıklar, yinelenen başlık satırları, bölünebilir gövde satırları, bağlantılar ve yapılandırılabilir kenarlıklarla sayfalar arası tablolar ekliyor
Değiştirildi (Changed)
- Üretilen etiketli tablolar sayfalar boyunca tek bir kesintisiz Table / TR / TH / TD yapısını koruyor, satır kapsayan grupları atomik tutuyor ve veri hücrelerini başlık ID'leriyle otomatik ilişkilendiriyor
Version 3.76.0
Eklendi (Added)
TPdfLayoutConstraintsveSetLastItemConstraints, üretilen yerleşimlere keep-together, keep-with-next, fiziksel page-break-before / after ve yapılandırılabilir widow / orphan satır kontrolü ekliyor
Değiştirildi (Changed)
BuildPlan, sayfalandırma tahmini ve komut üretimi için her sarmalanmış metin sonucunu yeniden kullanıyor; keep-with-next'un metin ölçümünü yinelemesini önlüyor
Version 3.75.0
Eklendi (Added)
TPdf.InspectPdfUaUnicodeCoverage, doğrudan Unicode eşlemeleri,ActualTextdeğiştirmeleri, eşleme hataları, eksik Unicode değerleri ve çözülemeyen kaynak nesneleri için sınırlı nesne düzeyinde kanıt raporluyor
Değiştirildi (Changed)
TPdf.ValidatePdfUaartık Artifact ve üretilmiş karakterleri dışlayan ve bir metin nesnesininActualText'inin bitişik içeriği maskelemesini önleyen tek bir nesne kapsamlı karakter taramasını yeniden kullanıyor
Version 3.74.0
Değiştirildi (Changed)
ValidatePdfUaPageContentTaggingileTPdf.ValidatePdfUa, bir Artifact sayfa nesnesi yapı ağacı MCID'si tarafından talep edildiğinde artıkpvuaiArtifactInStructureTreeraporluyor; yol tabanlı sayfalandırma artifact'ları dahil- PDF/UA sayfa içeriği taraması artık yalnızca hem etiketsiz gerçek içerik hem de geçersiz Artifact kapsaması saptandıktan sonra kısa devre yapıyor; tamamlanan kontrolleri yinelemeden sayfalar arası kapsamı koruyor
Version 3.73.0
Eklendi (Added)
TPdf.InspectPdfUaLanguageCoverage, doğal dil aralıkları için sınırlı sayfa nesnesi ve yapı dizesi kanıtı raporluyor; etkin dil, bildirim kaynağı, MCID, yapı indeksi ve metin alıntıları dahilResolvePdfUaEffectiveLanguage, marked-content, en yakın yapı atası ve katalog dil bildirimlerini açık geçerlilik kanıtıyla çözüyor
Değiştirildi (Changed)
TPdf.ValidatePdfUa, artifact olmayan metin ya da erişilebilirlik dizelerinin geçerli bir etkin/Langbildirimi olmadığı durumlarda artıkpvuaiNaturalLanguageUncoveredraporluyor
Version 3.72.0
Eklendi (Added)
TPdf.InspectPdfAMetadata, sekiz ISO 19005-1 Info-to-XMP eşlemesinin tamamı için tipli alan başına denklik kanıtı raporluyor; açık boş değerler ve tarih ayrıştırma başarısızlıkları dahilTPdf.NormalizePdfAMetadatayalnızca eşleşmeyen eşlenmiş XMP özelliklerini onarıyor; ilgisiz ad alanlarını ve varsayılan olmayan dil alternatiflerini koruyor
Değiştirildi (Changed)
TPdf.ValidatePdfA, PDFium'un çözdüğü Info değerleri, Unicode ya da saat dilimi duyarlı tarih karşılaştırmasından sonra doğru tipli XMP değerlerinden farklıysa artıkpvaiInfoXmpValueMismatchraporluyor
Version 3.71.0
Eklendi (Added)
InspectPdfVT2sStream, her PDF/VT MIME parçası için baskı koşulu kanıtı döndürüyor; OutputIntent kimliği, gömülü ya da MIME profil kökeni, ICC hash'leri ve başlık bilgileri ile DPart sayfa ve kayıt sayıları dahilFPdfIccProfile, MD5, SHA-256, renk uzayı, sürüm, device-class, profile-ID ve çok dilli profile-description desteğiyle sınırlı ICC başlık ve tag tablosu incelemesi sunuyor
Değiştirildi (Changed)
- PDF/VT-2s doğrulaması artık önceki ICC MIME eklerini
DestOutputProfileRefURL dosya belirtimleri üzerinden çözüyor veCheckSum,ICCVersion,ProfileCS,ProfileName, device class ile izin verilen process renk uzaylarını doğruluyor - Tüm PDF/VT parçaları artık tek bir yetkili
GTS_PDFXOutputIntent, PDF/X tabanına uygun gömülü ya da harici profil paketleme ve aynı karakterize baskı koşulu gerektiriyor; yalnızca PDF/X olan ekler PDF/VT karşılaştırmalarının dışında kalıyor - Tek dosyalık PDF/VT-2 doğrulaması artık
DestOutputProfileRef'i eksik raporlamak yerine harici bir hedef profil olarak tanıyor
Version 3.70.0
Değiştirildi (Changed)
- PDF/VT doğrulaması artık yakın ya da iç içe sözlüklerin ipucu gereksinimlerini karşılamasına izin vermek yerine,
GTS_Scope,GTS_XID,GTS_EnvveGTS_Encapsulateddeğerlerini her XObject üzerinde doğrudan kontrol ediyor RecordkapsamıRecordLevel'i artık dolaylıDPartRootsözlüğünden çözüyor;Streamkapsamı ise PDF/VT-1 dosyalarında reddediliyor- Çözülmüş sayfa ve Form XObject içerik stream'leri artık
Dokaynak görünürlüğünü,SingleUsegeçiş sayılarını ve alıcı-kayıt sahipliğini etkin kalıtsal kaynaklar ve DPart hiyerarşisi üzerinden doğruluyor - Kapsüllenmiş XObject'ler artık boolean şekli, önerilen kapsamı, Image
Intent, izole şeffaflık gruplarını, karıştırma renk uzaylarını ve doğrudan ya da iç içe optional-content bağımlılıklarını doğruluyor
Version 3.69.0
Değiştirildi (Changed)
- PAdES doğrulaması artık parser'ın seçtiği değeri kabul etmek yerine yinelenen
Contents,ByteRange,SubFilter,FilterveTypegirişlerini reddediyor - İmza keşfi artık stream duyarlı doğrusal bir sözlük taraması kullanıyor, kaçış karakterli PDF name token'larını tanıyor ve gerçek
ByteRange'den önce konmuş kapanmış bir iç içe sözlük tarafından yönlendirilemiyor - İmza
ByteRangedoğrulaması artık hariç tutulan boşluğun doğrudan onaltılıkContentstoken'ıyla birebir eşleşmesini gerektiriyor; sonraki artımlı revizyonlara hâlâ izin veriyor - İmza sözlükleri artık tek bir name değerli
Filtergerektiriyor ve tutarlıSigya daDocTimeStamptip ve subfilter kombinasyonlarını zorunlu kılıyor
Version 3.68.0
Eklendi (Added)
TPdf.BuildPadesEvidenceReport, her imza için PDFium imza bilgilerini, CMS ilkesini, güven ve zaman damgası durumunu, sertifika yolu hash'lerini, DSS/VRI kapsamını ve sonraki revizyon kararlarını ilişkilendiriyorTPadesEvidenceReport, sınırlı çoklu imza kanıtını JSON ya da CSV olarak dışa aktarıyor ve kaynak, imza, DSS, revizyon ve kırpılma telemetrisini raporluyor
Değiştirildi (Changed)
- PAdES güven doğrulaması artık imzalayıcı sertifikası ve sıralı Windows sertifika yolu için SHA-256 kimlikleri kaydediyor; varsayılan çevrimdışı doğrulamayı koruyor
- Kanıt üretimi, orijinal PDF'i her aşama için yeni bir stream'e kopyalamak yerine elde tutulan tek bir kaynak bayt yakalamasını uyumluluk, güven, DSS ve revizyon analizlerinde yeniden kullanıyor
Version 3.67.0
Eklendi (Added)
TPadesSignatureFieldOptions, yapılandırılabilir imza alanı adları, zorunlu seed değerleri, gerekçe ve hukuki teyit listeleri, kabul edilebilir imzalayıcı sertifikaları ve alan kilitleri oluşturuyor- Yerel ve uzak imzalama, ISO 32000-1
FieldMDPveDocMDPdönüşümleriyle onay ya da sertifikasyon imzaları üretebiliyor
Değiştirildi (Changed)
- Sertifikasyon imzaları, yeni imzayı
/Perms /DocMDPüzerinden kaydederken mevcut katalog izlerini koruyor
Version 3.66.0
Eklendi (Added)
RenderPageBandedToStream, PNG ya da TIFF çıktısını yapılandırılabilir bant yüksekliği, PNG sıkıştırma ve çıktı bayt sınırlarıyla doğrudan bir çağıran stream'ine yazıyorRenderPageBandedToEncoder, ardışık sayfa bantlarını çağıranın tanımladığı codec'lere iletiyor ve bant, satır, bellek, tamamlanma ve çıktı telemetrisini döndürüyor
Düzeltildi (Fixed)
RenderPageBandedartık tam sayfa render geometrisini koruyor ve her istenen bandı kırparak sınırlıyor; tam sayfayı her banda yeniden ölçeklemek yerine
Version 3.65.0
Eklendi (Added)
TPdfParallelRenderReportartık kaynak boyutunu, en yüksek yakalanan belleği, depolama arka ucunu ve paylaşılan destek türünü raporluyor
Değiştirildi (Changed)
RenderPagesParallel, yakalanan kaynağı değişmez bellek, salt okunur bir dosya eşlemesi ya daFPDF_LoadCustomDocumentrastgele erişimi üzerinden paylaşıyor; ikinci bir tam belge bayt dizisi ayırmak yerine- Taşan paralel render kaynakları
SaveMemoryLimitaltında kalıyor ve PDF'in tamamının adreslenebilir süreç belleğine yeniden yüklenmesini artık gerektirmiyor
Version 3.64.0
Eklendi (Added)
ImportImposedartık yerel içe aktarma, benzersiz kaynak, boş slot, XObject şablonu, form nesnesi, içerik üretimi ve çıktı sayfa sayılarıylaTPdfImpositionExecutionReportdöndüren bir overload'a sahip
Değiştirildi (Changed)
- Sıfır geometrili yerleşim, boş ekleme ve yerel N-up bileşiminden önce sıralı her kaynak sayfayı tek bir
FPDF_ImportPagesByIndexçağrısından geçiriyor - Özel geometrili yerleşim, benzersiz her kaynak sayfa için tek bir yerel XObject şablonunu yeniden kullanıyor, önbelleğe alınmış sayfa metriklerini kaynak sayfayı değiştirmeden okuyor ve kesin plan depolamasını önceden ayırıyor
Version 3.63.0
Eklendi (Added)
BeginPageObjectEditTransaction,CommitPageObjectEditTransactionveRollbackPageObjectEditTransaction, yerel sayfa nesnesi mutasyonlarını doğrulanmış anlık görüntü geri almasıyla atomik, sayfa kapsamlı bir batch'te grupluyorPageObjectEditTransactionStatus, bağlı sayfayı, kirli durumu, başarılı mutasyon sayısını ve içerik üretimi sayısını raporluyor
Değiştirildi (Changed)
- Onaylanan nesne batch'leri artık her ekleme, kaldırma, dönüştürme, özellik, mark, annotation-object ya da appearance mutasyonu başına bir kez yerine
FPDFPage_GenerateContent'i tek bir kez çağırıyor - Kaydetme, sayfa değişimleri, sayfa silme, iç içe düzenleme işlemleri ve başarısız yerel ekleme ya da annotation güncellemeleri, ertelenen içerik kaybolmadan önce reddediliyor
Version 3.62.0
Eklendi (Added)
ReadPageObjectsSnapshot, çağıranın sahibi olduğu sayfa nesnesi bilgilerini nesne, yol, clip, mark, metin, dize ve son tarih bütçeleriyle yakalıyorPageObjectsSnapshot, yapılandırılabilir kapasite ile doluluk, isabet ve ıskalama telemetrisiyle revizyon duyarlı LRU yeniden kullanımı sağlıyor
Değiştirildi (Changed)
PageComplexityartık yerel nesne numaralandırmasını, saydamlık, yol ve görüntü sorgularını yinelemek yerine değişmez sayfa nesnesi anlık görüntüsünü yeniden kullanıyor
Version 3.61.0
Eklendi (Added)
TPdfartık gömülü ve render edilmiş ön izlemeler için yapılandırılabilir giriş ve bayt tavanları ile isabet, ıskalama, tahliye, doluluk ve revizyon telemetrisiyle birleşik bir küçük resim LRU'su açıyorRenderPageThumbnail, çağıranın sahibi olduğu bitmap sözleşmesini korurken döndürme, render seçenekleri, arka plan rengi veTPdfColorSchemekabul ediyor
Değiştirildi (Changed)
- Yinelenen küçük resim çıkarma ve render, revizyon, sayfa, kaynak, boyut, döndürme, bayraklar, arka plan ve renk şeması anahtarları üzerinden yerel PDFium sonuçlarını yeniden kullanıyor; isteğe bağlı gömülü küçük resimlerin önbelleğe alınmış yokluğu dahil
TPdfThumbnailView, görünür sayfa bitmap önbelleğini belge küçük resim revizyonlarıyla eşitliyor; böylece düzenlemeler bayat ön izlemeler bırakamıyor
Version 3.60.0
Eklendi (Added)
ReadTextPageSnapshot, Unicode'yu, UTF-16 eşlemelerini, karakter geometrisi ve stilini ve normalleştirilmiş metin nesnesi meta verisini tek geçişte yakalıyor; açık karakter, nesne, yazı tipi adı ve son tarih bütçeleriyleTextPageSnapshot, kapasite, sayı, isabet ve ıskalama telemetrisiyle yapılandırılabilir revizyon duyarlı bir LRU üzerinden derin, çağıran sahipli kopyalar sağlıyor
Değiştirildi (Changed)
GetStructuredTextile fiziksel yerleşimGetTextInReadingOrderartık aynı metin anlık görüntüsünü yeniden kullanıyor ve O(n log n) geometri sıralaması uyguluyor
Düzeltildi (Fixed)
- Küçük metin ve yapı anlık görüntü önbellekleri artık yeni veriyi istenen sayfa indeksi altında saklarken en eski sayfayı tahliye ediyor; sayfalar arası önbellek çakışmasını önlüyor
Version 3.59.0
Eklendi (Added)
LifecycleActionPolicy, PDF belge ve sayfa lifecycle eylemlerinin devre dışı, yalnızca açık olan ya da uyumlu otomatik yürütülmesini seçiyorExecuteDocumentLifecycleActionbelge JavaScript, open, close, save ve print eylemlerini açıyor;ExecutePageLifecycleActionisePageNumber'ı değiştirmeden sayfa open ve close eylemlerini çalıştırıyor
Değiştirildi (Changed)
- Headless sayfa yüklemeleri artık görüntüleyici güdümlü yüklemelerle aynı otomatik sayfa open ve close eylemlerini alıyor; geçici sayfalar render kilidi altında yeniden kullanılıyor ya da serbest bırakılıyor
Version 3.58.0
Eklendi (Added)
ReadStructureElementsileVisitStructureElements, açık derinlik, öğe, öznitelik ve süre bütçeleri ile ayrıntılı tamamlanma durumuyla yinelemeli etiketli yapı geçişi sağlıyorStructureElementsForPage,PageNumber'ı değiştirmeden birden başlayan sayfa anlık görüntülerini açıyor; isabet, ıskalama ve sayım telemetrisiyle yapılandırılabilir, revizyon duyarlı bir LRU önbelleği destekli
Değiştirildi (Changed)
- Erişilebilirlik, reflow, doğrulama ve görüntüleyici tüketicileri artık ilgili bir belge ya da sayfa düzenlemesi geçersiz kılana dek çağıran sahipli yapı anlık görüntülerini yeniden kullanıyor
Version 3.57.0
Eklendi (Added)
- Tamamlanmış yerel form-host callback'leri artık ömür güvenli lazy sayfa tanıtıcıları, etkileşim görünümü imleç yönlendirmesi, değer değişimi bildirimi, seçili metin dikdörtgenleri, URI olayları ve GoTo hedef olayları sağlıyor
FormHostCallbacksCompletecallback hazırlığını raporlarken,FormSelectionRectsileClearFormSelectionRectssınırlı sayfa uzayı seçim geometrisini açıyor
Düzeltildi (Fixed)
- XFA geçerli sayfa callback'leri artık PDFium'un sıfır tabanlı sayfa indeksleriyle bileşenin birden başlayan
PageNumber'ı arasında doğru çeviri yapıyor - AcroForm ve XFA URI callback'leri artık ham URI baytlarını koruyor ve herhangi bir dış başlatma öncesinde açık ana makine onayı gerektiriyor
Version 3.56.0
Eklendi (Added)
- İndeksli
PageMetricsanlık görüntüleri, etkin sayfayı değiştirmeden bir sayfanın boyutlarını, döndürmesini, etiketini, saydamlığını ve beş standart sayfa kutusunu açıyor
Değiştirildi (Changed)
- Yinelenen sayfa meta verisi okumaları, otomatik geçersiz kılınan bir yerel anlık görüntü önbelleğini yeniden kullanıyor; thumbnail, preflight ve belge analizi iş yüklerinde sayfa açılışlarını azaltıyor
Version 3.55.0
Eklendi (Added)
- Yol incelemesi, yüklenen PDFium derlemesi
FPDFPath_GetBezierControlPointssağladığında tam kübik Bézier kontrol noktalarını açıyor; eski DLL'ler için isteğe bağlı bir yetenek sorgusuyla FormFieldTypeAtPoint,TPdfView.FormFieldTypeAtve indeksliFontFlagsözellikleri, ham tanıtıcılar olmadan yerel form ve yazı tipi bilgilerini açıyorTPdf.Signatures, tüm yerel imza içeriklerini, ByteRange'leri, subfilter'ları, gerekçeleri, zamanları ve izinleri tek bir çağıran sahipli anlık görüntüde döndürüyor
Değiştirildi (Changed)
- Form alanı varlık kontrolleri artık annotation tanıtıcılarını açıp kapatmak yerine doğrudan yerel nokta hit testi kullanıyor
Düzeltildi (Fixed)
- PDF/E-1 doğrulaması artık sıradan AcroForm alanlarına, gömülü dosyalara ve FileAttachment annotation'larına izin verirken üst düzey AcroForm
/XFAve/NeedAppearances truedeğerlerini tam olarak raporluyor; dolaylı ve object-stream değerleri dahil
Version 3.54.0
Eklendi (Added)
FPdfProduction; ölçülen çok codec'li görüntü seçimi, renk ve yazı tipi işleme arka uçları, SVG yolları, biçimli değiştirme planları, işlemsel XFA paket güncellemeleri, barkod vektörleri, Portfolio modelleri ve güvenli RichMedia çıkarma eklerFPdfStandardsExecution; ölçüm ve GeoPDF dönüştürme, işlemsel PDF/A onarımı, PDF/UA-2 planları, dış çok renkli profiller, geçmiş DSS ve VRI kanıtları, DPart sorguları, derin PDF/E bilgileri ve sabit bellekli PDF/R şeritleri eklerTPdf.ImportImposed, tam oluk, taşma ve kayma geometrisiyle sınırlı N-up ve kitapçık planlarını yerel N-up ya da sayfa-XObject yolları üzerinden oluşturur;TPdf.CompareWithise anlamsal, geometrik ve hoşgörülü piksel farklarını raporlar- PAdES imzalama artık takılabilir yol doğrulayıcılarını ve HSM sağlayıcılarını, imzaya ekli PDF MAC,
cms-algorithm-protectionve çevrimdışı imza ilkesi belgelerini destekliyor
Değiştirildi (Changed)
- Yerleşim motoru sınırlı HTML ve Markdown kabul ediyor, sütunlar arasında akıyor ve sabit, otomatik ile kesirli ızgara izlerini çözüyor
- XFDF gidiş dönüşleri artık çok değerli ve zengin metin alanlarını, açılır pencereleri, eylemleri, hedefleri, görünüm katmanlarını, özel ad alanlarını ve açık varlık durumunu koruyor
Version 3.53.0
Eklendi (Added)
ConfigurePdfLibrary, ilk PDFium yüklemesinden önce değiştirilemez yerel işleyici, yazı tipi, V8, Brotli, kullanıcı yazı tipi yolu ve korumalı alan yapılandırması sağlar- Yerel yapı öznitelikleri, açıklama ilişkileri, açıklama dosya ekleri, tipli sözlük değerleri, odak ilkeleri, bağlantı ve form z sırası sorguları ile varsayılan TTF eşleme tanılamaları sınırlı üst düzey API'ler üzerinden kullanılabilir
TPdfView.ReplaceFormTextAndKeepSelectionyinelenen düzenlemeler arasında etkin seçimi koruyor ve sağ tuş bırakma olayları artık yerel form motoruna ulaşıyor
Değiştirildi (Changed)
- Belirleyici belge zamanı artık sabit dönem yanı sıra kararlı bir UTC takvim dönüşümü kullanıyor ve her ana makine saat diliminde aynı üst veriyi üretiyor
- Ek dize yazımları yerel sonucu doğruluyor ve sözlük anahtarlarını UTF-8 olarak kodluyor
Version 3.52.0
Eklendi (Added)
TPdf.GetImageObjectRenderedBitmap, bir görüntü nesnesinin işlenmiş sonucunu geçerli matrisi, renk alanı, maskeleri ve işleme durumu uygulanmış şekilde döndürürTPdf.TextObjectGlyphWidth,TPdf.TextObjectFontSizeveTPdf.SetTextObjectFontSize, yerel glif ölçümünü ve tam metin nesnesi yazı tipi boyutu düzenlemesini sunarTPdf.TransformPageObjectClipPath,TPdf.DetachFormObjectChild,TPdf.SharePageObjectMarkveTPdf.IsAnnotationObjectSubtypeSupported, hassas içerik nesnesi düzenleme ve yetenek incelemesi ekler
Version 3.51.0
Düzeltildi (Fixed)
- Daha önceki sürüm notlarında duyurulan sekiz
TPdfüyesi private bölümünde bildirilmişti vePDFiumbirimi dışından çağrılamıyordu; bunlar artık belgelendiği gibi public durumda:LinkAtPoint,GetTextRenderMode,GetTextObjectRenderedBitmap,IsAnnotationSubtypeSupported,ChooseRenderFlags,AttachmentHasKey,GetAttachmentStringValueveSetAttachmentStringValue
Değiştirildi (Changed)
- İngilizce başvuru belgeleri artık
TPdfveTPdfViewöğelerinin her genel üyesini kapsıyor: başvuru sayfası olmayan 88 üyeye sayfa eklendi ve sınıf sayfaları, gezinme dizini ile API başvurusu bunların tümünü listeliyor - Daha önce paylaşılan bir sayfaya işaret eden başvuru sayfaları artık üyenin kendi sayfasına bağlanıyor; böylece bir arama sonucu, aranan API'nin açıklamasını açıyor
- API başvurusu, genel imzalardan erişilebilen sabit listelerini ve kayıtları belgeliyor; yükleme ve akış raporlama, metin, yazı tipi ve OCR türleri, yerleşim oluşturucu türleri, PAdES doğrulama türleri, toplu iş ve doğrulama türleri ile paralel render türleri dahil
Version 3.50.0
Eklendi (Added)
- Her GUI demosu artık boş bir form yerine kullanıma hazır içerikle açılıyor: görüntüleyici ve laboratuvar demoları oluşturulmuş bir örnek belge yüklüyor, rapor demoları başlangıçta tamamlanmış bir rapor üretiyor ve işlemci demoları ana eylemin tek tıklamayla çalışması için örnek girdileri önceden üretiyor
MultiPageViewer,SplitViewveFontPropertiesbaşlangıçta bellek içinde örnek belgeler üretiyor (altı sayfalık bir tanıtım, yan yana iki karşılaştırma belgesi ve tıklayarak incelenecek çok yazı tipli bir sayfa)MergePDF,BatchExport,SplitPDF,ExtractText,PDFtoJpg,PrintPDFvePrintPreferencesgibi işlemci demoları, çalıştırılabilir dosyanın yanında örnek PDF'leri önceden üretiyor ve girdi denetimlerini önceden dolduruyor; mevcut dosyaların üzerine asla yazmayan eşkuvvetli yeniden üretimleFormFillveExtractImages, demo klasörlerinde gelen örnek dosyaları otomatik yüklüyor;ImageToPDFiki örnek bit eşlem üretiyor,WatermarkStampdamga örneklerini önceden oluşturuyor veXfdfLab, metin ve vurgu ek açıklamaları taşıyan oluşturulmuş bir belgeyle açılıyor
Değiştirildi (Changed)
CreatePDFartık başlangıçta iletişim kutusu göstermeden çalıştırılabilir dosyanın yanındaSample.pdfdosyasını üretiyor; böylece belge, demosu açılır açılmaz var oluyorTPdf.AboutInfove yükleyici meta verileri artık Version 3.50.0'ı tutarlı şekilde rapor ediyor
Version 3.49.0
Eklendi (Added)
- Güncellenmiş PDFium ikili dosyalarındaki
FORM_GetTextDirectionveFORM_SetTextDirectionartık bağlanmış durumda; dinamik bağlama katmanı tüm 472 PDFium dışa aktarımını eksiksiz kapsamayı sürdürüyor TPdf.FocusedFormFieldTextDirectionveTPdf.SetFocusedFormFieldTextDirection, odaklı widget'ın bellek içi metin yönünü yeniTPdfFormTextDirectionsabit listesi (ftdUnknown,ftdAuto,ftdLTR,ftdRTL) aracılığıyla açığa çıkarıyor; yön değişikliğinden sonra sayfa sahnesini yeniden boyayanTPdfViewkarşılıklarıyla birlikte
Değiştirildi (Changed)
FPDF_LIBRARY_CONFIGartık,PDF_ENABLE_BROTLIile derlenen ikili dosyalar için deneyselm_BrotliEnabledalanıyla birlikte PDFium'un version 6 düzenini yansıtıyorTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.49.0'ı tutarlı şekilde rapor ediyor
Version 3.48.0
Eklendi (Added)
PDFViewerdemosu artık başlangıçta oluşturma API'sini kullanarak bellek içinde altı sayfalık bir tanıtım belgesi üretiyor; böylece görüntüleyici görüntülenmiş içerikle açılıyor ve diskte örnek dosya bulunmuyorTPdfThumbnailViewüzerine kurulu bir küçük resim paneli, yer imi ağacının yanında tıklamayla gezinme sunan sayfa önizlemelerini her üç demo sürümünde de sağlıyor- Görüntüleyici araması artık tek bir sonuç dikdörtgeni yerine
HighlightSearchTextaracılığıyla geçerli sayfadaki her eşleşmeyi vurguluyor ve eşleşme sayısını durum çubuğunda bildiriyor - Tek tıklamayla çalışan
Nightve2-Uparaç çubuğu düğmeleri, gece duotone render modunu ve iki sayfalık yayılım görüntüleme modunu açıp kapatıyor
Değiştirildi (Changed)
- Görüntüleyicideki metin seçimi artık elle yazılmış seçim kodunun yerini alan; çift tıklamayla kelime seçimi, sürükleyerek seçme ve pano kısayolları sunan yerleşik
TPdfViewseçim motorunu kullanıyor - Sayfalar, modern bir okuma deneyimi için gölge efekti ve akıcı kaydırma ile render ediliyor
TPdf.AboutInfove yükleyici meta verileri artık Version 3.48.0'ı tutarlı şekilde rapor ediyor
Version 3.47.0
Eklendi (Added)
FPdfBenchmark, sınırlı PDF derlemlerini yapılandırılabilir ısınma ve ölçüm geçişleri, sayfa ve piksel sınırları, işbirlikçi iptal ve durum başına geçti, kaldı veya atlandı bilgisiyle çalıştırırTPdfBenchmarkReport, girdi ve kaydedilen bayt boyutlarını, yükleme ve ilk sayfa gecikmesini, render verimini, kaydetme ve yeniden açma zamanlamasını, örneklenmiş tepe çalışma kümesini, semantik ve piksel SHA-256 özetlerini, tekrarlı çalıştırma kararlılığını, beklenen özet eşiklerini ve bağımsız yeniden açma eşdeğerliğini kaydeder- Kıyaslama raporları, CI, sürüm nitelendirme ve uzun dönemli performans izleme için formül güvenli CSV ve yapılandırılmış JSON olarak dışa aktarılır
GetSkiaRenderCapabilities,RenderPageSkiaveRenderPageSkiaByIndex, ayrıştırılmış sayfa önbelleğini yeniden kullanarak ve katı bir DLL dışa aktarım gereksinimi olmadan isteğe bağlı yerel Skia sayfa ve form render işlemini açığa çıkarır- Sürümlü ve yetenek geçitli bir baskı çıktısı ABI'si, yüklenen PDFium modülü sağladığında kesin spot levha numaralandırmasını, levha render işlemini, üst üste baskı algılamayı ve üst üste baskı önizlemesini açığa çıkarır
Düzeltildi (Fixed)
PDF_USE_SKIAiçermeyen PDFium yapıları artık deneysel Skia dışa aktarımlarının yokluğu nedeniyle başarısız olmak yerine normal şekilde yükleniyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.47.0'ı tutarlı şekilde rapor ediyor
Version 3.46.0
Eklendi (Added)
ValidatePdfRartık yapılandırılabilir doğrulama seçenekleri aracılığıyla yalnızca raster sayfa içeriğini, şerit geometrisini, renk modellerini, etkin çözünürlüğü, sıkıştırma parametrelerini, gerekli meta verileri ve şifreli PDF 2.0 profillerini denetliyorBuildPdfARepairPlan, doğrulama kanıtlarını güvenlik sınıfları, imza etkisi korumaları ve JSON çıktısıyla bağımlılık sırasına dizilmiş düzeltme adımlarına dönüştürürBuildPdfXProductionPreflight, görüntü yüklerini çözmeden sayfa kutularını, gömülü yazı tiplerini, output intent'leri, renk bileşenlerini, saydamlığı, üst üste baskıyı, ayrımları, görüntü çözünürlüğünü ve üretim hazırlığını raporlar- PDF/UA-2 yapı doğrulaması artık ilişkili dosya sahipliğini, okuma sırasını, açıklamaları, ilişkileri ve keşfedilebilirliği denetliyor
Değiştirildi (Changed)
TAssociateFile.Description,TPdf.ImageInfoveTPdf.PageComplexity, ilişkili dosya ve üretim ön uçuş iş akışlarının gerektirdiği meta verileri açığa çıkarırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.46.0'ı tutarlı şekilde rapor ediyor
Version 3.45.0
Eklendi (Added)
TPdfXmpPacket, bilinmeyen ad alanları, türü belirlenmiş RDF kapsayıcıları, URI ve kaynak değerleri, niteleyiciler, dil alternatifleri, paket sarmalayıcıları ve korunmuş dolgularla ad alanı farkındalıklı XMP'i ayrıştırır, düzenler, klonlar ve serileştirirTPdf.ReadXmpPacketveSaveAsWithXmpPacket, üst düzey meta veri okuma ve atomik çıktı sağlar; imzalı belge değişiklikleri açık yetkilendirme gerektirir
Güvenlik (Security)
- Sınırlı XML okuyucusu DTD'leri ve dış varlıkları reddeder; paket baytlarını, iç içe yerleşim derinliğini, düğüm sayısını, öznitelikleri ve sayısal karakter referanslarını sınırlar
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.45.0'ı tutarlı şekilde rapor ediyor
Version 3.44.0
Eklendi (Added)
TPdfValidationRuleRegistry, profil maddelerini önem derecesi, bağımlılıklar, onarım rehberliği, kanıtlar ve yerleşik ya da özel koşul yordamlarıyla kaydederTPdfValidationBudgetveTPdfValidationExecutionContext; kural sayısını, hataları, nesneleri, özyinelemeyi, UTF-8 kanıtlarını, ayrılmış belleği, geçen süreyi, hızlı başarısızlığı ve işbirlikçi iptali sınırlarValidatePdfFilesParallel, dosyaları yalıtılmış çalışan belgeler aracılığıyla doğrular; girdi sırasını korur ve sorun dağılımlarını, zamanlamaları, hataları, iptalleri ve yükleme hatalarını birleştirir
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.44.0'ı tutarlı şekilde rapor ediyor
Version 3.43.0
Eklendi (Added)
TPdfStructureElementartık PDF/UA-2 anlamsal doğrulaması için ad alanı, ad alanı rol eşlemesi, referans, ilişkili dosya, ek açıklama, widget, etiket ve görünüm bilgilerini taşıyorValidatePdfUa2StructureElementsve odaklanmış doğrulayıcıları,pdfium.dllyüklemeden ISO/TS 32005 ad alanlarını ve kapsamayı, sınırlı tablo ızgaralarını, ek açıklamaları, formları, Formula/MathML ilişkilerini, ilişkili dosyaları, belge köklerini, FENote, listeleri, TOC referanslarını, başlıkları ve başlık yazılarını denetlerClassifyPdfUaNamespace; PDF 1.7, PDF 2.0, MathML, ARIA, DPUB, özel ve eksik yapı ad alanlarını tanımlarPdfUa2StructureHasIssue, değer olarak Pascal kümesi döndürmeden C++Builder uyumlu tek sorun sorgusu sağlar
Değiştirildi (Changed)
ValidatePdfUaStructureElements, PDF/UA-1 kural yolunu korurkenpuc2için yeni anlamsal kural kümesini otomatik olarak uygularTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.43.0'ı tutarlı şekilde rapor ediyor
Version 3.42.0
Eklendi (Added)
TPdfUaSaveOptions.PdfUa2,pdfuaid:part2,pdfuaid:rev2024 ve etkin PDF 2.0 katalog sürümüyle PDF/UA-2 çıktısı oluştururValidatePdfUa,puc2değerini algılar ve eksik sürüm meta verilerini, PDF 2.0 olmayan dosyaları, adsız isteğe bağlı içerik yapılandırmalarını, kullanımdan kaldırılmış ek açıklamaları ve genel H başlıklarını raporlar
Değiştirildi (Changed)
- PDF/UA doğrulaması artık PDF/UA-1 ve PDF/UA-2 için profile özgü sekme sırası, XFA ve başlık kurallarını seçiyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.42.0'ı tutarlı şekilde rapor ediyor
Version 3.41.0
Eklendi (Added)
SetPageObjectMarkParam, mevcut bir işaretli içerik girdisine tam sayı, gerçek sayı, dize veya blob türünde tek bir parametre ekler veya mevcut olanı değiştirir; işaretin kendisini değiştirmezRemovePageObjectMarkParam, işaret adını ve ilgisi olmayan tüm özellikleri korurken seçili tek bir özelliği kaldırır
Değiştirildi (Changed)
- Tam sayı olmayan işaretli içerik sayıları artık tam sayı anlık görüntülerine kesilmek yerine
pmpFloatolarak gidiş dönüş yapıyor AddPageObjectMarksırasında parametre doğrulaması başarısız olursa kısmen oluşturulmuş yerel işaret kaldırılıyorTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.41.0'ı tutarlı şekilde rapor ediyor
Version 3.40.0
Eklendi (Added)
ConfigureSystemFontProvider, PDFium başlamadan önce bir uygulama yazı tipi eşleyicisi kurar ve eksik ya da yerine geçilen belge yazı tipleri için doğrulanmış TrueType veya OpenType baytları sağlarTPdfSystemFontPolicy, yüz değişimini, yerel geri dönüşü, yazı tipi başına bayt sınırlarını ve sınırlı istek önbelleğe almayı denetlerGetSystemFontProviderStatistics; eşleme, önbellek, geri dönüş, reddetme, veri tablosu ve etkin tanıtıcı etkinliklerini raporlar
Değiştirildi (Changed)
- Sağlayıcı callback'leri, callback hatalarını yerel sınır içinde tutarken PDFium'un istediği yazı yüzünü, kalınlığı, stili, karakter kümesini ve aralığı açığa çıkarır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.40.0'ı tutarlı şekilde rapor ediyor
Version 3.39.0
Eklendi (Added)
AddCidType2Text, glif başına açık CID-GID geometrisi ve CID-Unicode eşlemeleriyle çağıranın sağladığı TrueType verisini gömerTPdfCidFontOptions; tam gömmeyi, geri dönüşle birlikte tercih edilen alt kümelemeyi veya zorunlu alt kümelemeyi seçer ve sınırlı yazı tipi, glif ve Unicode bütçelerini yapılandırırTPdfCidFontReport; alt küme kararlarını, bayt boyutlarını, benzersiz glifleri, gömme durumunu, beklenen metni, çıkarılan metni ve çıkarma bütünlüğünü raporlar
Değiştirildi (Changed)
- TrueType alt kümeleme istenen glif tanımlayıcılarını korur, güvenli olmayan çıktıyı reddeder ve eşleme veya çıkarma doğrulaması başarısız olursa eklenen tüm sayfa nesnelerini geri alır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.39.0'ı tutarlı şekilde rapor ediyor
Version 3.38.0
Eklendi (Added)
BuildReflowDocument, seçili bir sayfa aralığında Tagged PDF yapısından veya fiziksel düzen çıkarımından sınırlı ve yeniden kullanılabilir bir anlamsal düğüm ağacı oluştururTPdfReflowDocument.ToHtml, kaçışlanmış duyarlı başlıkları, paragrafları, listeleri, şekilleri, başlık yazılarını, sayfa bölümlerini ve başlık ile kapsam semantiğine sahip tabloları üretirTPdfReflowOptions; tablo algılamayı, sayfa bölümlerini, geometriyi, CSS'i, satır sonlarını, sayfa aralığını, iptali ve kaynak bütçelerini denetler
Değiştirildi (Changed)
- Yeniden akış sırasında tablo içeriği çakışan paragraf bloklarının yerine geçer ve başarı, hata veya iptalin ardından etkin sayfa durumu geri yüklenir
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.38.0'ı tutarlı şekilde rapor ediyor
Version 3.37.0
Eklendi (Added)
ApplyOcrSearchLayer, seçili sayfaları PDFium üzerinden render eder ve sınırlı, yukarıdan aşağıya BGRA piksellerini çağıranın sağladığı birIPdfOcrProvider'a gönderirTPdfOcrWord, yerel sayfa geometrisi aracılığıyla görünmez aranabilir metne eşlenen Unicode metni, güven puanını ve piksel uzayı dörtgenlerini taşırTPdfOcrReport; sayfa başına tamamlanma durumunu, mevcut metin atlamalarını, hataları, iptali, render edilen pikselleri ve kabul veya reddedilen sözcükleri kaydeder
Değiştirildi (Changed)
- OCR ekleme özgün tarama görüntü akışlarını korur, hatalı biçimlendirilmiş veya düşük güven puanlı sonuçları süzer, sayfa başına yalnızca bir kez işler ve etkin sayfayı geri yükler
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.37.0'ı tutarlı şekilde rapor ediyor
Version 3.36.0
Eklendi (Added)
ExtractTables, yerel sözcük geometrisinden ve dönüştürülmüş yol çizgilerinden çizgili ve boşluk hizalı tabloları algılarTPdfTable; satırları, sütunları, birleştirilmiş kapsamları, sayfa sınırlarını, başlık hücrelerini, algılama modunu, güven puanını ve doğrudan CSV veya JSON çıktısını raporlarExtractDocumentTables, paylaşılan bütçeler altında her sayfayı tarar ve sayfa sınırları boyunca devam eden eşleşen tabloları işaretler
Değiştirildi (Changed)
- Tablo çıkarma, yapılandırılabilir sözcük, çizgi, hücre ve tablo sınırlarını uygular ve belge düzeyi taramalardan sonra etkin sayfayı geri yükler
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.36.0'ı tutarlı şekilde rapor ediyor
Version 3.35.0
Eklendi (Added)
GenerateTaggedLayout, yerel işaretli içerik, bir Document yapı ağacı, ParentTree ve IDTree eşlemeleri ile belge dili meta verileriyle yeni bir anlamsal düzen belgesi oluştururTPdfLayoutSemantics; başlıkları, bölümleri, listeleri, şekilleri, başlık yazılarını, tabloları, başlık ilişkilerini, kapsamları, alternatif metni, gerçek metni, dilleri ve öğe kimliklerini modellerTPdfLayoutDocument.AddLink, URI Link ek açıklamaları üretir ve her ek açıklamayı OBJR ve StructParent eşlemeleri aracılığıyla Link yapı öğesiyle ilişkilendirir
Değiştirildi (Changed)
- Düzen metni varsayılan olarak paragraf semantiğine sahiptir; üstbilgiler, altbilgiler, çizgiler, görüntüler ve yeniden kullanılabilir formlar açıkça etiketlenmedikçe varsayılan olarak artifakt olur
- Anlamsal plan doğrulaması, belge üretilmeden önce yinelenen kimlikleri, eksik üst öğeleri, döngüleri, geçersiz liste veya tablo kapsamayı, yerine geçme metni olmayan şekilleri ve çözülemeyen tablo başlığı kimliklerini reddeder
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.35.0'ı tutarlı şekilde rapor ediyor
Version 3.34.0
Eklendi (Added)
TPdf.AddShapedText, yerel sistem şekillendirmesi ve PDFium CID Type 2 yazı tipi API'leri aracılığıyla RTL, bidi, bağlamsal ve ligatür glif dizilerini yazarShapePdfTextveTPdfUniscribeTextShaper, bir belgeyi değiştirmeden konumlandırılmış glif kimliklerini, ilerleme değerlerini, kaydırmaları, kaynak kümelerini, görsel diziliş konumlarını ve bidi düzeylerini açığa çıkarır
Değiştirildi (Changed)
- Üretilen ToUnicode eşlemeleri şekillendirilmiş her glifi kapsarken
ActualText, uyumlu çıkarma ve erişilebilirlik tüketicileri için özgün mantıksal Unicode dizesini saklar - UTF-16 bayt sırası işaretine sahip işaretli içerik dizeleri artık
PageObjectMarksaracılığıyla doğru şekilde çözülüyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.34.0'ı tutarlı şekilde rapor ediyor
Version 3.33.0
Eklendi (Added)
TPdfLayoutCachedNode, alt sınıflanmış düzen içeriğini ilk kullanımda oluşturur veAddCachedNodearacılığıyla ölçeklenmiş yinelenen yerleşimleri desteklerTPdfLayoutPlan; ölçüm önbelleği isabetlerini, ıskaları, önbellekli düğüm yerleşimlerini ve yeniden kullanılan yerel XObject'leri raporlar
Değiştirildi (Changed)
BuildPlan, metin ölçümünü yinelemeden tam sayfa kısıtlarına, içeriğe, yazı tipine, stile, kaynağa ve ölçer kimliklerine göre eşleşen planları yeniden kullanırGenerateLayout, her benzersiz önbellekli düğümü hedefe bağlı tek bir XObject'e dönüştürür ve her yerleşim için hafif Form nesneleri oluştururTPdf.AboutInfo, paket meta verileri ve yükleyici meta verileri artık Version 3.33.0'ı tutarlı şekilde rapor ediyor
Version 3.32.0
Eklendi (Added)
TPdfLayoutDocument; sarılmış metni, ayırıcıları, çizgileri, görüntüleri, yeniden kullanılabilir sayfa XObject'lerini, açık sayfa sonlarını, üstbilgileri ve altbilgileri ölçümlü bir sayfa planına dönüştürürGenerateLayout, yerel sayfaları ve sayfa nesnelerini atomik olarak eklemeden önce tüm düzeni sayfalandırır; kararlı{page}ve{pages}referansları korunur
Değiştirildi (Changed)
TPdf.AboutInfo, paket meta verileri ve yükleyici meta verileri artık Version 3.32.0'ı tutarlı şekilde rapor ediyor
Version 3.31.0
Eklendi (Added)
TPdfPagePlanoluşturucuları, silme, taşıma, ekleme, bölme ve birleştirme sayfa işlemlerini uygulamadan tanımlarValidatePagePlan, tam eski-yeni sayfa eşlemesini döndürür ve etkilenen yer imlerini, adlandırılmış hedefleri, sayfa etiketlerini, form alanlarını, etiketli sayfaları, içe aktarılan özellikleri ve imzaları envanterine alır
Güvenlik (Security)
- Askıda gezinme hedefleri bırakacak veya imzalı içeriği açık yetkilendirme olmadan değiştirecek planlar, herhangi bir yerel sayfa işlemi çalışmadan önce reddedilir
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.31.0'ı tutarlı şekilde rapor ediyor
Version 3.30.0
Eklendi (Added)
SaveRecoverySnapshot, kaynak parmak izini ve doğrulanmış belge düzen günlüğünü içeren sağlama toplamlı ve boyut sınırlı bir kurtarma paketi yazarRestoreRecoverySnapshot, bir kurtarma paketini yalnızca sağlama toplamı, günlük zinciri, kaynak parmak izi ve kurtarılan parmak izi tümüyle eşleştiğinde yeniden oynatırEnableRecoveryAutosave, kaynak PDF'yi yeniden yazmadan her değişen işleme, geri alma veya yeniden yapma işleminden sonra açık bir kurtarma dosyasını atomik olarak yeniler
Değiştirildi (Changed)
InspectRecoverySnapshot, paketi uygulamadan kurtarma kaynağını, parmak izlerini, girdi sayısını, konumu ve sınırlı depolamayı raporlarImportEditJournalve kurtarma geri yüklemesi artık imzalı bir PDF'ye düzen uygulmadan önce açıkAllowSignedDocumentyetkilendirmesi gerektiriyor- Kurtarma paketi depolaması, büyük günlükler ve çökmeye dayanıklı otomatik kaydetme güncellemeleri için yapılandırılmış sınırlı rastgele erişimli depoyu ve aynı dizin içinde yazarak değiştirme yöntemini kullanır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.30.0'ı tutarlı şekilde rapor ediyor
Version 3.29.0
Eklendi (Added)
BeginEditTransaction,CommitEditTransactionveRollbackEditTransaction, rastgele yerel belge düzenlemelerini atomik işlemler halinde gruplarUndoEditveRedoEdit, sayfa, nesne, ek açıklama, ek ve meta veri değişiklikleri arasında SHA-256 doğrulamalı ters ve ileri deltaları uygularExportEditJournalveImportEditJournal, sonraki yeniden oynatma için kaynak parmak izi ve özet zinciri doğrulamasıyla sınırlı taşınabilir deltaları kalıcı hale getirir
Değiştirildi (Changed)
- İşlem anlık görüntüleri yeniden üretilebilir yerel çıktı kullanır; böylece sıradan PDFium kayıtları deterministik olmayan tanımlayıcılar veya zaman damgaları içerse bile değişmeyen işlemler boş kalır
- Başarısız işlemler ve geçersiz günlük yeniden oynatımı önceki yüklenebilir belgeyi atomik olarak geri yükler; girdi sayısı, saklanan baytlar ve anlık görüntü boyutu çağıranın yapılandırdığı sınırların altında kalır
- İmzalı PDF'ler, bir belge düzen işlemi başlamadan önce açık
AllowSignedDocumentyetkilendirmesi gerektirir TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.29.0'ı tutarlı şekilde rapor ediyor
Version 3.28.0
Eklendi (Added)
TPdf.InspectOptionalContent; OCG katmanlarını, varsayılan ve alternatif yapılandırmaları, View/Print/Export kullanım durumlarını, yakınlaştırma ve dil meta verilerini, kilitli katmanları, sıra dizilerini, radyo gruplarını, OCMD ilkelerini, görünürlük ifadelerini ve etkin render durumunu numaralandırırTPdf.SaveAsOptionalContentConfigured, seçilen bir kullanım ve yapılandırma için çağıranın seçtiği katman durumlarıyla katı biçimde doğrulanmış bir kopya yazar
Değiştirildi (Changed)
- Katman durumu çıktısı artık hem yapılandırma
/ONve/OFFdizilerini hem de OCG Usage durum sözlüklerini güncelliyor; böylece PDFium istenen görünürlüğü kendi yerel render bağlamı üzerinden uygular - Yapılandırma yazmaları bilinmeyen grupları, kilitli katman değişikliklerini, radyo grubu çakışmalarını, şifreli hazırlanmış dosyaları ve açık yetkilendirme olmayan imzalı dosyaları reddeder; seçilen sonucun deterministik kalması için otomatik durum kurallarını varsayılan olarak kaldırır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.28.0'ı tutarlı şekilde rapor ediyor
Version 3.27.0
Eklendi (Added)
TPdf.RenderPageByIndex, herhangi bir tabanlı sayfayı, etkin düzenleme sayfasını değiştirmeden ve sayfa değişimi olayları tetiklemeden tam piksel boyutunda render ederPageSceneCacheCapacity,PageSceneCacheCountveClearPageSceneCache, sınırlı sahne önbelleği denetimi ve tanılamayı açığa çıkarır
Değiştirildi (Changed)
- İndeksli sayfa render işlemleri, render edilen küçük resimler ve gömülü küçük resim çıkarma işlemleri artık ayrıştırılmış PDFium sayfa durumunu varsayılan olarak sekiz girdilik bir LRU önbelleği üzerinden yeniden kullanıyor
- Sahne girdileri sayfa etkinleştirmede, düzenlemede, sayfa ağacı değişikliklerinde, form durumu callback'lerinde, açık temizlemede ve belge sökmesinde geçersiz kılınır; sürmekte olan render işlemleri serbest bırakılana kadar güvenle tutulur
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.27.0'ı tutarlı şekilde rapor ediyor
Version 3.26.0
Eklendi (Added)
TPadesSignatureAlgorithmInfo, her CMS imzacısının özetini, imzasını, ortak anahtar ve adlandırılmış eğri OID'lerini bağımsız olarak değerlendirilen algoritma ilke durumuyla birlikte raporlarInspectPadesSignatureAlgorithmveEvaluatePadesSignatureAlgorithm; P-256, P-384, P-521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, Ed25519 ve Ed448 profillerini tanır
Güvenlik (Security)
- PAdES doğrulaması artık eliptik eğri ve özet uyuşmazlıklarını, CMS özetiyle çelişen ECDSA imza OID'lerini, adsız EC parametrelerini, Ed25519 parametrelerini ve 512 bitten farklı Ed448 SHAKE256 çıktı uzunluklarını reddediyor
- Kriptografik geçerliliğin kaynağı yerel CMS doğrulaması olmaya devam eder; kullanılamayan algoritmalar ve tanınmayan eğriler geçersiz imza sayılmak yerine
pcsUnsupportedolarak raporlanır TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.26.0'ı tutarlı şekilde rapor ediyor
Version 3.25.0
Eklendi (Added)
TPdf.ExportObjectGraph, etkin klasik, xref akış ve nesne akışı nesnelerini; açık sözlükler, diziler, dizeler, adlar, skaler değerler, dolaylı referanslar, akış bayt sayıları ve isteğe bağlı SHA-256 akış özetleriyle sınırlı ve türü belirlenmiş JSON olarak dışa aktarırTPdf.SaveAsObjectGraphPatched, şema denetimli üst düzey sözlük değerlerini türü belirlenmiş null, Boolean, tam sayı, gerçek sayı, ad, metin dizesi ve dolaylı referans yama değerleri aracılığıyla ayarlar veya kaldırır
Güvenlik (Security)
- Nesne grafiği dışa aktarımı nesne, özyineleme, dize ve çıktı baytı bütçelerini uygular; yama işlemi teslim öncesinde her işlemi doğrular ve açıkça yetkilendirilmedikçe askıda referansları, yinelenen işlemleri, şifreli girdileri, korumalı akış filtresi veya uzunluk değişikliklerini ve imzalı belgeleri reddeder
- Nesne grafiği yamaları artımlı bir revizyon olarak hazırlanır, xref doğrulaması için yeniden somutlaştırılır, PDFium üzerinden katı biçimde yüklenir ve yalnızca tüm denetimler başarılı olduktan sonra kopyalanır veya atomik olarak yeniden adlandırılır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.25.0'ı tutarlı şekilde rapor ediyor
Version 3.24.0
Eklendi (Added)
TPdf.ValidatePadesTrust, bulunan her ayrık imzayı tam özgünByteRangekarşısında doğrular, signing-certificate-v2 bağını ve geçerli Windows sistem güvenini değerlendirir ve bağımsız imza, zincir, iptal ve zaman damgası durumlarını raporlarTPdf.ValidatePadesTrustAsync, dağıtımdan önce özgün yüklenen kaynağın anlık görüntüsünü alır; ayrıştırma, kriptografi, zincir oluşturma, AIA, OCSP, CRL ve RFC 3161 zaman damgası işleri için aşamalı ilerleme raporlar ve işbirlikçi iptali desteklerTPadesTrustValidationOptions; çevrimdışı veya çevrimiçi güveni, isteğe bağlı iptal ve zaman damgası doğrulamasını, sınırlı URL alma zaman aşımını, iptal belirtecini ve ilerleme callback'ini seçer
Güvenlik (Security)
- İmza zaman damgası ve Document Time-stamp belirteçleri artık SHA-256 ileti izlerini, ekli CMS imzasını, TSA zincirini ve isteğe bağlı iptal durumlarını sıradan belge imzasından bağımsız olarak doğruluyor
- Güven doğrulaması asla PDFium ile yeniden kaydedilmiş bir kopyanın özetini almaz, varsayılan olarak yalnızca önbelleğe dayalı çevrimdışı sertifika alımını kullanır ve kullanılamayan yerel güven veya iptal kanıtını geçerli saymak yerine desteklenmeyen veya belirsiz durumları raporlar
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.24.0'ı tutarlı şekilde rapor ediyor
Version 3.23.0
Eklendi (Added)
TPdf.RenewPadesArchiveTimestampveRenewPadesArchiveTimestampToStream, mevcut bir PAdES imza zincirine hiçbir geçmiş baytı değiştirmeden yeni bir RFC 3161 Document Time-stamp eklerTPadesArchiveTimestampOptions; TSA erişimini, nonce değerini, ayrılmış belirteç kapasitesini ve isteğe bağlı tam DSS yenilemesini denetler;TPadesArchiveTimestampReportkaynak ve sonuç düzeylerini, zincir uzunluklarını, bayt uzunluklarını ve döndürülen zaman damgası kimliğini kaydeder
Düzeltildi (Fixed)
- Yeni ve yenilenmiş PAdES B-LTA çıktısı ESIC ExtensionLevel 2 bildiriyor; B-LT doğrulaması artık bir Document Time-stamp mevcut olmadıkça Level 2 gerektirmiyor
Güvenlik (Security)
- Yenileme, tam özgün yüklenen baytların ve istenen tüm DSS güncellemesinin özetini alır, şifreli veya eksik kaynakları reddeder, çıktıyı yazmadan önce bulunabilen B-LTA sonucunu doğrular ve dosya çıktısını değiştirmeden önce aşamalı olarak hazırlar
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.23.0'ı tutarlı şekilde rapor ediyor
Version 3.22.0
Eklendi (Added)
TPdf.AnalyzeSignatureRevisions, özgün artımlı revizyon zincirini yeniden yapılandırır ve imza başına nesne değişikliklerini DocMDP ve FieldMDP izinlerine göre sınıflandırılmış olarak döndürürTPadesRevisionAnalysisReport, izin verilen form, ek açıklama, imza ve doğrulama materyali güncellemelerini izin verilmeyen sayfa veya belge değişikliklerinden, çözümlenemeyen durumlardan ve şüpheli gölge tanımlarından ayırır
Güvenlik (Security)
- Revizyon analizi; referanssız nesne tanımlarını, imza nesnesi yeniden tanımlarını, etkin içeriği, hatalı biçimlendirilmiş revizyon zincirlerini ve çözümlenemeyen sıkıştırılmış nesneleri algılarken sınırlı revizyon, nesne ve değişiklik bütçelerini uygular
- Analiz her zaman özgün yüklenen dosyayı, bellek tamponunu, özel akışı veya tamamlanmış aşamalı kaynağı kullanır; PDFium tarafından yeniden yazılan baytları değil
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.22.0'ı tutarlı şekilde rapor ediyor
Version 3.21.0
Eklendi (Added)
TPdf.PreparePadesRemoteSignature, sabit genişlikli bir ayrık imza yer tutucusu oluşturur ve SHA-256 belge özetini, kesinByteRangedeğerini, rezervasyon koordinatlarını ve hazırlanan PDF parmak izini içeren kalıcı bir istek döndürürTPdf.CompletePadesRemoteSignature, kalıcı isteği ve döndürülen CMS'i doğruladıktan sonra HSM, bulut veya kesintiye uğrayan imzalama oturumlarını tamamlarTPdf.SavePadesRemoteSigningRequestveTPdf.LoadPadesRemoteSigningRequest, süreç ve makine sınırları için kararlı, sürümlü bir ikili oturum biçimi sağlar
Güvenlik (Security)
- Tamamlama; değiştirilmiş hazırlanmış PDF'leri, değiştirilmiş
ByteRangekoordinatlarını, yeniden kullanılmış boş olmayan yer tutucuları, aşırı büyük CMS değerlerini, desteklenmeyen SignedData biçimlerini, eksik signing-certificate-v2 özniteliklerini ve hazırlanan belgeyle eşleşmeyen CMS ileti özetlerini reddeder TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.21.0'ı tutarlı şekilde rapor ediyor
Version 3.20.0
Eklendi (Added)
TPadesDssOptions.Vris, imza başına bir dolaylı/Type /VRIsözlüğü yazar; sözlük, dolgu dahil tam çözülmüş/Contentsdeğerinin büyük harfli SHA-1 özetiyle anahtarlanırTPadesDssVri, sertifika, OCSP ve CRL materyalini doğrulanmış indeksler aracılığıyla seçer; PAdES B-LT ve B-LTA imzalama artık yeni imzanın VRI'sini otomatik olarak oluşturuyor
Değiştirildi (Changed)
- DSS sertifikaları, OCSP yanıtları ve CRL'ler; herhangi bir hedef bayt yazılmadan önce kararlı ilk oluşum sıralaması, kesin bayt çakışma denetimleri ve VRI referans yeniden eşlemesiyle içerik özetine göre tekilleştirilir
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.20.0'ı tutarlı şekilde rapor ediyor
Version 3.19.0
Eklendi (Added)
TPdf.GetStructuredText, geçerli sayfayı yeniden kullanılabilir blok, satır ve biçimli aralık kayıtlarına dönüştürür; kaynak karakter indekslerini, Unicode skalerlerini, geometriyi, yazı tipi adlarını, boyutları, kalınlıkları ve metin açılarını korurTPdfStructuredTextOptions; içerik akışı veya fiziksel düzen sırasını, isteğe bağlı yazı tipi ve anlamsal zenginleştirmeyi ve hatada kapalı bir azami karakter bütçesini seçer- Tagged PDF ve sezgisel okunabilir içerik parçaları blokları yapı türü, başlık düzeyi, dil, kaynak ve yapı öğesi kimliğiyle zenginleştirir; eşleşmeyen Figure alternatif metni ise temsil edilmeye devam eder
Değiştirildi (Changed)
- Fiziksel düzen çıkarma işlemi artık öngörülebilir büyük sayfa performansı için O(n log n) karakter sıralaması, geometrik olarak büyüyen satır ve aralık tamponları, satır ve sütun kümeleme, tamponlu Unicode oluşturma ve bitişik boş olmayan metin nesnesi yazı tipi önbelleğe alması kullanıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.19.0'ı tutarlı şekilde rapor ediyor
Version 3.18.0
Güvenlik (Security)
TPdf.SaveAsRedacted, her/Redactdikdörtgenini yalıtılmış bir belge anlık görüntüsüne uygular, kesişen her üst düzey sayfa nesnesini kaldırır ve yüklenen belgeyi değiştirmeden opak bir yerine geçme dikdörtgeni boyar- Redakte edilmiş çıktı, redaksiyon ek açıklamalarını kaldırır, isteğe bağlı olarak diğer kesişen ek açıklamaları da kaldırır, yerel gömülü ekleri siler ve katalog
/AF, etkin içerik, formlar, meta veriler ile erişilemez önceki revizyon nesnelerini soyar TPdfRedactionOptions, yerine geçme rengini, çakışan ek açıklama kaldırmayı ve hatada kapalı bir sayfa nesnesi tarama bütçesini denetler;TPdfRedactionReporther kaldırmayı ve çıktı ölçümünü kaydederTPdfSanitiseOptions.StripAssociatedFilesartık varsayılan olarak katalog düzeyindeki ilişkili dosya referanslarını kaldırıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.18.0'ı tutarlı şekilde rapor ediyor
Version 3.17.0
Eklendi (Added)
TPdf.RenderPagesParallel, tabanlı sayfa isteklerini eşzamanlı olarak render eder; her çalışan, tek bir alınmış belge anlık görüntüsünden kaynaklanan bağımsız yüklenmiş bir PDFium modülüne, belgeye ve sayfa durumuna sahiptirTPdfParallelRenderOptions; DPI'yı, çalışan sayısını, döndürmeyi, yerel render bayraklarını, arka plan rengini, sayfa başına piksel sınırlarını ve toplam tutulan çıktı sınırlarını denetlerTPdfParallelRenderReport, istek sırasını korur ve çağıranın sahip olduğu yukarıdan aşağıya BGRA veya RGBA tamponlarını sayfa başına başarı, iptal, hata, boyut, zamanlama ve tanılama ayrıntılarıyla döndürür- Aşamalı çalışan render işlemi yerel parçalar arasında
IPdfCancellationToken'ı yoklarken, geçersiz istekler ve bütçe hataları yalnızca kendi sonuçlarına yalıtılmış kalır TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.17.0'ı tutarlı şekilde rapor ediyor
Version 3.16.0
Eklendi (Added)
TPdfEncryptionRevision.erR7,/V 6,/R 7,/CFM /AESV4ve gerekli PDF 2.0 geliştirici uzantısıyla ISO/TS 32003 AES-256-GCM çıktısı ekler- Şifrelenen her dize ve akış benzersiz bir 96 bit IV, değişmeyen uzunlukta şifreli metin ve 128 bit kimlik doğrulama etiketi alır;
EncryptMetadata = Falseise meta veri akış baytlarını korur DecryptAesGcmDocumentBytes, PDFium uyumlu düz metin baytlarını döndürmeden önce kullanıcı veya sahip parolalarını, şifreli izinleri, isteğe bağlı bağımsız PDF MAC verisini ve her GCM etiketini doğrular- AESV4 çıktısı, nesne başına GCM kimlik doğrulaması ile belge genelinde ISO/TS 32004 PDF MAC korumasının bir arada var olması için
TPdfEncryptOptions.EnableIntegrityProtectionile birleştirilebilir - Şifreleme artık akış verisi içindeki nesne biçimli metni dolaylı nesne olarak yorumlamak yerine geçerli klasik çapraz referans girdileri kullanıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.16.0'ı tutarlı şekilde rapor ediyor
Version 3.15.0
Eklendi (Added)
TPdfEncryptOptions.EnableIntegrityProtection, AES-256 Standard Security Handler revizyon 5 ve 6 belgeleri için ISO/TS 32004 bağımsız PDF MAC kimlik doğrulama kodları yazarTPdf.ValidatePdfMac, tam özgün kaynak baytları, EOF'u katı biçimde kapsayan/ByteRange, CMSAuthenticatedData, paroladan türetilmiş dosya anahtarı, kimlik doğrulamalı öznitelikler, sarmalanmış MAC anahtarı ve HMAC değerini doğrularFPdfHmac, HMAC-SHA256 ve HKDF-SHA256 ekler;FPdfAesise RFC 3394 AES-256 Key Wrap ve kimlik doğrulamalı açma ilkellerini eklerTPdfMacValidationResult, geçerli, yok, geçersiz ve desteklenmeyen kimlik doğrulama kodlarını tanılama metniyle ayırt ederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.15.0'ı tutarlı şekilde rapor ediyor
Version 3.14.0
Eklendi (Added)
TPdf.ValidatePadesartık Windows üzerinde ayrık CMS imzalarını, imzalı öznitelikler ve imza değeri dahil, tam özgün/ByteRangebölümleri karşısında doğruluyorTPadesValidationResult, toplam bütünlük durumunu ve imza başına ByteRange, CMS,signing-certificate-v2, sistem güveni, iptal ve zaman damgası durumlarını açığa çıkarır; desteklenmeyen veya denetlenmemiş kanıtı geçersiz imzayla karıştırmaz- İmzacı sertifika bağı SHA-256 ile denetlenir, sertifika zincirleri yalnızca önbelleğe dayalı Windows sistem güveni değerlendirmesi kullanır ve yerel hata kodları tanılama için kullanılabilir kalır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.14.0'ı tutarlı şekilde rapor ediyor
Version 3.13.1
Düzeltildi (Fixed)
TPdf.ValidatePadesartık, ofsetleri geçersiz kılabilecek veya imza sözlüklerini atabilecek PDFium ile yeniden kaydedilmiş bir kopya yerine özgün dosyayı, tamponlanmış belleği veya özel akış baytlarını inceliyor- PAdES
/ByteRangedenetimleri artık önceki tam bir PDF revizyonunu ve ardından geçerli artımlı güncellemeleri kapsayan imzaları kabul ediyor; ayrıca Document Time-stamp aralıkları da doğrulanıyor TPadesValidationResult.SourceStatus, özgün kaynak doğrulamasını kullanılamayan veya eksik aşamalı girdiden ayırır; uyumluluk koşulları özgün bayt içermeyen sonuçları reddederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.13.1'i tutarlı şekilde rapor ediyor
Version 3.13.0
Eklendi (Added)
FPdfSha3, ISO/TS 32001 ve ilgili PDF 2.x kriptografik işleri için bağımlılıksız SHA3-256, SHA3-384, SHA3-512 ve SHAKE256 ilkellerini sağlar- Artımlı bağlamlar rastgele bölünmüş girdiyi emerken SHAKE256, yinelenen squeeze çağrılarını ve sünger oran sınırlarını aşan çıktıyı destekler
- Tek atımlık bayt dizisi ve küçük harfli onaltılık yardımcılar, akış API'sini tamamlar; Delphi, C++Builder ve Lazarus genelinde açık yaşam döngüsü ve boyut doğrulaması sağlanır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.13.0'ı tutarlı şekilde rapor ediyor
Version 3.12.0
Eklendi (Added)
TPdf.ImportFDF, dosya veya akışlardan FDF form verisini içe aktarır ve ayrıştırılan değerleri mevcut widget alan yolu üzerinden uygularFdfImportFromStreamveFdfImportFromFile; doğrudan veya dolaylı hiyerarşik alanları, PDF gerçek ve onaltılık dizelerini, PDFDocEncoding, Unicode metni, ad değerlerini ve açık boş değerleri sınırlı kaynak bütçeleri altında ayrıştırır- FDF dışa aktarımı artık ASCII olmayan alan adlarını ve değerlerini standartlara uygun UTF-16BE metin dizeleri olarak yazıyor ve kaynak dosya adlarını güvenle kaçışlıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.12.0'ı tutarlı şekilde rapor ediyor
Version 3.11.0
Eklendi (Added)
TPdf.DetectPageSkew, geçerli sayfayı düşük DPI ile render eder ve koyu pikselleri aday döndürme açılarına projekte ederek eğiklik açısını algılar; satır toplamı varyansını (metin satırı hizalaması) en yükseğe çıkaran açıyı yaklaşık 0,1 derece doğrulukla döndürürTPdfSkewReport, algılanan açıyı, güven puanını ve örnek boyutlarını açığa çıkarırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.11.0'ı tutarlı şekilde rapor ediyor
Version 3.10.0
Eklendi (Added)
TPdf.GetTextInReadingOrder, geçerli sayfa metniniFPDFText_GetCharBox+ konuma göre sıralanmış karakter çıkarma yoluyla ham içerik akışı sırasına veya fiziksel düzen sırasına (yukarıdan aşağıya, soldan sağa) göre çıkarır; böylece çok sütunlu ve görsel olarak yeniden sıralanmış metin doğal biçimde okunurTPdfReadingOrdersabit listesiroContentOrderveroPhysicalLayoutarasında seçim yaparTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.10.0'ı tutarlı şekilde rapor ediyor
Version 3.09.0
Eklendi (Added)
TPdfImageOptimizeOptions.PreserveBilevel,OptimizeImagessırasında 1 bitlik iki düzeyli görüntüleri (ImageMask / çizgisel taramalar) atlar; böylece en yakın komşu alt örneklemesi keskin kenarlarını bozmazTPdfImageOptimizeOptions.MinDimension, eşiğin altındaki görüntüleri atlar (genellikle daha fazla küçültmeden yarar görmeyen simgeler veya dekoratif öğeler)TPdfImageOptimizeOptions.Default, önerilen başlangıç noktasını sağlar (150 DPI hedefi, 1,5 oranı, iki düzeyli korunur, en küçük boyut 8)TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.09.0'ı tutarlı şekilde rapor ediyor
Version 3.08.0
Eklendi (Added)
TPdfTileCache, belge revizyonu, sayfa, yakınlaştırma, döndürme, render bayrakları ve cihaz dikdörtgenine göre anahtarlanmış sınırlı bir LRU render sayfa karo önbelleği sağlar; böylece değişmeyen karolar yeniden boyamalarda yeniden render edilmez ve önceki bir kayıttan kalan eski karolar otomatik olarak önbellekten çıkarılırTTileKey, bileşik önbellek anahtarını statik birCreatefabrikası ve birEqualskarşılaştırıcısıyla açığa çıkarırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.08.0'ı tutarlı şekilde rapor ediyor
Version 3.07.0
Eklendi (Added)
TPdf.GetAnnotationFontColorveTPdf.SetAnnotationFontColor, daha önce bağlanmış ama kullanılmayanFPDFAnnot_GetFontColorveFPDFAnnot_SetFontColorişlevlerini sarar; ek açıklama sözlüğüne doğrudan dokunmadan form alanı düzenleme için widget metin rengi okuma ve yazma sağlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.07.0'ı tutarlı şekilde rapor ediyor
Version 3.06.0
Eklendi (Added)
TPdf.RenderPageBanded, geçerli sayfayı bir callback aracılığıyla yatay bantlar halinde render eder; böylece posterler ve mühendislik sayfaları tam bir hedef bitmap hiç ayrılmadan dışa aktarılabilir — her bant, istenen bant yüksekliğinde yeni oluşturulan birTBitmap'e render edilir ve callback döndükten sonra serbest bırakılırTPdfBandCallback, bant başına sözleşmeyi (bant indeksi, üst-y kaydırması, bitmap) açığa çıkarır; Boolean dönüş değeri, çağıranların bantlı render işlemini erken iptal etmesini sağlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.06.0'ı tutarlı şekilde rapor ediyor
Version 3.05.0
Eklendi (Added)
TPdf.RenderPageProgressiveWithColorScheme,FPDF_RenderPageBitmapWithColorScheme_Startaracılığıyla yerel aşamalı render döngüsünü düşük görümlü renk şemasıyla yürütür; çağıranlar erişilebilirlik için yol dolgusu / konturu ve metin dolgusu / konturu renklerini değiştirebilirken iptale duyarlı Continue döngüsü korunurTPdfColorScheme, dörtTColorgeçersiz kılma alanını açığa çıkarır; tüm alanlarclDefaultolduğundaDefault, PDFium'un yerleşik renklerine devrederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.05.0'ı tutarlı şekilde rapor ediyor
Version 3.04.0
Eklendi (Added)
TPdf.ExportFDF, form alanı değerlerini mevcut XFDF yolunun yanı sıra bir FDF (ISO 32000-1 §12.7.11) belgesi olarak serileştirir; aynıTXfdfFieldveri modelini yeniden kullanır, böylece çağıranlar alanları bir kez toplar ve iki biçimden birini üretirFPdfXfdfiçindekiFdfExportToStreamveFdfExportToFile, yüklenmiş birTPdf'ten bağımsız olarak alan koleksiyonları oluşturan çağıranlar için düşük düzey FDF serileştiricisini açığa çıkarırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.04.0'ı tutarlı şekilde rapor ediyor
Version 3.03.0
Eklendi (Added)
TPdf.SaveAsSanitised, katalogdan etkin içeriği soyup (/OpenAction, katalog/AA,/Names,/AcroForm,/Metadata) ardından erişilemez nesneleri budayan temiz, tek revizyonlu bir kopya yazar; böylece yetim JavaScript, eylem ve ek gövdeleri dosya gövdesinden kaybolurTPdfSanitiseOptions, vektör başına bağımsız soyma denetimlerinin yanı sıra isteğe bağlı bir erişilebilirlik budama geçişi açığa çıkarır;TPdfSanitiseReportsoyulan girdi sayısını, budanan nesne sayısını, bayt sayılarını ve varsa hatayı kaydederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.03.0'ı tutarlı şekilde rapor ediyor
Version 3.02.0
Eklendi (Added)
TPdf.SaveAsPageLabelled, katalog/PageLabelsnumara ağacının verilen aralıklarla değiştirildiği tam bir PDF kopyası yazar; ISO 32000-1 §12.4.2 uyarınca ondalık, büyük/küçük harf Roma rakamı ve büyük/küçük harf harf numaralandırma stillerini isteğe bağlı önek metin dizeleri ve başlangıç numaralarıyla uygularTPdfPageLabelRange,TPdfPageLabelRanges,TPdfPageLabelStyleveTPdfPageLabelReport; aralık modelini, stil sabit listesini ve kayıt başına bayt/aralık sayılarını açığa çıkarır- Mevcut katalog
/PageLabelsgirdileri algılanır veReplaceExisting=Truegeçirilmedikçe reddedilir; geçirildiğinde eski girdi, yeni aralıklar yerleştirilmeden önce soyulur TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.02.0'ı tutarlı şekilde rapor ediyor
Version 3.01.0
Eklendi (Added)
TPdf.FlattenPageRotation, her sayfanın geçerli/Rotatedeğerini içerik akışına, sayfa kutularına ve ek açıklama dikdörtgenlerine yerleştirir, ardından/Rotatedeğerini 0'a sıfırlar —FPDFPageObj_TransformF+FPDFAnnot_GetRect/SetRect+FPDFPage_SetMediaBox/SetCropBox+FPDFPage_SetRotationişlevlerini sarar; böylece görsel düzen, döndürme görüntüleme ipucuna güvenilmeden korunurTPdfFlattenRotationOptions, sayfa başına ek açıklama dönüşümü, sayfa kutusu takası ve otomatik güncelleme denetimlerini açığa çıkarır;TPdfFlattenRotationReportişlenen, atlanan ve başarısız sayfaları ile dönüştürülen toplam nesne ve ek açıklama sayısını kaydederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.01.0'ı tutarlı şekilde rapor ediyor
Version 3.00.0
Eklendi (Added)
TPdf.StampPagesFromPdf, bir kaynak sayfayı bir veya daha fazla hedef sayfaya konumlandırılmış, ölçeklenmiş ve isteğe bağlı olarak döndürülmüş bir Form XObject kaplaması veya alt katmanı olarak damgalar;CreateXObjectFromPage+FPDFPageObj_SetMatrix+FPDFPageObj_SetBlendMode+FPDFPage_InsertObjectAtIndexişlevlerini açık sayfa kutusu, çapa, kenar boşluğu, ölçek, döndürme, karışım ve z-sırası ilkeleriyle sararTPdfOverlayOptionsveTPdfOverlayReport; yerleştirme, dönüşüm, karışım ve z-sırası denetimlerinin yanı sıra sayfa başına damgalanan, başarısız ve atlanan sayılarını açığa çıkarırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 3.00.0'ı tutarlı şekilde rapor ediyor
Version 2.99.0
Eklendi (Added)
TPdf.RefreshAppearance, tek bir widget'ın görünüm akışınıFPDFAnnot_SetAParacılığıyla seçici olarak yeniden oluşturur ve tam sayfaNeedAppearancesyeniden inşasından kaçınırTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.99.0'ı tutarlı şekilde rapor ediyor
Version 2.98.0
Eklendi (Added)
TPdfView.MouseDownartık sağ düğme olaylarınıFORM_OnRButtonDownaracılığıyla yerel form doldurma motoruna yönlendiriyor; böylece sağ tıkla bağlam menüleri ve widget etkileşimleri etkinleşiyor- 78 (bağlantı ek açıklaması eşlemesi), 82 (widget sunumu) ve 83 (yapı özniteliği modeli) numaralı yol haritası maddeleri, mevcut altyapı üzerinden zaten tamamlanmış olarak doğrulandı
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.98.0'ı tutarlı şekilde rapor ediyor
Version 2.97.0
Eklendi (Added)
TPdf.SetDeterministicTimeveTPdf.RestoreActualTime, testlerin ve yeniden üretilebilir yapıların desteklenen yerel callback'ler aracılığıyla sabit bir oluşturma, değiştirme ve geçerli zaman değeri enjekte etmesini sağlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.97.0'ı tutarlı şekilde rapor ediyor
Version 2.96.0
Eklendi (Added)
TPdf.GetWidgetAdditionalActionJavaScript, verilen bir olay tetikleyicisi için widget ek eylem JavaScript'iniFPDFAnnot_GetFormAdditionalActionJavaScriptaracılığıyla herhangi bir komut dosyası çalıştırmadan okurTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.96.0'ı tutarlı şekilde rapor ediyor
Version 2.95.0
Eklendi (Added)
TPdf.GetObjectText, hassas içerik düzenleme ve kodlama tanılaması için bir metin sayfa nesnesinin Unicode metniniFPDFTextObj_GetTextaracılığıyla çıkarırTPdf.GetObjectsByType, seçmeli kategori çıktısı için bir kategoriyle (metin, yol, görüntü, form, gölgeleme) eşleşen tüm sayfa nesnelerinin indekslerini döndürürTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.95.0'ı tutarlı şekilde rapor ediyor
Version 2.94.0
Eklendi (Added)
TPdf.AttachmentHasKey,GetAttachmentStringValueveSetAttachmentStringValue; gömülü eklerdeki özel dosya belirtimi uzantı değerlerini okur, yazar ve yoklarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.94.0'ı tutarlı şekilde rapor ediyor
Version 2.93.0
Eklendi (Added)
TPdf.InsertObjectAtIndex, bir sayfa nesnesini her zaman sona eklemek yerineFPDFPage_InsertObjectAtIndexaracılığıyla istenen yığın konumuna eklerTPdf.UpdateAnnotationObject, düzenlenmiş bir ek açıklama görünüm nesnesiniFPDFAnnot_UpdateObjectaracılığıyla işler; böylece ek açıklamaya ait sayfa nesnelerindeki değişiklikler güvenle kalıcı olurTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.93.0'ı tutarlı şekilde rapor ediyor
Version 2.92.0
Eklendi (Added)
TPdf.InsertClipPath, dikdörtgen bir kırpma yolu oluşturur ve yerelFPDF_CreateClipPathveFPDFPage_InsertClipPathyolları aracılığıyla geçerli sayfaya ekler; mevcutPageObjectClipPathdenetçisini tamamlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.92.0'ı tutarlı şekilde rapor ediyor
Version 2.91.0
Eklendi (Added)
TPdf.GetPageComplexity, geçerli sayfayı tarar ve render planlaması için görüntü, yol ve metin nesnesi sayılarının yanı sıra toplam yol segmenti, toplam görüntü pikseli ve saydamlık varlığı bilgisini raporlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.91.0'ı tutarlı şekilde rapor ediyor
Version 2.90.0
Eklendi (Added)
TPdf.IsAnnotationSubtypeSupported, düzenlemeden önce yüklenen PDFium DLL'sine hangi ek açıklama alt türlerini desteklediğini sorarTPdf.ChooseRenderFlags, uyarlanabilir görüntü alt örneklemesi için son ölçek ve hedef boyutundan yerel render bayraklarını (yarı ton, sınırlı görüntü önbelleği) seçerTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.90.0'ı tutarlı şekilde rapor ediyor
Version 2.89.0
Eklendi (Added)
TPdf.GetTextRenderMode, yazma tanılaması için bir metin sayfa nesnesinin yerel metin render modunu (dolgu, kontur, kırpma) açığa çıkarırTPdf.GetTextObjectRenderedBitmap, tek bir metin nesnesini yerelFPDFTextObj_GetRenderedBitmapyolu aracılığıyla yalıtılmış bir bitmap'e render ederTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.89.0'ı tutarlı şekilde rapor ediyor
Version 2.88.0
Eklendi (Added)
TPdf.GetThumbnailartık sayfada gömülü küçük resim bulunmadığında bir yerine geçme görüntüsü render etmeye geri dönüyor; böylece gömülü küçük resim önceliği uygulama konuyorTPdf.LinkAtPoint, yalnızca dikdörtgen taramaları yerineFPDFLink_GetLinkAtPointkullanarak bir sayfa uzayı koordinatında yerel bağlantı bulunup bulunmadığını döndürürTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.88.0'ı tutarlı şekilde rapor ediyor
Version 2.87.0
Eklendi (Added)
TPdf.AuditActiveContent, herhangi bir komut dosyası veya eylem çalıştırmadan JavaScript eylem sayısı, gömülü dosya sayısı, imza sayısı, XFA form türü ve belge izinlerinden oluşan birTPdfActiveContentAuditanlık görüntüsü döndürürTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.87.0'ı tutarlı şekilde rapor ediyor
Version 2.86.0
Eklendi (Added)
TPdf.GetFeatureInventory, her sayfayı bir kez tarar ve metin, yol, görüntü, form XObject ve gölgeleme nesnesi sayılarının yanı sıra ek, imza, form türü, izin ve PDF sürümü bilgilerini içeren birleşik bir kayıt döndürürTPdfFeatureInventory, daha önce ayrı özellik çağrıları gerektiren belge genelindeki bilgileri tek bir anlık görüntüde birleştirirTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.86.0'ı tutarlı şekilde rapor ediyor
Version 2.85.0
Eklendi (Added)
TPdf.SaveAsReproducible, aynı bellek içi durumun iki kaydı bayt bayt özdeş çıktı üretecek şekilde belgeyi yeniden yazar- Deterministik olmayan
/Infozaman damgaları (/CreationDate,/ModDate) soyulur, duvar saatine bağımlı baytlardan türetilen kaynak/IDatlanır; nesne sırası ve üretimi ise kararlı kalır TPdfReproducibleReport, tutulan ve budanan nesne sayılarının yanı sıra soyulan zaman damgası girdisi sayısını raporlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.85.0'ı tutarlı şekilde rapor ediyor
Version 2.84.0
Eklendi (Added)
TPdf.SaveAsInlineImagesExternalised, herBI/ID/EIsatır içi görüntüsünü yeniden kullanılabilir bir görüntü XObject'ine çıkararak ve satır içi bloğu bir/ImN Dooperatörüyle değiştirerek belgeyi yeniden yazar- Satır içi görüntü sözlüğü kısaltmaları (
/W,/H,/BPC,/CS,/F, renk uzayı değerleri ve filtre değerleri), çıkarılan nesnenin standartlara uygun olması için tam görüntü XObject adlarına genişletilir - Sayfa
/Resources /XObjectsözlüğü yeni XObject referanslarıyla güncellenir ve yeniden yazılan içerik akışı Flate ile sıkıştırılır TPdfInlineImageExternaliseReport, dışsallaştırılan, atlanan ve başarısız sayılarının yanı sıra oluşturulan XObject sayısını raporlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.84.0'ı tutarlı şekilde rapor ediyor
Version 2.83.0
Eklendi (Added)
TPdf.SaveAsFlateRecompressed, belgeyi yeniden yazar ve uygunFlateDecodeakışlarını en yüksek sıkıştırmayla yeniden kodlar; bir akışı yalnızca ölçülen bayt tasarrufu çağıranın eşiğini geçtiğinde değiştirirTPdfFlateRecompressOptions, bayt cinsinden en az tasarruf miktarını ve en az tasarruf oranını seçer; böylece zaten optimal olan akışlara dokunulmazTPdfFlateRecompressReport, yeniden sıkıştırılan, atlanan ve başarısız akış sayılarını özgün ve yeniden sıkıştırılmış akış bayt toplamlarıyla birlikte raporlar- Nesne numaraları ve üretimleri kararlı kalır; yalnızca yeniden sıkıştırılan akış yükleri ve doğrudan
/Lengthdeğerleri değişir, böylece hayatta kalan her çapraz referans geçerli kalır TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.83.0'ı tutarlı şekilde rapor ediyor
Version 2.82.0
Eklendi (Added)
TPdf.OptimizeImages, her sayfa görüntü nesnesini dolaşır ve etkin yerleşim DPI'ı çağıranın seçtiği hedefi aşanları alt örnekler, ardından dokunduğu her sayfayı yerel içerik üreteci üzerinden işlerTPdfImageOptimizeOptions, hedef DPI'ı ve en az oranı seçer; böylece yalnızca gerçekten aşırı örneklenmiş görüntüler yeniden kodlanırTPdfImageOptimizeReport, iyileştirilen, atlanan ve başarısız görüntü sayılarını yapılandırılmış bir hata iletisiyle birlikte raporlar- Alt örnekleme, yerel PDFium bitmap tamponu üzerinde en yakın komşu geçişi kullanır; kaynak biçimi, adım ve alfa kanalı korunur,
FPDFImageObj_SetBitmapkalan görüntüyü yeniden kodlar TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.82.0'ı tutarlı şekilde rapor ediyor
Version 2.81.0
Eklendi (Added)
TPdf.SaveAsDeduplicated, belgeyi uyumlu yazı tiplerini, görüntüleri ve form XObject'lerini tek bir paylaşılan temsilcide birleştiren tek ve temiz bir revizyon olarak yeniden yazar- Özyinelemeli bir içerik parmak izi, her kaynak sözlüğünü, ona tamamen erişilebilen alt grafiğini ve ham akış yükünü birleştirir; böylece kopyalar yalnızca tüm içerikleri özdeş olduğunda birleşir
- Birleştirilen her kopyaya giden çapraz referans, hayatta kalan temsilciye yeniden yazılır; yeniden oluşturulan klasik çapraz referans tablosu nesne numaralarını kararlı tutar
TPdfDedupReport, tutulan ve budanan nesne sayılarının yanı sıra kategori başına birleştirilen yazı tipi, görüntü ve form XObject sayılarını raporlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.81.0'ı tutarlı şekilde rapor ediyor
Version 2.80.0
Eklendi (Added)
TPdf.SaveAsReachable, belgeyi yalnızca katalogdan ve trailer /Info sözlüğünden erişilebilen dolaylı nesneleri tutan tek ve temiz bir revizyon olarak yeniden yazarTPdfPruneReport, tutulan ve budanan dolaylı nesne sayılarını kaynak ve çıktı bayt boyutlarıyla birlikte raporlar; şifreli veya hatalı biçimlendirilmiş girdi için yapılandırılmış hata nedenleri sağlar- Artımlı güncellemelerin, sayfa birleştirmelerinin veya onarılmış kayıtların geride bıraktığı erişilemez yetim nesneler süpürülür; yeniden oluşturulan klasik çapraz referans ve trailer,
/Root,/Infove/IDdeğerlerini yeniden numaralandırmadan korur TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.80.0'ı tutarlı şekilde rapor ediyor
Version 2.79.0
Eklendi (Added)
TPdf.CreateDocumentSearch, tam belge metin indeksi oluşturmadan aynı anda tek bir eşleşme döndüren ileri veya geri yönlü belge genelinde bir arama oluştururTPdfDocumentSearchResult, her sonuç için tabanlı sayfayı, karakter aralığını, eşleşen metni ve sayfa uzayı dikdörtgenlerini raporlar- Arama oturumları
IPdfCancellationTokenkabul eder, yalnızca geçerli PDFium sayfa ve metin tanıtıcılarını tutar ve belge kapatıldığında güvenli biçimde sonlanır TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.79.0'ı tutarlı şekilde rapor ediyor
Version 2.78.0
Değiştirildi (Changed)
TPdfRangeRequestSchedulerartık çakışan düşük öncelikli aktarımları önceden kesiyor; böylece sayfaya kritik PDFium ipuçları arka plan indirmelerinin arkasında beklemiyor- Dışarıdan sağlanan seyrek baytlar gereksiz etkin aktarımları iptal eder; geçersiz kılınan veya yinelenen taşıma callback'leri eski kapsamı yayımlamadan False döndürür
- Öncelik yükseltmesi bağımsız yeniden deneme geçmişlerini korur; taşıma kesmesi artık etkilenmeyen aralık kuyruklarının yeniden deneme bütçesini tüketmez
TPdfRangeRequestStatistics.SupersededRequestCount, daha yüksek öncelikli ipuçları veya dışarıdan sağlanan kapsamla ötelenen taşıma işini raporlarTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.78.0'ı tutarlı şekilde rapor ediyor
Version 2.77.0
Eklendi (Added)
TPdf.SaveAsNormalizedContent, sözdizimi normalleştirilmiş sayfa içeriğini bir akışa veya atomik olarak değiştirilen bir dosyaya yazar ve normalleştirilen, atlanan ve birleştirilen sayfa sayılarını raporlarNormalizePdfContentSequence, çözülmüş içerik akışı dizileri için sınırlı ve bağımsız belirteç normalleştirmesi sağlar
Değiştirildi (Changed)
- Sayfa
/Contentsdizileri artık dizeleri, adları, satır içi görüntü yüklerini, bilinmeyen operatörleri ve akışlar arası grafik durumunu koruyarak tek bir akışta birleştirilebiliyor - Hatalı biçimlendirilmiş belirteçler, dengesiz durum kapsamları, desteklenmeyen filtreler, şifreli girdi ve imzalı belge yeniden yazımları için açık ilkeler ve yapılandırılmış durum raporlaması bulunur
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.77.0'ı tutarlı şekilde rapor ediyor
Version 2.76.0
Eklendi (Added)
TPdfStreamInspector, rastgele fiziksel PDF akış nesnelerinin envanterini çıkarır ve nesne ofsetlerini, ham uzunlukları, filtre zincirlerini, DecodeParms değerlerini, dış dosya işaretlerini, şifreleme durumunu ve yerel görüntü veya ek yollarını raporlarCopyRawDatatam kodlanmış yükleri veya doğrulanmış bayt pencerelerini kopyalar;DecodeDataise ASCIIHex, ASCII85, LZW, Flate, RunLength, TIFF 8 bit ve PNG öngörücülerini bildirilen sırayla uygularTPdfStreamInspectOptions; kaynak, ham, çözülmüş, sözlük, akış sayısı ve genişletme oranı kaynaklarını sınırlar; sınırlar, hatalı biçimlendirilmiş veri, desteklenmeyen codec'ler, şifreleme ve yazma hataları için yapılandırılmış raporlar sağlar
Değiştirildi (Changed)
- Akış uzunluğu çözümlemesi artık doğrudan ve dolaylı
/Lengthdeğerleri için kesin aralıkları açığa çıkarıyor; sıfır uzunluklu akışlar ve literalendstreamdizisini içeren yükler dahil TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.76.0'ı tutarlı şekilde rapor ediyor
Version 2.75.0
Eklendi (Added)
TPdfLoadOptions, dosya, bellek, bayt aralığı ve özel akış yüklemelerine uyumlu, katı ve kurtarma ilkeleri eklerTPdfLoadReport, klasik, karma ve xref akışı belgeleri için yerel kurtarma yolunu, xref geçerliliğini, hasarlı ofsetleri, girdi çakışmalarını, revizyon sayılarını, denetim bütçelerini ve yapılandırılmış sorunları raporlarTPdf.SaveAsRepaired, tam tek revizyonlu bir kopya oluşturur ve doğrulanmış akışı teslim etmeden veya hedef bir dosyayı atomik olarak değiştirmeden önce kopyayı bağımsız olarak katı biçimde yükler
Değiştirildi (Changed)
- Mevcut yükleme aşırı yüklemeleri uyumlu davranışı koruyor ve artık yerel xref geçerliliğini ve kurtarma durumunu
LastLoadReportüzerinden yayımlıyor - Katı yükleme, yerel xref yeniden oluşturması gerektiren veya yapısal denetimden geçemeyen belgeleri reddeder; imzalı onarım çıktısı ise çağıranın açık yetkilendirmesini gerektirir
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.75.0'ı tutarlı şekilde rapor ediyor
Version 2.74.0
Eklendi (Added)
TPdf.MergeFiles, dosya tabanlı kaynak listelerini kaynak başına sayfa aralıkları ve parolalarla birleştirir; aynı anda en fazla bir kaynak belge açık kalırTPdfBatchMergeOptions; durdur veya atla hata işlemeyi, kaynak kapsamlı veya parçalı içe aktarmaları, form ve ana hat ilkelerini, ekleme denetimini, ilerleme callback'lerini, iptali, görüntüleyici tercihi kopyalamayı ve geri alma denetimini eklerTPdfBatchMergeReport; işlenen ve geri alınan sayfaları, kaynak sonuçlarını, yerel içe aktarma çağrılarını, en büyük grubu, tepe açık kaynak sayısını, ilke algılamalarını, sorunları ve son durumu raporlar
Değiştirildi (Changed)
- Varsayılan toplu iş yolu, kaynak başına bir yerel sayfa içe aktarımı gerçekleştirir; böylece PDFium o kaynak genelinde klonlanmış nesneleri yeniden kullanabilir, ardından sonraki dosyayı açmadan önce kaynağı kapatır
- Parçalı mod daha ince iptal noktaları ve daha küçük yerel gruplar sağlar; başarısız kısmi kaynaklar ile durdurma veya iptal sonuçları, işlem tarafından eklenen tüm sayfaları kaldırabilir
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.74.0'ı tutarlı şekilde rapor ediyor
Version 2.73.0
Eklendi (Added)
TPdfRandomAccessStore, iş parçacığı güvenli sıralı ve konumlandırılmış G/Ç sağlar, küçük içeriği sınırlı bellekte tutar ve çağıranın seçtiği bir üst sınıra ulaşıldığında bir kez özel geçici depoya taşarTPdf.SaveMemoryLimitveSaveTemporaryDirectorykaydetme hazırlığını yapılandırır;LastSaveSpillCountveLastSaveLargestMemoryBufferölçülebilir kayıt başına tanılamaları açığa çıkarır
Değiştirildi (Changed)
- Kaydetme, standart dönüştürme, doğrulama, şifreleme, DSS ve PAdES hazırlık tamponları artık özel kapanışta silinen taşma dosyaları ve bellek temizlemesiyle sınırlı çalışma depolamasını paylaşıyor
- Özel PDFium blok callback'leri sıradan akış aramalarını serileştirir ve
TPdfRandomAccessStoreile desteklendiğinde imleçten bağımsız konumlandırılmış okumalar kullanır - Dosya tabanlı XFA yetenek taraması artık tam PDF'yi belleğe kopyalamak yerine sabit boyutlu çakışan bloklar okuyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.73.0'ı tutarlı şekilde rapor ediyor
Version 2.72.0
Eklendi (Added)
TPdf.BeginIncrementalSave,CommitIncrementalSaveveEndIncrementalSave, yalnızca değişen veya yeni oluşturulan dolaylı nesneleri ekleyen bir revizyon oturumu sağlarTPdfIncrementalCommitInfo, her işleme için değişen nesne sayısını, eklenen baytları, toplam çıktı baytlarını ve başarılı revizyon sayısını raporlar
Değiştirildi (Changed)
- Her kirli işleme, tam önceki çıktıyı kesin bir bayt öneki olarak korur, hiçbir şey değişmediğinde revizyon üretmez ve kaynağın klasik veya xref akışı biçimini sürdürür
- Yerel xref akışı artımlı çıktısı, sonraki işlemlerden önce gerekli tür, kendi girdisi, uzunluk, indeks ve nesne sonlandırıcısıyla onarılır
- Şifreli belgeler oturum başlamadan önce reddedilir; imzalı belgeler çağıranın açık iznini gerektirir, böylece imza ilkesi kazayla atlatılamaz
- Dosya aşırı yüklemesi, hedefi atomik olarak değiştirmeden önce kardeş bir geçici dosyayı tamamlar ve herhangi bir yazma veya değiştirme hatasından sonra oturum durumunu geri alır
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.72.0'ı tutarlı şekilde rapor ediyor
Version 2.71.0
Eklendi (Added)
TPdf.SaveAsObjectStream, sınırlı sıkıştırılmış nesne grupları ve tam type-2 girdileri içeren saf bir xref akışıyla PDF 1.5+ dosyaları yazarPackPdfObjectStreams, etkin revizyonu çözdükten sonra klasik, karma, xref akışı ve mevcut nesne akışı girdisini modernleştirebilir
Değiştirildi (Changed)
- Sayfa yerel nesne sıralaması, uyarlanabilir xref alan genişlikleri, doğrudan katalog erişimi ve yapılandırılabilir üye ile çözülmüş bayt üst sınırları dosya boyutunu rastgele erişim performansıyla dengeler
- Dosya aşırı yüklemesi hedefi atomik olarak değiştirmeden önce kardeş bir geçici dosyayı tamamlar; geçersiz artımlı, sürüm ve gruplama seçenekleri çıktı başlamadan önce reddedilir
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.71.0'ı tutarlı şekilde rapor ediyor
Version 2.70.0
Eklendi (Added)
TPdf.SaveAsLinearized, ilk sayfa nesne gruplaması, iki çapraz referans bölümü ve Annex F sayfa ofseti ile paylaşılan nesne ipucu tablolarını kullanarak gerçek bir Fast Web View PDF'ini akışa veya dosyaya yazar- Etkin nesne akışı üyeleri otomatik olarak somutlaştırılır; böylece xref akışı ve nesne akışı girdileri, görünür sayfa içeriğini değiştirmeden aralıklara uygun çıktıya dönüşebilir
Değiştirildi (Changed)
- Dosya aşırı yüklemesi hedefi atomik olarak değiştirmeden önce kardeş bir geçici dosyayı tamamlar; akış aşırı yüklemesi normal PDFium kaydetme seçeneklerini ve açık sürüm denetimlerini korur
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.70.0'ı tutarlı şekilde rapor ediyor
Version 2.69.0
Eklendi (Added)
TPdfRangeRequestScheduler, PDFium bayt aralığı ipuçlarını, bitişik bir indirmeye zorlamadan önceliklendirilmiş, birleştirilmiş ve boyut sınırlı taşıma işine dönüştürür- Tam ve kısmi tamamlama, sınırlı yeniden denemeler, seyrek kullanılabilirlik tekilleştirme, istek istatistikleri ve nesil güvenli iptal; HTTP Range ve özel taşıma hatlarını destekler
TPdfProgressiveDocument.RangeRequestsotomatik olarak belge, form ve sayfa ipuçlarını alır ve etkileşimli bir sayfayı engelleyen kesin baytları öne çıkarır
Değiştirildi (Changed)
CancelProgressiveLoadartık yerel kullanılabilirlik ve akış sökmesinden önce etkin aralık işini iptal ediyor; eski taşıma tamamlamaları güvenle yok sayılıyorTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.69.0'ı tutarlı şekilde rapor ediyor
Version 2.68.0
Eklendi (Added)
TPdfProgressiveDocument, uzak veya büyüyen bir rastgele erişimli akış PDFium'un istediği bayt aralıklarını alırken PDFium'un kullanılabilirlik oturumunu canlı tutarCheckDocumentAvailability,CheckFormAvailabilityveLoadAvailablePage, bir konağın doğrusallaştırılmış bir sayfayı açmak ve görüntülemek için yalnızca gereken veriyi getirebilmesi için birleştirilmişTPdfDownloadRangeipuçlarını döndürürAvailableByteCountmonoton bitişik indirmeleri destekler;OnDataAvailableseyrek ve sıra dışı aralık önbelleklerini destekler
Değiştirildi (Changed)
- Doğrusallaştırılmış dosyalar PDFium'un yerel aşamalı belge, form ve sayfa kapılarını kullanır; doğrusallaştırılmamış dosyalar, tam dosya mevcut olduktan sonra otomatik olarak yerel özel akış yükleyicisine geçer
TPdfStreamAdapter, açık 4 GiBFPDF_FILEACCESSsınırını korurken şu anda saklanan baytlardan farklı bir mantıksal son boyut açığa çıkarabilirTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.68.0'ı tutarlı şekilde rapor ediyor
Version 2.67.0
Eklendi (Added)
TPdfView.AllowFormEvents, görüntüleyicinin form doldurma katmanına ilettiği fare, klavye ve odak olaylarını kapatır; salt okunur bir görüntüleyici veya form etkileşimini kendisi yöneten bir görüntüleyici için- Kapalıyken form alanları yine normal render edilir: sayfa yükleme ve kapatma bilinçli olarak kapısız bırakılır; çünkü bunlar girdiye tepki vermek yerine form katmanını başlatır
- Bu anahtar, mevcut
AllowUserPageChangeveAllowUserTextSelectionanahtarlarına katılır ve varsayılan olarak True'dur; böylece mevcut davranış değişmez
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.67.0'ı tutarlı şekilde rapor ediyor
Version 2.66.0
Eklendi (Added)
- Bir belgenin tetiklediği adlandırılmış eylemler (ISO 32000-1 §12.6.4.11) artık yeni
OnNamedActionolayı üzerinden konağa ulaşıyor; daha önce bunların tümü atılıyordu - Ele alınmadığında dört standart gezinme adı —
NextPage,PrevPage,FirstPage,LastPage— sayfayı taşır; döngüsel davranmak yerine ilk ve son sayfada kenetlenir TPdf.PerformNamedAction, bir uygulamanın aynı davranışı doğrudan tetiklemesini sağlar; kitaplığın anlam atamadığı bir ad için False döndürür
Düzeltildi (Fixed)
- Bir şifreleme testi akış gövdesini
endstream'den geriye tarayarak ölçüyordu; bu, zaman zaman bir şifreli metin baytını satır sonlandırıcısı sanıyor ve aralıklı bir hata bildiriyordu; kitaplık baştan sona doğruydu
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.66.0'ı tutarlı şekilde rapor ediyor
Version 2.65.0
Eklendi (Added)
BuildToUnicodeCMap, bir CID yazı tipinin metninin kopyalanabilmesi, aranabilmesi ve yardımcı teknolojilerle okunabilmesi için gereken ToUnicode CMap'ini (ISO 32000-1 §9.10.3) üretir — olmadan metin doğru render edilir ama hiçbir şey olarak çıkarılır- Girdiler, belirtimin koyduğu blok başına 100 sınırında parçalara ayrılır, yinelenen glifler bir kez yazılır ve
.notdefatlanır - CMap, CID = GID kuralını izler; bu nedenle yanında bir
CIDToGIDMapakışı gerekmez
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.65.0'ı tutarlı şekilde rapor ediyor
Version 2.64.0
Eklendi (Added)
- Mürekkep ve damga ek açıklamaları kendilerini sayfa içerik akışından değil, kendi sayfa nesnelerinden çizer ve bu nesnelere artık erişilebiliyor:
AnnotationObjectCountveAnnotationObjectInfoonları okur,AddPathToAnnotationek açıklamayaCreatePathile oluşturulmuş bir yol verir veRemoveAnnotationObjectbirini siler - Bir damganın görünümünü oluşturmak artık dış bir araç gerektirmiyor: yolu her zamanki gibi oluşturun, ardından sayfaya değil ek açıklamaya verin
- PDFium sayfa nesnelerini yalnızca mürekkep ve damga alt türlerinde kabul eder; bu yüzden diğer alt türler, anlaşılmaz biçimde başarısız olmak yerine kısıtlamayı adlandıran bir iletiyle reddedilir
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.64.0'ı tutarlı şekilde rapor ediyor
Version 2.63.0
Eklendi (Added)
TPdf.AddStandardFontText, metni her PDF okuyucusunun sağlamak zorunda olduğu 14 yazı tipinden biriyle çizer ve hiçbir yazı tipi programı gömmez — elde edilen dosya, bulduğu sistem yüzünü gömenAddTextile çizilen aynı metinden ölçülebilir biçimde küçüktür- Yeni
TPdfStandardFontsabit listesi 14 yüzün tümünü adlandırır; böylece çağıran temel bir yazı tipi adını yanlış yazamaz; PDFium bu adlarla tam olarak eşleşir ve bir yazım hatası sessizce yazı tipsiz sonuç verirdi - PDF/A ve PDF/X her yazı tipinin gömülmesini gerektirir; bu profillere yönelik çıktı
AddTextkullanmaya devam etmelidir
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.63.0'ı tutarlı şekilde rapor ediyor
Version 2.62.0
Eklendi (Added)
TPdf.TextObjectGlyphOutline, metni vektör grafiğine dönüştürmek veya bir yazı tipi değişiminin değiştirmiş olabileceği bir glifi incelemek için bir metin nesnesi yazı tipinin bir glifinin dış hatlarını yol segmentleri olarak döndürür- Sonuç, mevcut
TPdfPathSegmentstürünü yeniden kullanır; böylece çizilmiş bir yol nesnesinin dış hattı gibi okunur - Koordinatlar yazı tipinin kendi tasarım uzayındadır ve bir em 1,0 olacak biçimde normalleştirilmiştir; istenen yazı tipi boyutu onları ölçeklemez, bu yüzden cihaz birimi isteyen bir çağıran nokta boyutuyla kendisi çarpar
- Boş sonuç, yazı tipinin o glif için dış hat sunmadığı anlamına gelir; bu bir hata değildir; metin olmayan bir nesnenin glifi istenirse özel durum yükselir
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.62.0'ı tutarlı şekilde rapor ediyor
Version 2.61.0
Eklendi (Added)
TPdf.InspectAvailability, bir PDF'i belge olarak yüklemeden PDFium'un hakkında söyleyebileceklerini raporlar: dosyanın doğrusallaştırılmış olup olmadığını (“web optimized”), tam bir ayrıştırmanın başarılı olup olmayacağını, form verisi taşıyıp taşımadığını ve bir görüntüleyicinin önce hangi sayfayı göstereceğini- Yeni
TPdfAvailability,TPdfLinearizationveTPdfFormAvailabilitytürleri yanıtları taşır; akış okunur ama tutulmaz ve konumu dönüşte geri yüklenir - Bu, kitaplıkta hiçbir yerde çağıranı olmayan ancak bağlanmış ve yüklenmiş olan
FPDFAvail_*ailesindeki son boşluğu kapatır - Delphi, Lazarus ve C++Builder; raporlanan bilgileri, akış konumu garantisini ve nil akış reddini her biri kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.61.0'ı tutarlı şekilde rapor ediyor
Version 2.60.0
Eklendi (Added)
- İşaretli içerik (ISO 32000-1 §14.6) artık üst düzey API'den erişilebilir:
PageObjectMarksbir sayfa nesnesinden her BDC etiketini ve özellik listesini okur,AddPageObjectMarkbir tane yazar,RemovePageObjectMarkbir tanesini siler vePageObjectMarkedContentIDMCID'yi raporlar - Yeni
TPdfContentMark,TPdfContentMarkParamveTPdfMarkParamKindtürleri etiket adını ve türü belirlenmiş parametrelerini (tam sayı, kayan nokta, dize, blob) taşır; değer türü, başarılı olan getter'dan tahmin edilmek yerine PDFium'dan çözülür - İşaret eklemek sayfa içerik akışını yeniden oluşturur; böylece etiket bir kayıtta hayatta kalır;
SaveAsiçeriği kendi başına yeniden üretmediği için bu açık olmak zorundaydı - Delphi, Lazarus ve C++Builder her biri altı testi taşıyor; bunlardan biri, BDC operatörünün ve özellik listesinin gerçekten yerleştiğini doğrulamak için kaydedilen içerik akışını şişiriyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.60.0'ı tutarlı şekilde rapor ediyor
Version 2.59.0
Eklendi (Added)
TPdfAnnotation,HasLinkUriveLinkUrikazandı; böyleceCreateAnnotationartık çalışan bir web bağlantısı üretebiliyor: ek açıklama, verilen adresi işaret eden bir/URIeylemiyle kaydediliranLinkdışındaki herhangi bir alt türe bağlantı URI'si ayarlamak özel durum yükseltir; çünkü yalnızca bir Link ek açıklaması eylem sözlüğü taşır- Alan şimdilik salt yazılır; bir bağlantı hedefini geri okumak, belge tanıtıcısını gerektiren
FPDFLink_*ailesi üzerinden yapılır - Delphi, Lazarus ve C++Builder'ın tümü, kaydedilen baytların
/URIeylemini ve hedef adresi taşıdığını doğruluyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.59.0'ı tutarlı şekilde rapor ediyor
Version 2.58.12
Eklendi (Added)
- PDF/X doğrulaması, bir sayfa
/TrimBoxve/ArtBoxbirlikte taşıdığındapvxiTrimBoxWithArtBoxraporlar; ikisi de bitmiş sayfayı belirtir, bu yüzden bir RIP hangisinin yetkili olduğunu bilemez (ISO 15930) - PDF/X doğrulaması,
/TrimBoxveya/BleedBox/MediaBox'ın dışına taştığında, negatif orijinli bir kutu dahil,pvxiPageBoxOutsideMediaBoxraporlar; ortamın ötesindeki bir kutu görüntülenemez - Dikdörtgenler karşılaştırma öncesi normalleştirilir; böylece her iki köşe sırası da kabul edilir ve ortam kenarına tam değen bir kutu yine doğrulanır
- Ön uçuş raporları her iki sorunu yapı altında sınıflandırır ve somut çareyi adlandırır
- Delphi, Lazarus ve C++Builder'ın tümü reddedilen iki durumu ve uygun olanı kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.12'yi tutarlı şekilde rapor ediyor
Version 2.58.11
Eklendi (Added)
- PDF/UA doğrulaması, bir belge TOCI girdilerini etiketleyip ait oldukları TOC kapsayıcısını hiç etiketlemediğinde
pvuaiTociWithoutTocraporlar; bu, yardımcı teknolojinin içindekiler tablosu olmayan içindekiler öğelerini duyurması demektir (ISO 14289-1 §7.7) - Ön uçuş raporları sorunu yapı altında sınıflandırır ve girdileri bir TOC öğesine sarmayı önerir
- C++Builder, Delphi ve Lazarus testlerinin yanı sıra ilk PDF/UA test kapsamını kazanıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.11'i tutarlı şekilde rapor ediyor
Version 2.58.10
Eklendi (Added)
- PDF/A doğrulaması, sembolik bir TrueType yazı tipi bir
/Encodinggirdisi taşıdığındapvaiSymbolicTrueTypeEncodingraporlar; ISO 19005-1 §6.3.7 yalnızca yazı tipinin yerleşik cmap'ini kabul eder, bu yüzden bir/Encodingbununla çelişirdi - Sembolik bayrak, yazı tipi sözlüğüne satır içi yazılmış veya dolaylı referans verilmiş olsun
/FontDescriptor'dan okunur; sembolik olmayan bir yazı tipi, işaretlenmeden gerekli/WinAnsiEncodingveya/MacRomanEncodingdeğerini korur - Ön uçuş raporları sorunu içerik altında sınıflandırır ve girdinin kaldırılmasını önerir
- Delphi ve Lazarus işaretlenen durumu ve kabul edilen iki durumu kapsıyor; C++Builder işaretlenen ve sembolik olmayan durumu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.10'u tutarlı şekilde rapor ediyor
Version 2.58.9
Eklendi (Added)
- PDF/A doğrulaması, ISO 19005-1 Annex C kapsayıcı uygulama sınırlarını raporlar: 127 bayttan uzun adlar için
pvaiNameOverLimit, 8191 öğeyi aşan diziler içinpvaiArrayOverLimit, 4095 girdiyi aşan sözlükler içinpvaiDictOverLimitve 28 iç içe yerleşim düzeyini aşan yapılar içinpvaiNestingOverLimit - Sınırlar kapsayıcıdır; bu yüzden tam bir sınırın üstünde duran kapsayıcı yine doğrulanır; testler her sınırın hem reddedilen hem kabul edilen tarafını sabitler
- Ön uçuş raporları dört sorunu yapı altında sınıflandırır ve her öneride somut sınırı adlandırır
- Delphi ve Lazarus dört sınırın tümünü ve sınır durumlarını kapsıyor; C++Builder dizi sınırını ve sınır durumunu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.9'u tutarlı şekilde rapor ediyor
Version 2.58.8
Eklendi (Added)
- PDF/R doğrulaması, görüntü sayısı sayfa sayısıyla eşleşmediğinde
pvriPageImageMismatchraporlar; ISO 23504-1 §6.5.1 her sayfayı tam olarak tek bir şerit görüntü yapar, bu yüzden görüntüsüz veya birkaç görüntülü bir sayfa uygun değildir - Delphi, Lazarus ve C++Builder testleri görüntüsüz bir sayfayı, iki görüntülü bir sayfayı ve uygun tek görüntülü durumu kapsıyor
Değiştirildi (Changed)
- PDF/R işaret enjeksiyonu testleri artık zaten bir şerit görüntüsü taşıyan bir kaynak sayfadan başlıyor; çünkü işaret enjeksiyonu meta veri ekler ve sayfa içeriği sağlayamaz
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.8'i tutarlı şekilde rapor ediyor
Version 2.58.7
Eklendi (Added)
- PDF/R doğrulaması, bir sayfa yazı tipi kaynağı adlandırdığında
pvriFontForbiddenraporlar; bir PDF/raster sayfası taranmış görüntüden başka bir şey taşımaz (ISO 23504-1 §6.5.2) - PDF/R doğrulaması, beyaz liste dışındaki şerit kodlamaları için
pvriForbiddenImageFilterraporlar; böylece/LZWDecode,/RunLengthDecode,/ASCII85Decode,/ASCIIHexDecode,/JBIG2Decodeve/Cryptreddedilirken/CCITTFaxDecode,/DCTDecode,/JPXDecodeve/FlateDecodegeçer (ISO 23504-1 §6.6) - Ön uçuş raporları her iki sorunu içerik altında sınıflandırır ve somut çareyi önerir
- Delphi, Lazarus ve C++Builder testleri bir yazı tipi kaynağını, reddedilen bir filtreyi ve yalnızca beyaz listedeki kodlamaları kullanan bir sayfayı kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.7'yi tutarlı şekilde rapor ediyor
Version 2.58.6
Eklendi (Added)
- PDF/E doğrulaması, bir belge yazı tipi kullanımı gösteriyor ama gömülü yazı tipi programı taşımıyorsa
pveiFontNotEmbeddedraporlar; böylece gereklilik, PDFium üzerinden olduğu gibi DLL'siz yolda da denetlenir - Bir mühendislik çizimi on yıllar sonra da özdeş render edilmek zorundadır; bu yüzden ISO 24517-1 standart 14 yazı tipinin hiçbirini muaf tutmaz; denetim
/Type1,/TrueType,/Type0ve/MMType1için aynı şekilde geçerlidir - Ön uçuş raporları yeni sorunu içerik altında sınıflandırır ve her yazı tipi programının gömülmesini önerir
- Delphi, Lazarus ve C++Builder testleri programsız bir tanımlayıcıyı, gömülü bir
/FontFile2dosyasını ve hiç yazı tipi kullanmayan bir belgeyi kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.6'yı tutarlı şekilde rapor ediyor
Version 2.58.5
Eklendi (Added)
InjectPdfEMarkersartık ISO 24517-1 §6.2'nin gerektirdiği output intent'i yazıyor: gömülü bir sRGB ICC hedef profili, onu adlandıran bir/GTS_PDFE1output intent'i ve katalog/OutputIntentsdizisi, tümü aynı artımlı güncellemenin parçası olarak- Profil akışı
/Ndeğerini üç bileşen varsaymak yerine ICC başlığından türetir; böylece bir CMYK profili doğru şekilde tanımlanır - PDF/E doğrulaması
pveiMissingOutputIntentvepveiMissingIccProfileraporlar; böylece belirtilmiş bir renk koşulu olmayan aday artık kabul edilmiyor - Delphi, Lazarus ve C++Builder testleri kabul edilen bir output intent'i, hedef profili olmayan birini ve hiç output intent içermeyen bir katalogu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.5'i tutarlı şekilde rapor ediyor
Version 2.58.4
Eklendi (Added)
- PDF/X doğrulaması artık
pvxiFontNotEmbeddedsorununu bir bayt taramasından raporluyor; böylece gömülmemiş bir yazı tipi yalnızca PDFium destekli denetimden değil, DLL'siz yolda da yakalanıyor - PDF/A'nın aksine standart 14 yazı tipi PDF/X'te muaf değildir; bu yüzden gömülü yazı tipi programı olmadan her yazı tipi kullanımı raporlanır
- Denetim temkinli kalır: yalnızca dosya yazı tipi kullanımı gösterdiği ama hiç
/FontFile,/FontFile2veya/FontFile3taşımadığı durumlarda tetiklenir; çünkü tanımlayıcıları programlara karşı saymak, paylaşılan tanımlayıcılarda yanlış pozitif üretir - Delphi, Lazarus ve C++Builder testleri programsız bir tanımlayıcıyı, gömülü bir programı ve hiç yazı tipi kullanmayan bir belgeyi kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.4'ü tutarlı şekilde rapor ediyor
Version 2.58.3
Eklendi (Added)
- PDF/X doğrulaması artık bir PDF/X-1a adayı
/DeviceRGB,/CalRGBveya/LabtaşıdığındapvxiColorSpaceForbiddenraporluyor; ISO 15930-1 §6.2 bunları CMYK değişiminden dışlar - Denetim yalnızca PDF/X-1a'ya bağlıdır; bu yüzden PDF/X-3 ve sonrası RGB'ye ve output intent ile eşleştirdikleri cihazdan bağımsız uzaylara izin vermeye devam eder
- Yalnızca kesin renk uzayı ad belirteçleri sınanır; bir
ICCBasedakışının/Ndeğerinin çözülmesi gerekir ve nesne modeli katmanında kalır - Delphi, Lazarus ve C++Builder testleri işaretli bir RGB uzayını, işaretli bir Lab uzayını, kabul edilen bir CMYK ve gri tonlama çiftini ve PDF/X-3'teki izin verilen durumu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.3'ü tutarlı şekilde rapor ediyor
Version 2.58.2
Eklendi (Added)
- PDF/X doğrulaması artık bir saydamlık grubu veya etkin bir yumuşak maske için
pvxiTransparencyForbiddenraporluyor; bunları ISO 15930-1 §6.2 (PDF/X-1a) ve ISO 15930-3 §6.3 (PDF/X-3) yasaklar - Denetim algılanan uygunluk düzeyine bağlıdır; bu yüzden PDF/X-4 ve PDF/X-6 saydamlığa izin vermeye devam eder ve düzeyi belirlenemeyen bir dosya, kendisine uygulanmayabilecek bir kural için asla işaretlenmez
/SMask /Noneile açıkça kapatılmış bir yumuşak maske saydamlık olarak ele alınmazPdfHasActiveSMask, her doğrulayıcının tek bir yumuşak maske kuralını paylaşabilmesi içinFPdfPdfa'danFPdfPdfCommonarayüzüne taşındı- Delphi, Lazarus ve C++Builder testleri X-1a'da işaretli bir grubu, X-3'te işaretli bir yumuşak maskeyi, devre dışı bir yumuşak maskeyi ve X-4'teki izin verilen durumu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.2'yi tutarlı şekilde rapor ediyor
Version 2.58.1
Eklendi (Added)
- PDF/X doğrulaması artık ISO 15930-7 §6.2.4'ün gerektirdiği output intent biçimini denetliyor:
pvxiOutputIntentSchememevcut ama/GTS_PDFXolmayan bir alt türü raporlar vepvxiOutputIntentMissingIdentifiereksik bir/OutputConditionIdentifierdeğerini raporlar - Alt tür tam ad belirteci olarak eşleştirilir; bu yüzden
/GTS_PDFXVersiongibi daha uzun bir ad artık geçmezken aynı adın#xxile kaçışlanmış yazımı hâlâ geçer - Hiç alt tür taşımayan bir output intent'e dokunulmaz; çünkü yokluğu zaten işaret düzeyi sorunları tarafından raporlanır
- Ön uçuş raporları her iki sorunu output intent kategorisi altına kaydeder ve düzeltmeyi önerir
- Delphi, Lazarus ve C++Builder testleri kabul edilen alt türü, bir PDF/A alt türünü, daha uzun bir ad belirtecini, eksik bir alt türü ve eksik bir koşul tanımlayıcısını kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.58.1'i tutarlı şekilde rapor ediyor
Version 2.58.0
Değiştirildi (Changed)
- PDFium'un kendi C++ çerçevelerinden çağırdığı 35 callback'in tümü (form doldurma, XFA, JavaScript platformu, aşamalı render duraklatma ve akış okuma/yazma) artık herhangi bir Pascal özel durumunu içeride tutuyor ve dil sınırı boyunca geri sarmak yerine belgelenmiş hata değerini döndürüyor
- Bu nedenle özel durum yükselten bir olay işleyicisi, başarısız bir bellek ayırma veya callback içinde beklenmeyen bir hata, süreci çökertemiyor veya PDFium'u tanımsız bir durumda bırakamıyor
Düzeltildi (Fixed)
- Bir form zamanlayıcısı kaydı, temel zamanlayıcı oluşturulamadığında girdisini sızdırıyordu
Eklendi (Added)
- Delphi, Lazarus ve C++Builder testleri artık yazmayı reddeden bir hedef akışa kaydetmeyi kapsıyor ve belgenin sonrasında kullanılabilir ve kaydedilebilir kaldığını doğruluyor
Version 2.57.8
Düzeltildi (Fixed)
- Daha eski Delphi sürümleri (XE5 ve öncesi), bu derleyicilerle gelen Windows unit'i sembolü dışa aktarmadığı için deneme kitaplığını
FPdfPades.pasiçindeE2003 Undeclared identifier: 'GetTickCount64'hatasıyla derlemeyi durduruyordu - Aynı derleyiciler
PDFium.pasiçindekiGetUserDefaultLocaleNameveGetXfaFormPacketsiçindekiTBytes->array of Byteatamasında da başarısız oluyordu; bu yüzden XFA yerel ayar callback'i ve paket anlık görüntüsü artık o derleyicilerde de derleniyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.8'i tutarlı şekilde rapor ediyor
Version 2.57.7
Değiştirildi (Changed)
- Her kaydetme tarafı yeniden yazımı artık hedef akışı yalnızca başa sarmak yerine yazmadan önce kesiyor; böylece daha uzun bir belgeyi zaten tutan, çağıran tarafından sağlanan bir tampon yeni
%%EOF'un ardından eski bir kuyruk tutamıyor - Delphi, Lazarus ve C++Builder testleri artık önceden doldurulmuş bir akışa kaydetmeyi kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.7'yi tutarlı şekilde rapor ediyor
Version 2.57.6
Düzeltildi (Fixed)
- Şifrelemeden önce gelen nesne taraması her uzunlukta rakam dizisini kabul ediyordu; bu yüzden dosyanın herhangi bir yerindeki uzun bir sayı negatif veya uydurma bir nesne numarasına dönüşüp yeniden oluşturulan çapraz referans tablosuna hayalet bir girdi ekleyebiliyordu
- ISO 32000-1 Annex C sınırının üstündeki nesne numaraları ve 65535'in üstündeki üretimler artık kesilmek yerine nesne başlıkları olarak reddediliyor
Eklendi (Added)
- Delphi, Lazarus ve C++Builder testleri artık yeniden oluşturulan tablonun kesin kullanımdaki girdi sayısını doğruluyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.6'yı tutarlı şekilde rapor ediyor
Version 2.57.5
Düzeltildi (Fixed)
EncryptMetadata = Falseile şifreleme, Encrypt sözlüğüne/EncryptMetadata falseyazıyordu ama belge meta veri akışını yine şifreliyordu; bu yüzden o bildirimi izleyen bir okuyucu okunamaz XMP buluyordu- Meta veri şifrelemesi kapatıldığında bir
/Type /Metadataakışı artık değişmeden kopyalanıyor; diğer tüm akışlar ise hâlâ şifreleniyor
Eklendi (Added)
AnsiNameTokenMatchesKeyartık sınırlayıcı farkında ad karşılaştırmaları içinFPdfPdfCommonarayüzünün parçası- Delphi, Lazarus ve C++Builder testleri artık her iki meta veri şifreleme modunu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.5'i tutarlı şekilde rapor ediyor
Version 2.57.4
Düzeltildi (Fixed)
- Şifrelenirken yeniden oluşturulan çapraz referans tablosu, ISO 32000-1 §7.5.4'ün gerektirdiği zorunlu 0 numaralı nesne serbest liste başını atlıyordu; bu yüzden ilk alt bölüm bir nesne geç başlıyordu
- Yeniden oluşturulan her girdi üretim 0 bildiriyordu; daha yüksek bir üretimle yazılan nesneler artık onu koruyor, böylece tablo işaret ettiği nesne başlıklarıyla uyuşuyor
Eklendi (Added)
- Delphi, Lazarus ve C++Builder testleri artık yeniden oluşturulan tablodaki serbest liste başı girdisini ve üretim korunumunu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.4'ü tutarlı şekilde rapor ediyor
Version 2.57.3
Düzeltildi (Fixed)
- Şifreli çıktı her akış nesnesinin
streamanahtar sözcüğünü düşürüyordu; bu yüzden kaydedilen dosya artık geçerli PDF sözdizimi değildi ve katı okuyucular sayfa içeriğini ne akış ne de akış dizisi olarak bildiriyordu /Lengthyeniden yazımı/Length'i düz bir alt dize olarak eşleştiriyordu; bu yüzden/Length1taşıyan bir akış sözlüğü (herhangi bir gömülü yazı tipi) anahtar adı bozulmuş şekilde kalıyor ve gerçek uzunluk eski kalıyordu- Uzunluğunu dolaylı olarak
/Length N 0 Rile bildiren bir akışın nesne numarası yeni uzunlukla üzerine yazılıyordu; girdi artık doğrudan şifreli uzunlukla değiştiriliyor - Hiç
/Lengthtaşımayan bir akış sözlüğü artık okuyucuyu uzunluksuz bırakmak yerine bir tane alıyor
Eklendi (Added)
AnsiFindDictKeyTokenartık üst düzey, sınırlayıcı farkında sözlük anahtarı aramaları içinFPdfPdfCommonarayüzünün parçası- Delphi, Lazarus ve C++Builder testleri artık
/Length1korunumunu, dolaylı uzunluk değişimini ve akış gövdesi boyut uyumunu kapsıyor
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.3'ü tutarlı şekilde rapor ediyor
Version 2.57.2
Düzeltildi (Fixed)
SaveAsEncryptedveSaveAsEncryptedToStream,Revision = erR6ile kabaca dört dosyadan birinde kendi doğru parolasını reddeden belgeler üretiyordu; çünkü ISO 32000-2 §7.6.4.3 algoritma 2.B tur sayacı bir tur düşük başlıyor ve fazladan tur/U,/O,/UEve/OEdeğerlerini değiştiriyordu- R6 ile şifrelenmiş belgeler artık herhangi bir uyumlu okuyucuda kullanıcı veya sahip parolasıyla yeniden açılıyor ve yanlış parolayı hâlâ reddediyor
Eklendi (Added)
- Lazarus ve C++Builder test paketleri, daha önce yalnızca Delphi'de olan şifreleme kapsamını kazandı: R6 anahtar uzunlukları, Encrypt sözlük alanları, yinelenen şifrele ve yeniden açma gidiş dönüşü ve yanlış parola reddi
Değiştirildi (Changed)
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.2'yi tutarlı şekilde rapor ediyor
Version 2.57.1
Değiştirildi (Changed)
- Bir form alanına yazma, imleci taşıma ve onay kutularını değiştirme artık tüm görüntüleyici yerine yalnızca PDFium'un hasarlı bildirdiği alanı yeniden boyuyor
- Hasar kutuları yukarı yönlü sayfa Y ekseni için normalleştirilir, kenarları yumuşatılmış widget kenarlıklarının temiz kalması için bir piksel genişletilir ve görünür istemci alanına kırpılır
- Görünüm alanından tamamen çıkmış bir hasar kutusu artık yeniden boyama planlamıyor; etkin olmayan bir görünüm veya eşlenmemiş bir sayfa ise yine tam yeniden boyamaya düşüyor
- Delphi, Lazarus ve C++Builder testleri artık sınırlı form geçersiz kılmayı, çevrilmiş sayfa kutularını, ekran dışı kutuları ve etkin olmayan görünüm güvenliğini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.1'i tutarlı şekilde rapor ediyor
Version 2.57.0
Eklendi (Added)
TPdfThumbnailView.Orientation, mevcut dikey varsayılanı korurken dikey ve yatay küçük resim düzenlerini desteklerFirstVisiblePageIndex,LastVisiblePageIndexveEnsureCurrentPageVisible, bir tabanlı sayfa indeksleriyle küçük resim görünüm alanını açığa çıkarır ve denetler
Değiştirildi (Changed)
CurrentPageIndexdeğiştirildiğinde artık seçilen küçük resmi her iki yönde de görünüme kaydırıyor- Delphi, Lazarus ve C++Builder testleri artık yönelim varsayılanlarını, geçişleri, görünür aralıkları ve seçili sayfa görünürlüğünü kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.57.0'i tutarlı şekilde rapor ediyor
Version 2.56.2
Değiştirildi (Changed)
HighlightSearchText,AddSearchTextHighlightveClearHighlightartık tüm görüntüleyiciyi yeniden boyamak yerine yalnızca eklenen veya kaldırılan arama aralıkları için cihaz dikdörtgenlerini geçersiz kılıyor- Aynı eşleşmelerle vurguları değiştirmek veya yinelenen eşleşmeler eklemek artık gereksiz bir yeniden boyama zamanlamıyor
- Delphi, Lazarus ve C++Builder testleri artık sınırlı geçersiz kılmayı, eşgüçlü güncellemeleri, temizlemeyi ve etkin olmayan görünüm güvenliğini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.56.2'yi tutarlı şekilde rapor ediyor
Version 2.56.1
Değiştirildi (Changed)
TPdfThumbnailViewartık yeniden boyamalar ve bitişik kaydırma konumları boyunca görünür kalan sayfalar için işlenmiş bitmap'leri yeniden kullanıyor- Önbellek yalnızca geçerli görünür sayfa aralığını tutuyor ve sayfalar o aralıktan çıktığında, atanan belge değiştiğinde veya küçük resim boyutları değiştiğinde girdileri tam olarak serbest bırakıyor
- Delphi, Lazarus ve C++Builder testleri artık önbellek yeniden kullanımını, görünüm alanı budamasını, boyut geçersiz kılmayı, belge değişimini ve bileşen yok edilmesini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.56.1'i tutarlı şekilde rapor ediyor
Version 2.56.0
Eklendi (Added)
TPdfView.CutSelectedFormTextToClipboardveTPdfView.PasteFormTextFromClipboard, odaklanmış düzenlenebilir form widget'ı için Unicode pano düzenlemesi sağlar
Değiştirildi (Changed)
- Odaklanmış form düzenleyicileri artık metin girişini PDFium'a iletmeden önce standart kopyala, kes, yapıştır ve tümünü seç klavye kısayollarını işliyor
- Kes ve yapıştır, salt okunur alanları ile form doldurma veya değiştirme izni olmayan oturumları reddediyor; kes ise seçili metni kaldırmadan önce başarıyla kopyalıyor
- Delphi, Lazarus ve C++Builder testleri artık odak yok, kısayol gidiş-dönüşü ve salt okunur reddi davranışını kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.56.0'ı tutarlı şekilde rapor ediyor
Version 2.55.0
Eklendi (Added)
TPdfView.AddSearchTextHighlight, başka bir arama terimi için benzersiz eşleşmeleri geçerli sayfa yerpaylaşımına ekleyerek çeşitli sorguların birlikte vurgulanmış kalmasına izin veriyor
Değiştirildi (Changed)
HighlightSearchTextyine değiştirme giriş noktasıdır ve artık eklemeli tarayıcıyı paylaşıyor; yinelenen karakter aralıkları yok sayılıyor veClearHighlightbirikmiş kümenin tamamını kaldırıyor- Delphi, Lazarus ve C++Builder testleri artık ayrı sorgu birikimini ve yinelenen aralık baskılanmasını kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.55.0'ı tutarlı şekilde rapor ediyor
Version 2.54.0
Eklendi (Added)
TPdfartık tam sayfa nesnesi anlık görüntülerini, toplu stil güncellemelerini, afin nesne dönüşümlerini, yol segmentlerini, kırpma yollarını ve Form XObject alt öğelerini açığa çıkarıyor- Karakter incelemesi artık dolgu ve vuruş renklerini, yazı tipi adını ve bayraklarını, gevşek glif sınırlarını, etkili matrisleri, metin nesnesi tutamaçlarını ve karakterden metne indeks dönüşümünü içeriyor
- Ek açıklamalar artık kenarlık geometrisini ile normal, üzerinden geçme ve aşaı görünüm akışlarını gidiş-dönüşlü işliyor
- Yeni ham ve çözülmüş küçük resim erişimcileri, sayfa içeriği ve ek açıklama dönüşümleri ile
RenderPageWithMatrix, doğrudan gelişmiş işleme ve düzenleme yolları sağlıyor
Değiştirildi (Changed)
- Sayfa nesnesi stil değişiklikleri tek bir toplu iş olarak işlenebilir böylece PDFium sayfa içeriğini yalnızca bir kez yeniden üretir
- Hedef bitmap düzeni uyumlu olduğunda matris işleme, mevcut sıfır kopyalı bitmap yolunu kullanıyor
Version 2.53.1
Düzeltildi (Fixed)
- Yerleşik Çince kopya menü başlığı artık kodlamadan bağımsız Unicode kod noktaları kullanıyor ve Lazarus yapılarında doğru görüntüleniyor
- Eski Delphi araç zincirleri,
Winapi.WindowsbirimleriGetTickCount64bildirimini atladığında bileFPdfAsync'i derleyebiliyor
Version 2.53.0
Eklendi (Added)
- Daha önce uçtan uca test kapsamı olmayan genel TPdf API'lerini kapsayan yeni
Tests.ApiCoveragetest armatı:GetPageBox/SetPageBox(MediaBox/CropBox okuma/yazma, eksik kutu hataları ve kaydetme gidiş-dönüşü),FlattenPage/FlattenAllPages(dönüş değeri ve sayfa sayısı koruması),GenerateFormAppearances(form olmayan belgelerde işlem yok),SaveAsEncrypted/SaveAsEncryptedToStream(parola gidiş-dönüşlü AES-256 — şifreli dosyanın parola olmadan açılmayı reddettiğini ve parolayla açıldığını doğrular),DeletePagesınır doğrulaması (0. sayfa ve aralık dışıEPdfErroryükseltir) ve v2.38.0'da tanıtılanHasContents/HasAuthorek açıklama nöbetçileri (Default(TPdfAnnotation)'ın bunlarıFalsebıraktığını doğrular)
Version 2.52.0
Eklendi (Added)
TPdfView.CopySelectedFormTextToClipboard, odaklanmış AcroForm widget'ı içindeki metin seçimini Windows panosunaCF_UNICODETEXTolarak kopyalıyor
Değiştirildi (Changed)
- Sayfa metni ve odaklanmış form kopyalama işlemleri artık aynı savunmacı Unicode pano yazıcısını paylaşıyor ve seçimleri boş olduğunda panoyu değiştirmeden bırakıyor
- Delphi, Lazarus ve C++Builder testleri artık etkin olmayan veya odaklanmamış form kopyalama çağrılarını ve Windows panosu üzerinden odaklanmış form seçimi gidiş-dönüşünü kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.52.0'ı tutarlı şekilde rapor ediyor
Version 2.51.0
Eklendi (Added)
TPdfView.SelectLineAt, fare girişi gerektirmeden bir tabanlı bir sayfa ve sıfır tabanlı bir karakter indeksi içeren görsel metin satırını seçiyor
Değiştirildi (Changed)
- Programatik satır seçimi, üçlü tıklama seçimi ve
Shift+HomeveyaShift+Endartık tek bir karakter kutusu satır sınırı modelini paylaşıyor - Delphi, Lazarus ve C++Builder testleri artık kararlı satır seçimini ile geçersiz sayfa veya karakter indekslerini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.51.0'ı tutarlı şekilde rapor ediyor
Version 2.50.0
Eklendi (Added)
TPdf.LoadDocumentartık birTBytestamponuna sıfır tabanlıIndexveCountpenceresi kabul ediyor; böylece gömülü PDF'ler geçici bayt dizisi dilimi ayırmadan yüklenebiliyor
Değiştirildi (Changed)
- Bayt aralığı yükleme, belge durumunu değiştirmeden önce negatif veya sınırlar dışı pencereleri reddediyor ve mevcut arabelleğe alınmış ve ödünç alınmış arabellek ömrü seçeneklerini koruyor
- Delphi, Lazarus ve C++Builder testleri artık gömülü PDF pencerelerini ve geçersiz bayt aralığı bağımsız değişkenlerini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.50.0'ı tutarlı şekilde rapor ediyor
Version 2.49.1
Eklendi (Added)
TPdfView.FitModeartıkpfmFitHeight'ı destekliyor; geçerli sayfayı görünür görünüm alanı yüksekliğine uydururken gerektiğinde yatay kaydırmaya izin verir
Düzeltildi (Fixed)
- Uydurma modları artık kaydırma çubuğu görünürlüğü istemci alanını değiştirdikten sonra yakınsıyor; fit-page, fit-width ve fit-height sonuçlarını VCL ile LCL arasında tutarlı tutuyor
- Delphi, Lazarus ve C++Builder görüntüleyici testleri artık
pfmFitHeightseçimini ve numaralandırma gidiş-dönüşlerini kapsıyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.49.1'i tutarlı şekilde rapor ediyor
Version 2.49.0
Eklendi (Added)
- Genel PDFium bağlama yüzeyi artık gözden geçirilmiş başlıklardaki tüm 470 dışa aktarılan işlevi kapsıyor;
FPDFAttachment_SetDescriptionveFPDFAttachment_GetDescriptionaracılığıyla ek açıklamalarına erişimi içerir TPdfartık ek açıklamalarını, çapraz referans geçerliliğini, trailer sonu ofsetlerini, security-handler revizyonunu, 64-bit bellek yüklemesini, imza bayt aralıklarını, web bağlantısı metin aralıklarını ve genişletilmiş görüntü verisi, filtre, meta veri ve ICC profili anlık görüntülerini açığa çıkarıyor- Form yardımcıları artık nativ alan odağını, odaklanmış seçim seçeneği sorgularını ve güncellemelerini, fare tekerleği ileticiliğini, yazılabilir mürekkep darbelerini ve aşamalı işlemeden sonra form yerpaylaşımlarını destekliyor
Değiştirildi (Changed)
FormFieldCount, form alan dizinleri ve sekme sırası artık ilgili olmayan sayfa ek açıklamalarını dahil etmek yerine yalnızca widget ek açıklamalarını açıklıyor- Başlıksız
TPdfsayfaları artık form-doldurma sayfa yaşam döngüsüne giriyor ve çıkıyor; böylece nativ odak ve odaklı alan API'leri birTPdfViewolmadan çalışıyor - Ek açıklaması dışa aktarımları yeteneklerle sınırlandırılıyor; böylece daha eski bir PDFium yapısı kullanan uygulamalar kitaplığı yükleyebiliyor ve kullanılamayan özelliği algılayabiliyor
Düzeltildi (Fixed)
- Aşamalı sayfa işleme artık form doldurma etkinleştirildiğinde form denetimlerini boyuyor
- Delphi, Lazarus ve C++Builder testleri artık yeni belge tanılamalarını, ek açıklamalarını, mürekkep yollarını, form davranışını, imza bayt aralıklarını, web bağlantısı aralıklarını ve görüntü meta verilerini kapsıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.49.0'ı tutarlı şekilde rapor ediyor
Version 2.48.0
Eklendi (Added)
TPdfMatrixartık fabrikaları, klonlamayı ve atamayı, sonlu-durum ve terslenebilirlik tanılamalarını, tolerans temelli karşılaştırmayı, çeviri erişimini, determinant raporlamasını ve afin ayrıştırmayı açığa çıkarıyor- Prepend bileşimi, pivot farkında döndürme, ölçekleme, eğrilme ve çevirmeler, ayrıca stretch, contain ve cover dikdörtgen eşlemesi manuel katsayı aritmetiği olmadan yerel-uzay ve uydurulmuş düzen iş akışlarını destekliyor
- Mutasyona uğramayan ters erişim, ters nokta eşlemesi, vektör ve dörtgen dönüşümleri, dinamik nokta ve dikdörtgen toplu işlemleri, yerinde varyantlar ve tek geçişli dönüştürülmüş sınırlar yeniden kullanılabilir geometri yüzeyini genişletiyor
Değiştirildi (Changed)
- Çeviri, ölçekleme ve eksen çevirmeleri artık genel afin çarpma üzerinden yönlendirmek yerine yalnızca etkilenen katsayıları güncelliyor
- Dikdörtgen dönüşümü girdisini bir kez normalleştiriyor, mümkün olduğunda uzmanlaşmış tam eksen hizalı yol kullanıyor ve geçici nokta kayıtları olmadan genel döndürülmüş sınırları hesaplıyor
- Nokta ve dikdörtgen toplu dönüşümleri bir sonuç dizisi ayırıyor veya çağıran depolamayı yeniden kullanırken, dönüştürülmüş nokta sınırları bir ara dizi olmadan tek geçişte biriktiriliyor
Düzeltildi (Fixed)
- Dikdörtgen eşleme, kullanılamaz bir matris yayınlamadan önce sıfır boyutlu, sonlu olmayan ve
Singletaşan sonuçları reddediyor - Delphi, Lazarus ve C++Builder testleri artık bileşim sırasını, pivot invaryantlarını, ters gidiş-dönüşleri, uydurulmuş dikdörtgenleri, ayrıştırmayı ve toplu geometri davranışını doğruluyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.48.0'ı tutarlı şekilde rapor ediyor
Version 2.47.0
Eklendi (Added)
FPdfAsyncartık özgün API'yi koruyan genişletilmiş arabirimler aracılığıyla yapılandırılmış iptal nedenleri ve iletileri, çıkarılabilir geri çağırma kayıtları, zaman aşımı temelli kaynaklar, iptal bekleme ve atomik try-cancel işlemleri sağlıyorTPdfFuture<T>.RunExyapılandırılabilir yanıt dağıtımı ve çalışan önceliği eklerken sonuç zarfları işlem kimliklerini, değer geçerliliğini, özel durum sınıf adlarını, tamamlanma zamanlamasını ve yeniden kullanılabilir tamamlanma yardımcılarını açığa çıkarıyorTPdfAsyncExecutordört FIFO öncelik şeridi, isteğe bağlı sınırlı-kuyruk geri basıncı, iptal edilebilir görev tutamaçları, zaman aşımı farkında bekleme, görev anlık görüntüleri, toplu istatistikler ve zarif kapatma ile yeniden kullanılabilir sabit çalışan havuzu ekliyor
Değiştirildi (Changed)
- Yinelenen asynchronous işler her görev için bir iş parçacığı oluşturmak yerine çalışan iş parçacıklarını ve O(1) kuyruk işlemlerini yeniden kullanabilirken, senkronize tamamlanma UI konakları için kullanılabilir kalıyor
- Yürütücü ve future hataları özel durum sınıf ve ileti tanılamalarını koruyor, iptal özgün nedenini koruyor ve geri çağırma özel durumları çalışan yaşam döngüsü ve kapatmadan yalıtılmış kalıyor
- Delphi, Lazarus ve C++Builder testleri artık genişletilmiş iptal, future meta verileri, görev denetimi, geri basınç, öncelik sıralaması, istatistikler, hata ve kapatma yüzeyini kapsıyor
Düzeltildi (Fixed)
- Eşzamanlı iptal sahipleri artık ayrı gözlem ve iptal dizisine güvenmek yerine belirleyici ilk-yazan sonucu alıyor
- Ana iş parçacığı boşta bekleme senkronize görev yanıtlarını işliyor; eşgüdümlü kapatma sırasında tamamlanan bir çalışanın yürütücüyü kalıcı olarak boşta-olmayan durumda bırakmasını önlüyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.47.0'ı tutarlı şekilde rapor ediyor
Version 2.46.0
Eklendi (Added)
FPdfAsn1artık tanımlayıcı sınıfları, 64-bit high-tag-number kodlamasını ve çözümlemesini, ayrıştırılmış TLV kayıtlarını, sıfır-kopya alt-okuyucu pencerelerini, tiplenmiş ilkel çözücüleri ve içerik veya kodlanmış değer dilimlerini açığa çıkarıyor- DER yazıcılar artık tam imzasız 64-bit INTEGER aralığını, doğrulanmış keyfi INTEGER içeriğini, ENUMERATED'i, otomatik UTCTime veya GeneralizedTime seçimini, application ve private etiketlerini, çok değerli SEQUENCE'i ve kanonik olarak sıralanmış SET OF çıktısını destekliyor
ValidateDeryapılandırılabilir iç içe yerleştirme, düğüm sayısı, içerik uzunluğu, hata sayısı, kök ve isteğe bağlı SET sıralama sınırlarını uygularken ofset farkında doğrulama hataları döndürüyor
Değiştirildi (Changed)
- DER bitiştirme ve çok değerli bileşim bir çıktı ayırması kullanıyor, yazıcı arabellekleri reserve, count, capacity ve sahiplik aktarımı işlemlerini açığa çıkarıyor ve SET OF sıralaması artık
O(n log n)birleştirme sıralaması kullanıyor - BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime ve GeneralizedTime değerleri kodlama, tiplenmiş çözümleme veya doğrulama sırasında kanonik biçim denetimleri alıyor
- Lazarus çalışma-zamanı paketi artık
FPdfAsn1'i dışa aktarıyor ve Delphi, Lazarus ve C++Builder test setleri aynı genel DER yüzeyini çalıştırıyor
Düzeltildi (Fixed)
- 30'dan büyük bağlama özgü etiket numaraları artık tanımlayıcının düşük beş bitine kısaltılmıyor
- Bozuk high-tag tanımlayıcıları, asgari olmayan kesin uzunluklar, geçersiz UTF-8, sıfır olmayan BIT STRING dolgusu, geçersiz zaman alanları, sondaki kökler ve kaynak sınırı ihlalleri belirleyici olarak reddediliyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.46.0'ı tutarlı şekilde rapor ediyor
Version 2.45.0
Eklendi (Added)
FPdfPreflightReportartık her soruna Info, Warning veya Error önem atıyor ve standart ve rapor düzeyinde önem, durum, kategori, sorun kodu, arama, search, düzleştirme ve süzme API'lerini açığa çıkarıyor- Preflight raporları artık CI, otomasyon ve akış boru hatları için eşleşen
To*veSave*ToFileyöntemleri aracılığıyla SARIF 2.1.0, JUnit XML, NDJSON ve doğal XML dışa aktarıyor - Kararlı SHA-256 rapor parmak izleri kaynak yolları ve üretim zaman damgalarından bağımsız olarak eşdeğer doğrulama sonuçlarını tanımlıyor
Değiştirildi (Changed)
- JSON, CSV, text, Markdown ve HTML raporları artık önem ve genişletilmiş durum özetlerini içeriyor; HTML erişilebilir tablo başlıkları ve bir durum özeti ekliyor
- Sorun ve standart koleksiyon yapımı geometrik kapasite büyümesi kullanıyor, sorgu sonuçları önceden boyutlandırılıyor, JSON kaçıntısı tek sınırlı çıktı arabelleğine yazıyor ve tüm rapor dosyaları tek doğrudan UTF-8 yazıcı kullanıyor
- Sorun kategorisi özetleri belirleyici sıralama kullanıyor, zaman damgaları milisaniye içeriyor, JSON
formatVersion: 2taşıyor ve CSV hücreleri电子 tablo formüllerini nötralize ediyor
Düzeltildi (Fixed)
- JSON dışa aktarımı artık geçerli tamamlayıcı Unicode çiftlerini koruyor ve bozuk skaler veriler yayınlamak yerine izole UTF-16 yedek kod birimlerini değiştiriyor
- HTML dışa aktarımı artık kesme işaretlerini kaçışlıyor ve süzülmüş rapor görünümleri paylaşılabilir değiştirilebilir sonuç depolamayı paylaşmak yerine bağımsız sorun dizilerine sahip
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici meta verileri artık Version 2.45.0'ı tutarlı şekilde rapor ediyor
Version 2.44.0
Eklendi (Added)
- Yer imleri ve hedefler açık durumu, alt öğe sayılarını, eylem hedeflerini, hedef görünüm modlarını ve dört adete kadar görünüm parametresini ortaya çıkarır
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionveUserHasPermission, türlendirilmiş belge inceleme anlık görüntüleri ve izin sorguları sağlarExtractThumbnail(PageNumber)istenen bir sayfayı etkin sayfayı değiştirmeden işler ve RFC 3161 zaman damgası sonuçları ilke, üretim zamanı ve nonce ayrıntılarını ortaya çıkarır
Değiştirildi (Changed)
- Yer imi, JavaScript, meta veri, hedef ve küçük resim yolları doğrulanmış iki geçişli arabellekler, geometrik koleksiyon büyümesi ve döngü güvenli geçişi kullanır
- Kaydetme son işleme adımı, etkin kataloğu, sayfa ağacını ve açık eylemi geçerli xref revizyonu üzerinden çözer, çözülmüş nesne akışlarını önbelleğe alır ve PDF sözlüklerini sözcüksel sınırlarla tarar
- Paylaşılan PDF ayrıştırması artık tam nesne üstbilgilerini, kuşakları, sözlük anahtarlarını, akış uzunluklarını, tahmin geometrisini, tamsayı aralıklarını ve yorum, değişmez dize ve onaltılık dize sınırlarını uygular
- RFC 3161 yanıt doğrulaması artık hem nonce hem de SHA-256
messageImprintdeğerini bağlar, yapısal olarak geçerli bir imzalayan gerektirir ve katı DER uzunluk, OID, INTEGER ve GeneralizedTime kurallarını uygular
Düzeltildi (Fixed)
- Artımlı belgeler artık varsayılan bir açık eylem eklenirken etkin olmayan yinelenen katalogları veya hatalı biçimlendirilmiş referans soneklerini seçmez
- Uzun biçimli DER uzunluklarına sahip zaman damgası belirteçleri eksiksiz kodlanmış belirteci korurken, hatalı biçimlendirilmiş CMS isteğe bağlı alan sıralaması ve boş imzalayan kümeleri reddedilir
- Temiz Delphi derlemeleri artık PAdES nonce tohum alanlarını hizalamalı güvenli bayt kopyalarıyla yazar ve XFA yanıt baytlarını tam yerel gösterici türüyle geçirir
TPdf.AboutInfo, Lazarus paket meta verisi ve yükleyici meta verisi artık Version 2.44.0'ı tutarlı şekilde raporluyor
Version 2.43.0
Eklendi (Added)
- XFDF alan ve ek açıklama kayıtları artık atlanmış bir XML değerini açıkça boş bir değerden ayırt eden varlık bayraklarını ortaya çıkarır
Değiştirildi (Changed)
- XFDF içe aktarımı ad alanı önekli öğeleri ve öznitelikleri, karışık metin ve CDATA içeriğini, varlık referanslarını ve boşluk anlamlı değerleri kabul ederken geçersiz Unicode skaler referanslarını reddeder
- XFDF içe ve dışa aktarımı dizine dayalı alan eşleştirme ve sınırlı geometrik arabellekler kullanır; bu, derin iç içe geçmiş formlar, büyük ek açıklama koleksiyonları, mürekkep listeleri, köşeler ve işaretleme dörtgenleri için verimliliği ve tepe bellek ayırma davranışını iyileştirir
- PDF/A ve PDF/UA doğrulaması büyük sayfa, akış, yapı adı ve RoleMap koleksiyonları için sınırlı büyüme kullanır; PDF/UA RoleMap çözümlemesi artık doğrudan dizileri ve tam kuşaklı dolaylı ad veya dizi nesnelerini izler
Düzeltildi (Fixed)
- XFDF gidiş-dönüşleri artık derin iç içe geçmiş alan yollarını, açıkça boş alan değerlerini, açıkça boş ek açıklama içeriklerini ve absent ve boş içerik arasındaki ayrımı korur
- Geçersiz bellek arabelleği yüklemeleri ve aralık dışı sayfa atamaları kısmi belge veya sayfa durumu bırakmadan reddedilir ve başarısız bir yerel sayfa yeniden yüklemesi daha önce etkin olan sayfayı korur
- Büyük işaretli içerik tanımlayıcıları ve imza meta veri arabellekleri, ayırma veya yerel erişimden önce sınırlanır ve doğrulanır
Version 2.42.0
Eklendi (Added)
TPdfMatrixartık koordinat eşleme, isabet testi, normalleştirilmiş sınırlar ve açık tekil-matris işleme içinInvert,TryInvert,TransformPointveTransformRectsağlarTPdf.WrapText, CJK ve boşluksuz diğer metinleri bölen ancak geçerli UTF-16 vekil çiftlerini bir arada tutan birBreakLongWordsaşırı yüklemesi kazandıTPdfAnnotation.AttachmentPointSetsçok satırlı işaretleme ek açıklamalarındaki her dörtgeni ortaya çıkarırken mevcutAttachmentPointsalanı ilk küme için bir diğer ad olarak kalır
Değiştirildi (Changed)
- Metin ayıklama, okunabilir içerik oluşturma, kelime arama ve sözlü metin ofset eşlemesi artık sınırlı ayırma ve ikili arama yolları kullanır; bu, büyük sayfalarda yinelenen ayırmaları ve doğrusal taramaları azaltır
- ASN.1 serileştirme ve şifreli PDF üretimi artık geometrik çıktı arabellekleri kullanır; şifreli nesne sıralaması
O(n log n)sıralaması kullanır ve xref satırları doğrudan son arabelleğe yazılır WrapTextCR, LF ve CRLF satır sınırlarını korur ve tüm işlem için tek bir yerel ölçüm nesnesini yeniden kullanır- XFDF içe ve dışa aktarımı her işaretleme dörtgenini korur; içe aktarım ayrıca RGB/iç renkleri uygular ve ondalık koordinatları işlem yerel ayarından bağımsız olarak ayrıştırır
Düzeltildi (Fixed)
- Eski çağıranlar, yeni
HasContentsveHasAuthorkoruyucularını ayarlamadan boş olmayan dizeler atayarak ek açıklama içeriğini ve yazarını tekrar güncelleyebilir - Açıkça boş ek açıklama dizeleri artık geçerli bir sıfır sonlandırmalı yerel arabellek kullanır, böylece
/Contents,/Tve diğer isteğe bağlı metin anahtarlarının temizlenmesi artık PDFium'a nil bir gösterici geçirmez
Version 2.41.0
Değiştirildi (Changed)
- Preflight raporu
SaveJsonToFile,SaveMarkdownToFileveSaveTextToFileartık Delphi üzerinde, sistem ANSI kod sayfası yerine (mevcutSaveHtmlToFileile eşleşecek şekilde) UTF-8 yazar; bu yöntemler aracılığıyla kaydedildiğinde dosya yolları, öneriler ve kapsam notlarındaki ASCII olmayan karakterler Delphi üzerinde bozuluyordu SaveCsvToFileartık UTF-8'i bir BOM öneki ile yazar, böylece Excel for Windows kodlamayı otomatik olarak algılar; BOM olmadan, Excel bir UTF-8 CSV'yi code-page 1252 olarak ele alır ve ASCII olmayan karakterleri bozar
Düzeltildi (Fixed)
- Form, önce açıkça temizlenmeden kapatıldığında,
ExtractImagesdemosuFExtractedImagesiçindeki önbelleğe alınmışTBitmapnesnelerini sızdırıyordu; form artık tüm önbelleğe alınmış bitmap'leri serbest bırakarakClearExtractedImages'ı çağırmak içinDestroy'u geçersiz kılar (overrides)
Version 2.40.0
Değiştirildi (Changed)
TPdf.RenderPage(HDC, ...)artıkTPdfView.RenderPage(HDC)(v2.25.0 sürümünde düzeltildi) ve bitmap döndüren her işleme giriş noktasıyla eşleşecek şekilde,FPDF_RenderPageçağrısı etrafındaki FPU/SSE istisnalarını maskeler;TPdfseviyesindeki direct-to-DC aşırı yüklemesi daha önce pre-D12 derleyicilerinde FPU istisnalarını maskelenmemiş olarak bırakıyordu
Düzeltildi (Fixed)
ColorToARGBartık koruma değerini değişmez bir RGB rengi olarak ele almak yerine,clNoneveclDefaultiçin tamamen şeffaf bir piksel (alfa 0) döndürür; önceki davranış, bir çağırıcı “renk yok” bekleyerekclNoneilettiğinde koyu, neredeyse opak bir dolgu üretiyordu
Version 2.39.1
Düzeltildi (Fixed)
- Açık PDF 1.3 kaydetmeleri artık varsayılan olmayan saydamlık durumunu reddetmeye devam ederken, yalnızca başlangıç grafik durumunu tekrarlayan
/SMask /None,/AIS falseve/TK truegirişlerini kaldırır
Version 2.39.0
Değiştirildi (Changed)
CreatePDFveImageToPDFartık doğrulanmış kaydetme hedeflerini kullanır ve yalnızcaSaveAsbaşarıyla tamamlandığında başarıyı raporlarBatchExport,PDFtoJpgveSplitPDFartık benzersiz çıktı dizinleri ayırır, böylece tekrarlanan çalıştırmalar ve aynı adlı girdiler önceki sonuçları korurSplitViewartık iptal veya eşleşme olmaması durumunda arkasında gizli sayfa durumu bırakmadan aramayı bir kez sarar ve kısmi çıktı göndermek yerine tamamlanmamış yazdırma işlerini iptal eder
Düzeltildi (Fixed)
MergePDFartık hatalı biçimlendirilmiş sayfa aralığı belirteçlerini ve kaynağın üzerine yazan çıktı yollarını reddeder, gerçekte içe aktarılan sayfaları sayar ve boş bir sonucu kaydetmeyi reddeder- Delphi ve C++Builder
Attachmentdemoları artık aynı yola kaydetmeleri geri alma güvenli dosya değiştirme yoluyla gerçekleştirir, böylece başarısız bir yeniden adlandırma orijinal PDF'yi kaldıramaz
Version 2.38.0
Değiştirildi (Changed)
SetAnnotationDataartık mevcutHasName/HasSubject/HasIcondeseniyle eşleşecek şekilde,TPdfAnnotationüzerindeki/Contentsve/AuthoryazmalarınıHasContents/HasAuthorkoruyucuları arkasında korur; önceden bu iki alan koşulsuz olarak yazılıyordu, bu nedenle yalnızca renk veya bayrakları güncellemek için birDefault(TPdfAnnotation)kaydı atamak, açıklamanın mevcut içeriğini ve yazarını sessizce boş dizelerle üzerine yazıyordu;GetPageAnnotationartık koruyucuları ayarlar, böylece bir oku-değiştir-yaz döngüsü orijinal değerleri korur
Düzeltildi (Fixed)
GenerateFormAppearancesartık onay kutusu/radyo düğmesi değerini, widget sözlüğünü okuyanFPDFAnnot_GetStringValue(Annot, 'V', ...)yerineFPDFAnnot_GetFormFieldValuearacılığıyla okur (ki bu ISO 32000-1 §12.7.5 uyarınca üst alan sözlüğüne gider); widget genellikle hiçbir/Vtaşımaz, bu nedenle/AShiçbir zaman işaretli durumla senkronize edilmiyordu ve düzleştirilmiş bir onay kutusu/radyo düğmesi işaretsiz olarak işleniyordu
Version 2.37.0
Değiştirildi (Changed)
ParseTsaUrlartık ayrıştırdıktan sonra bağlantı noktasını (port)1..65535arasına sınırlar; aksi takdirde aşırı büyük bir port değeriDWORDkırpılması yoluyla taşabilir ve geçerli bir portun üzerine gelebilirdi- XFDF
ParseFieldartık bir derinlik parametresi kabul ediyor (varsayılan 0, 64 ile sınırlı) ve sınıra ulaşıldığında boş bir alan döndürüyor, böylece kötü niyetli olarak iç içe yerleştirilmiş 100 000 derinliğindeki<field>zinciri artık yığını (stack) taşıramaz
Düzeltildi (Fixed)
- TSA HTTP isteği artık
@ReqDer[0]değeriniWinHttpSendRequestişlevine geçirmeden önce boş bir istek gövdesine karşı koruma sağlar; sıfır uzunluklu bir dinamik dizi referans çözme işlemi (dereference) temelsiz bir göstericiye (pointer) erişirdi;BuildTimeStampReqher zaman boş olmayan bir SEQUENCE döndürür, ancak çağrı tarafı artık bu sözleşmeyi savunur
Notlar (Notes)
- HTTPS iptal kontrolü hakkındaki
FPdfTsaWinüstbilgi yorumu düzeltildi: WinHttp varsayılan olarak sunucu sertifika zincirini doğrular ancakWinHttpSetOptionaracılığıyla açıkça etkinleştirilmedikçe CRL/OCSP iptal kontrolünü **gerçekleştirmez**; önceki ifade iptal kontrolünün kendiliğinden yapıldığını iddia ediyordu ki bu yanıltıcıydı
Version 2.36.0
Değiştirildi (Changed)
- TSA HTTP istekleri artık
Content-TypeveAcceptüstbilgilerine ek olarak açık birContent-Lengthüstbilgisi gönderir; WinHttp bunu toplam uzunluktan sentezler, ancak bazı RFC 3161 proxy'leri açık bir üstbilgi gerektirir ve bu üstbilgi olmadan isteği411 Length Requiredile reddeder - XFDF dışa aktarımı artık geçersiz bir ters eğik çizgi-onaltılık (backslash-hex) dizisi yaymak yerine C0 kontrol karakterlerini (zaten kaçışlı olan TAB/LF/CR hariç) atar; önceki
\-01Fkaçışı geçerli bir XML değildir (ters eğik çizginin XML'de özel bir anlamı yoktur), bu nedenle uyumlu herhangi bir okuyucu belgeyi hatalı biçimlendirilmiş olarak reddederdi InjectAssociatedFilesartık çağıranTAssociateFile.MIMETypesağladığında EmbeddedFile akış sözlüğüne/Subtypeyazar; alan beyan edilmiş ve belgelenmişti ancak enjektör daha önce/Type /EmbeddedFiledeğerini sabit kodlamıştı ve bunu yoksayıyordu (ISO 32000-2 §7.11.4 akış üzerinde/Subtypekullanımına izin verir)
Düzeltildi (Fixed)
- XFDF içe aktarımı, UTF-8 BOM'undan sonraki ilk içerik baytını ve BOM olmadığında ilk baytı atlıyordu:
BytesToAnsisıfır tabanlı bir dizi dizini aldığından,BytesToAnsi(Bytes, 4, ...)(BOM) veBytesToAnsi(Bytes, 1, ...)(BOM yok) bir farkla kaymış başlangıç ofsetleri kullanıyordu; çağrılar artık3ve0kullanıyor ExtractSignatureValue, isteğe bağlıcertificates [0]vesignedAttrs [0]dalları içinR.Position:= CNifadesinin koşulsuz olarak çalıştığı iki asılı-ifgirinti hatasına sahipti; dallar artıkbegin/endiçine alınmıştır, böylece konum yalnızca isteğe bağlı TLV gerçekten okunduğunda ilerletilir (v2.22.0 sürümündekiAddSignatureTimestampToCmsiçinde düzeltilen aynı hata sınıfı)
Version 2.35.0
Değiştirildi (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailveTFPDFAvail_IsFormAvailartıkvar hints: FX_DOWNLOADHINTSyerinehints: PFX_DOWNLOADHINTSalır, böylece belgelenmiş olannullptryalnızca sorgulama modu (daha fazla veri istemeden mevcut kullanılabilirliği kontrol etme) Delphi'den erişilebilir hale gelir; PDFium başlığı açıkçahints'in null olmasına izin verir, öncekivarbağlaması bunu imkansız kılıyorduTFPDF_SetSystemFontInfoartıkvar pFontInfo: FPDF_SYSFONTINFOyerinepFontInfo: PFPDF_SYSFONTINFOalır, böylece çağıranlar PDFium'a önceden kaydedilmiş bir sistem yazı tipi arayüzünü kullanmayı durdurmasını söylemek içinnilgeçirebilir (belgelenmiş devre dışı bırakma yolu)TPdfThumbnailView.PaintartıkVisibleRowsdeğeriniUpdateScrollBarRangeile aynı formülle (ClientHeight div RowHeight) hesaplar, böylece çizilen satır sayısı kaydırma çubuğu sayfa boyutuyla eşleşir; önceki yalnızca çizim formülü ((ClientHeight - FMarginY) div RowHeight + 1) sınır yüksekliklerinde bir satır farklılık gösterebilir, sayfa dışı bir satırda boşa işleme yapılmasına neden olabilir veya son görünür satırı kaçırabilirdi
Version 2.34.0
Eklendi (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— belgeyi kaydeden ve ardından PDF 2.0 AES-256-CBC (V=5/R=5/R=6) ile şifreleyen üst düzey API; kullanıcı/sahip şifresi, izinler ve revizyon içeren birTPdfEncryptOptionsalır,EncryptDocumentBytesişlevine devreder- StrF değişmez dize (literal-string) şifrelemesi:
EncryptDocumentBytesartık akış dışı nesnelerdeki (Info sözlüğü vb.)(...)değişmez dizelerini, akış şifreleme biçimiyle eşleşen (16-byte IV + PKCS7 şifreli metin) AES-256-CBC onaltılık dizelerine şifreler;<...>onaltılık dizelerine dokunulmaz
Version 2.33.0
Eklendi (Added)
FPdfEncrypt.pasiçinde tam belge AES-256-CBC şifreleme enjektörü;EncryptDocumentBytesdüz metin bir PDF ve şifre alır, her dolaylı akış nesnesini (dosya anahtarı altında 16-byte IV + AES-256-CBC PKCS7) şifreler,/Lengthdeğerini yamalar,/Encryptsözlük nesnesini ekler ve/Encryptile/IDiçeren eksiksiz bir klasik çapraz referans tablosu + trailer'ı yeniden oluşturur; PDF 2.0 şifreleme yığınını (AES block + GCM + SHA-512/384 + R6 key derivation + dictionary + document sweep) tamamlarEncryptStreamPayloadyardımcısı — kendi nesne düzenlerini yöneten çağıranlar tarafından yeniden kullanılabilir PDF 2.0 AES-256 akış biçimi (AES-CBC-PKCS7 şifreli metnine IV eklenmiş)
Version 2.32.0
Eklendi (Added)
- Yeni
FPdfSha512.pasbiriminde SHA-512 / SHA-384 karma işlevi (FIPS 180-4); tamamen pure Pascal ile yazılmıştır; her turda SHA-256/384/512'yi seçmek için 128-bit mod-3 değeri üzerinde dallanan PDF 2.0 R6 şifre-karma yinelemesi için gereklidir; FIPS-180-4 B.1 bilinen yanıtla doğrulanmıştır - Yeni
FPdfEncrypt.pasbiriminde PDF 2.0 şifreleme anahtarı türetme ve Encrypt sözlük oluşturucu; ISO 32000-2 §7.6.4.3 algoritma 2.B (R6 karma dansı: AES-128-CBC + yinelenen SHA-256/384/512 seçimi) uygular, 32-byte dosya şifreleme anahtarını ve ek olarak/O,/U,/OE,/UE,/Permsgirişlerini türetir ve/CFM /AESV3ile V=5/R=5/R=6 Encrypt sözlüğünü oluşturur; TBytes tarzı bayt tamponları kullanır
Version 2.31.0
Eklendi (Added)
- Yeni
FPdfAes.pasbiriminde AES blok şifreleme temelleri (FIPS 197); Pure-Pascal AES-128 ve AES-256 blok şifrelerinin yanı sıra CBC modu yardımcıları ve bir CSPRNG arka ucu; FIPS-197 Ek C.2 / C.3 bilinen yanıt testleri doğruluğu kanıtlar; bu, PDF 2.0 şifreleme yığınının kriptografik temelidir - Yeni
FPdfAesGcm.pasbiriminde AES-GCM kimliği doğrulanmış şifreleme (NIST SP 800-38D); AES blok temellerinin üzerinde GHASH (GF(2^128) çarpımı), GCTR ve GCM AEAD yapısını uygular; NIST GCM test senaryoları 1 ve 3 (AES-128) yetkili şifreli metin ve etiketle tam olarak eşleşir; test senaryosu 13 (AES-256) gidiş-dönüş yapar; GCM, PDF 2.0 için ISO/TS 32003 modudur - PDF/A Level A ParentTree ve ClassMap bütünlük doğrulaması (ISO 19005-1 §6.8.3);
pvaiParentTreeMissing, /ParentTree sayı ağacı olmayan bir StructTreeRoot'u işaretler;pvaiClassMapUnresolved, /ClassMap olmayan bir /C sınıfı referansını işaretler
Version 2.30.0
Eklendi (Added)
- İlişkili Dosyalar (Associate Files) enjeksiyonu (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); yeniFPdfAssocFilesbirimi, kataloğa veya herhangi bir sayfa sözlüğüne dosya belirtimi referanslarının/AFdizilerini ekler ve sekiz ISO 32000-2 Table 45/AFRelationshipdeğerinin tamamını kapsar;InjectPadesDssMarkerstarafından kanıtlanmış artımlı güncelleme desenini yeniden kullanır - PDF/X-6 (ISO 15930-9:2020) desteği;
TPdfXConformancepxc6ekler; enjektör ve doğrulayıcı bunupdfxid:GTS_PDFXVersionkimliği üzerinden yürütür; PDF/X-6, eksiksiz veri değişimi için PDF/X-4'ün PDF 2.0 tabanlı halefidir - PDF/A
/Threadeylemini yasaklar (ISO 19005-1 §6.6.1 beyaz liste boşluğu); yasaklı eylem listesi artık Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition ve Hide'ın yanı sıra Thread'i de kapsıyor
Düzeltildi (Fixed)
- PDF/A-4e doğrulama yolu artık Level A ile aynı etiketli yapı (tagged-structure), MarkInfo ve kelime kesme kontrollerine uyar; v2.29.0 kaydetme tarafı düşürmesi (downgrade)
PdfAIsLevelE'yi kapsıyordu, ancak üçValidatePdfACompliancekapısı yalnızcaPdfAIsLevelA'yı kontrol ediyordu, bu nedenle etiketli yapıdan yoksun bir PDF/A-4e belgesi sessizce doğrulamadan geçiyordu - OCG
/BaseStatetest sapması: v2.28.0 PostProcess geçişi kabulü doğru bir şekilde/ONveya/OFF(ISO 32000-1 Table 8.70) olarak genişletti, ancak Delphi ve C++ testleri hala/OFFdeğerinin reddedilmesini bekliyordu; testler artık gerçekten geçersiz bir değer (/Undefined) kullanıyor ve yeni bir olumlu test/OFFkabulünü kilitliyor - Coğrafi uzaysal
/Subtype /GEOaşırı eşleşmesi:ContainsDictionarySubtype('GEO'), ilgisiz olan başıboş bir/ViewerPreferences << /Subtype /GEO >>gibi bu belirteci taşıyan herhangi bir sözlükle eşleşiyordu; yeniContainsMeasureDictionarySubtypeek olarak/Type /Measureveya Measure'a özel bir kardeş anahtar gerektirir, böylece Measure dışı sözlükler artık ADBE ExtensionLevel 3 gereksinimini tetiklemez
Version 2.29.0
Eklendi (Added)
- Doğrulayıcı, XMP enjektörü ve Pdfium nesne modeli katmanında PDF/A-4 (ISO 19005-4:2020) desteği;
TPdfAConformancepac4base,pac4fvepac4eekler; temel seviye PDF 2.0 (ISO 32000-2) sürümüdür ve eski A/B/U seviyelerini temel + F (form) + E (erişilebilirlik) ile değiştirir;ValidatePdfAbirpdfaid:part=4XMP paketini okur (temel sürüm uyumluluk öğesini atlar),SaveAsPdfAbunu yayar veSignPadesWithPdfAuzun vadeli arşiv kapsayıcısı olarakpac4basekabul eder FPDFBookmark_GetColorbağlaması — son bağlanmamış PDFium genel dışa aktarımı (469/469);TBookmark, yer işareti/Cdizisinden (ISO 32000-1 §12.3.3) doldurulanHasColorveColoralanlarını kazanır; bağlama toleranslı yükleme kullanır, böylece dışa aktarımdan önceki eski DLL'ler çalışmaya devam eder- PDF/E-1 (ISO 24517-1 §5) üstbilgi sürümü kontrolü
pveiBadPdfVersion— PDF/E-1, PDF 1.6'ya dayanır ve 1.6 olmayan bir üstbilgi artık işaretlenir - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— şifrelemeye yalnızca%PDF-2.0üstbilgisinde izin verilir;/Encrypttaşıyan bir 1.x gövdesi artık işaretlenir (önceden etkisiz bir ifadeydi) - PDF/R-1
pvriBadMediaBox— her sayfaMediaBoxdeğeri[0 0 w h]olmalıdır;PdfRHasNonZeroMediaBoxOrigin, dolaylı referans MediaBox'larını atlayan yerel ayarlardan bağımsız bir ASCII tarayıcıdır - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — özel/Syapı türlerini eşlenmemiş bırakan, mevcut ancak eksik bir RoleMap artık işaretlenir ve mevcut yalnızca varlığı kontrol edenpvaiRoleMapMissingkontrolünün bıraktığı boşluğu kapatır
Düzeltildi (Fixed)
PdfVersionToName(20),"2.0"yerine"1.0"döndürüyor, katalog/Versiongirişini ve her PDF 2.0 kaydetmesindeki doğrulayıcı mesajlarını bozuyordu; biçimlendirici artık>= 20sürüm kodları için major.minor kısmını açıkça ayırırFPdfAsn1.pasnegatif-INTEGER kodlayıcısı, Delphi 12 altında derlenemiyor (Integer(-(V<0))üzerindeE2015hatası veriyor) ve tüm test projesini engelliyordu; işaret uzantısı maskesi içinInt64(-Ord(V<0))kullanılarak düzeltildi- PDF/A yasaklı açıklama listesi artık tüm bölümlerde
/RichMediaiçermektedir (daha önce gözden kaçmıştı; ISO 32000-1 §12.5.6.35 bunu PDF/A içinde yasaklar)
Version 2.28.0
Eklendi (Added)
TPdfVersionartık PDF 2.0 (ISO 32000-2) içinpv20içerir;DecodePdfVersion(20),pvUnknownyerinepv20döndürür veEncodePdfVersion(pv20)20 yayar, böylece bir PDF 2.0 belgesinin sürümü geri okumada artık kaybolmaz ve açıkça yazılabilir
Değiştirildi (Changed)
DecodeDateartık tam 23 karakterlikD:YYYYMMDDHHmmSSOHH'mm'biçimini gerektirmek yerine, PDF Reference 3.8.3 uyarınca isteğe bağlı izleyen alanları içeren PDF tarih dizelerini çözümler;D:20260712,D:20260712153000veD:20260712153000Zgibi uyumlu kırpılmış tarihler artık kabul ediliyor, önceden katı birLength=23kapısıyla reddediliyorlardı; saat dilimi saat ofseti artık> 23yerine gerçek dünyadaki UTC-12..UTC+14 aralığına göre doğrulanıyorFPdfMeasure.MeasureTextartık yazı tipi adını, ASCII olmayan aile adlarını geçerli kod sayfası üzerinden bozan çıplak birAnsiStringtür dönüşümü yerine, kütüphanenin diğer FPDF_BYTESTRING çağrı siteleriyle eşleşecek şekilde FPCAnsiString/ DelphiUTF8Encodeolarak kodlar
Düzeltildi (Fixed)
TDerWriter.Integernegatif değer yolu çöktü veya hatalı biçimlendirilmiş DER üretti:while V <> -1 do V := V shr 8döngüsüValue = -1içinInner'ı boş bıraktı (ardından gelenInner[Length(Inner)-1]üzerinde aralık hatası) ve diğer negatifler için aşırı bayt üretti; kodlayıcı artık işaret uzatan kaydırmalarla ikiye tümleyen (two's-complement) baytlarını çıkarır ve kalan saf işaret uzantısı olduğunda doğru bir şekilde durur; CMS/PAdES INTEGER alanları pozitiftir, bu nedenle bu yalnızca negatif değerler ileten çağıranları etkiler ancak yol artık doğrudurTPdf.GetCharacterOriginveTPdfView.GetCharacterOrigin,FPDFText_GetCharOrigindönüş değerini yoksaydı ve hata durumunda başlatılmamış bir nokta döndürdü; sonuç artık sıfırla başlatılır ve başarısız bir okuma orijini döndürür (GetCharacterRectanglesözleşmesiyle eşleşir)
Version 2.27.0
Değiştirildi (Changed)
- Delphi, C++Builder ve Lazarus
PDFViewerileMultiPageViewerdemoları belge aramalarını artık tek seferde sarmalar, sonraki sonuç içinEnterveF3tuşlarını kabul eder, eşleşme seçenekleri değiştiğinde arama bağlamını sıfırlar ve sürmekte olan bir aramayı ya da yazdırma işini iptal etmek içinEsctuşuna ayırır - Viewer yazdırması artık geçerli viewer döndürmesini izler ve buna göre dikey ya da yatay çıktı seçer; böylece araç çubuğundaki döndürme yazdırılan sayfalara yansır
- Üç
ViewerInteractionLabdemosu da yerel edit-control seçim ve kopyalama komutlarına karışmadanCtrl+A,Ctrl+C,Enter,F3veEsckısayollarını destekler
Düzeltildi (Fixed)
- C++Builder ve Lazarus viewer yazdırma iptali, iptal anına kadar işlenen sayfaları göndermek yerine artık yazıcı görevini durdurur; Lazarus ayrıca iç içe geçmiş her kopya, sayfa ve harmanlama döngüsünden açıkça çıkar
- Delphi
MultiPageViewerİptal düğmesi artık işleyicisine bağlıdır; C++Builder/LazarusMultiPageViewerarama alanları da yerel ok, Home ve End tuşu düzenlemesini korur
Version 2.26.0
Değiştirildi (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnailve bunlarınTPdfViewkarşılıkları,FPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmapçağrısı çevresinde artık render lock alır; böyleceRenderPage/RenderTileile aynı davranışa sahip olur. Bunlar, önceden lock olmadan çalışan ve aynı belge üzerinde sürmekte olan birUnloadPage/ReloadPageile yarışabilecek PDFium render tarafı çağrılarıdırTPdf.RenderPageThumbnailartık sayfanın/Rotategirişini dikkate alır:/Rotate 90veya270sayfalarında sığdırma, döndürülmüş boyutlardan yeniden hesaplanır; böylece küçük resmin en-boy oranı viewer'ın gösterdiğiyle eşleşir. ÖncedenFPDF_GetPageSizeByIndexüzerinden dönen iç (döndürülmemiş) boyutlar kullanılıyordu
Düzeltildi (Fixed)
TPdfView.GetCharacterRectangle, PDFium hata bildirdiğindeFPDFText_GetCharBoxdönüş değerini yok sayar ve başlatılmamış birTPdfRectangledeğeriniPageToDevice'e geçirir. Dikdörtgen artık sıfırla başlatılır ve başarısız birGetCharBoxçağrısıRect(0,0,0,0)döndürürGetLinkAnnotationsURI yolu ve dosya yolu arabellek uzunluğu bir fazlaydı: ikinciFPDFAction_GetURIPath/GetFilePathçağrısı,size-1olarak ayrılmış arabelleğe uzunluk olaraksizedeğerini (sondaki NUL dahil) geçirir. Çağrı artıksize-1geçirir; böylece kendini kırpmayan (self-clamp) bir PDFium derlemesinde bile ayrılan alanın ötesine yazılamaz
Version 2.25.0
Değiştirildi (Changed)
TPdf.AddText,SetText,AddPathveInsertFormObjectFromXObject, sayfa içeriğini yeniden üretmeden önce önbellekteki metin sayfasını ve bağlantı ek açıklamalarını artık geçersiz kılar; böyleceSetTextPositionsveRemoveObjectile aynı davranışa sahip olur. Önceden sayfa düzenlendikten sonra yapılan birGetText/GetWebLinks/FindFirstçağrısı, düzenlemeden önce yakalanmış bayat metin ve bağlantı verisi döndürür, tutulanFPDF_TEXTPAGEhandle'ı ise içerik yeniden üretiminden sonra tanımsız davranışla kullanılırTPdfView.RenderPage(HDC, ...)artık render lock alır veFPDF_RenderPageçağrısı çevresinde FPU/SSE istisnalarını maskeler; diğer tüm render giriş noktalarıyla aynı davranış. Önceki doğrudan DC overload'ı, aynı belge üzerinde sürmekte olan birUnloadPage/ReloadPageile yarışabilir ve D12 öncesi derleyicilerde FPU istisnalarını maskesiz bırakıyordu- Delphi
PrintPDFdemosu iptal durumunda,finallybloğununPrinter.EndDoc'a ulaşmasına izin vermek yerine artıkPrinter.Abortçağırır; o çağrı, iptal anına kadar işlenen sayfaları gönderirdi. Lazarus demosu bunu zaten doğru yapıyordu
Düzeltildi (Fixed)
TPdf.GetCharacter,TPdf.GetCharcodeve bunlarınTPdfViewkarşılıkları,FPDFText_GetUnicodeçağrısının döndürdüğü astral düzlem kod noktalarını (emoji, CJK Extension B)WideChar()ile alt 16 bite kırpardı; bu, metin işlemeyi bozan tek başına bir vekil (lone surrogate) üretir. U+FFFF üzerindeki karakterler artık U+FFFD (replacement character) döndürür; astral karakterlerin tam UTF-16 kodlamasını almak içinGetTextkullanınGetWebLinks,-1dönüşüne karşı kontrol yapmadanSetLength(Rectangles, FPDFLink_CountRects(...))çağırır; bozuk bir sayfada bu birEOutOfMemoryyükseltir. Negatif sayım artık sıfıra sabitlenirTPdf.Destroy, referans sayılan arabellek serbest bırakılmadan öncePassworddizesini bellekten artık temizler (UniqueString+FillChar); böylece bileşen yok edildikten sonra şifre heap'te okunabilir durumda kalmaz
Version 2.24.0
Eklendi (Added)
TPdf.DeletePage,GetAttachment,GetAttachmentName,GetAttachmentType,SetAttachmentveDeleteAttachmentartık sayfa/ek dizinini doğrular ve aralık dışı bir değerde, mevcut annotation erişimcilerinin davranışıyla uyumlu olarakEPdfErroryükseltir. Önceden aralık dışı dizin doğrudan PDFium'a geçirilir ve sessiz bir no-op ya da tanımsız davranış üretirdi
Düzeltildi (Fixed)
TPdf.AddText,AddBitmapveAddJpegImageyollarında hata durumunda çıkan page-object handle sızıntısı:FPDFText_SetText,FPDFImageObj_SetBitmap,FPDFImageObj_SetMatrixveyaFPDFImageObj_LoadJpegFileInline, nesne oluşturulduktan sonra amaFPDFPage_InsertObjectnesneyi sayfaya devretmeden önce istisna yükselttiğinde yerelFPDF_PAGEOBJECThandle'ı sızardı. Her yol artık istisnayı yeniden yükseltmeden önce nesneyi yok ederTPdf.UnloadPage, sürmekte olan birFPathhandle'ını (CreatePathayarlar amaAddPathhenüz tüketmemiştir)FPDFPageObj_Destroyçağırmadannilyaparak atardı. Handle artık yok edilir; böylece oluşturulup sonra bırakılan (ya da sayfa değişimiyle kesilen) bir path artık sızıntı yapmazTPdf.InsertFormObjectFromXObject, tüm kardeş ekleme yöntemlerinin (AddText/AddPath/AddBitmap/AddJpegImage/SetText/RemoveObject) yaptığıUpdatePage(FPDFPage_GenerateContent) çağrısını atlar; bu yolla eklenen bir Form XObject, sonraki yeniden yüklemede veya kaydetmede kaybolur.UpdatePageartık eklemeden sonra çağrılır
Version 2.23.0
Düzeltildi (Fixed)
- Optional-content
/BaseStatedoğrulaması artık/ONyanında/OFFdeğerini de kabul eder (ISO 32000-1 Table 8.70 ikisine de izin verir). Önceki kontrol, dosya standarda uygun olsa bile meşru/OCProperties /D /BaseState /OFFyapılandırmalarını "bozuk optional content" hatasıyla reddediyordu - Optional-content
/Intentdoğrulaması artık yalnızca sabit/Viewdeğerini değil,/Designdeğerini ve[/View /Design]gibi ad dizilerini de kabul eder. ISO 32000-1 Table 8.70,/Intentalanını/Viewve/Designarasından seçilen bir ad ya da ad dizisi olarak tanımlar; önceki tek değerli kontrol, standart yazım çıktılarını gereksiz yere reddediyordu - PDF 1.7
/Extensions /ADBEExtensionLevel 3 kapısı için geospatial Measure sözlüğü algılaması, ISO 32000-1 Table 254'ün isteğe bağlı saydığı/Type /Measurekoşulunu artık istemez./Typedeğerini atlayan GeoPDF üreticileri (PDFBox, QGIS, FME) önceden bu kapıyı aşıyor ve sessizce standarda uymayan PDF 1.7 çıktısı üretiyordu; algılayıcı artık yalnızca/Subtype /GEOile eşleşir
Version 2.22.0
Değiştirildi (Changed)
TPdfViewfit-zoom hesaplamaları (GetPageZoom,GetPageWidthZoom,GetPageHeightZoom) artık pencereninWidth/Heightdeğerleri yerineClientWidth/ClientHeightdeğerlerini kullanır; böylecepfmFitPage/pfmFitWidth/pfmFitHeightsayfayı, kaydırma çubukları ve kenarlıklar dahil dış çerçeve yerine görünür görüntü alanına göre boyutlandırır ve sığdırılan sayfa istemci alanından biraz büyük olduğunda beliren gereksiz kaydırma çubuğu ortadan kalkarAddSignatureTimestampToCms, sessizceExityapıp yarım kalmış bir ayrıştırmayı tam imzalı CMS gibi akışına bırakmak yerine, artık okunamayan CMS SignerInfo alanını (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm) belirten açık birExceptionyükseltir; isteğe bağlısignedAttrs [0]dalının çevresindeki eksikbegin/endbloğu yüzündenR.Position'ın ilerlememesi de düzeltildi
Düzeltildi (Fixed)
ResolveWinSigneriçindeki CNG private-key handle sızıntısı:CryptAcquireCertificatePrivateKeybaşarılı olup ardından issuer/serial çıkarımı ya daTWinCmsSigner.Createistisna yükselttiğindeNCryptKeyHandlehiç serbest bırakılmıyordu; çünkü handle'ın sahipliği ancak kurucu başarıyla döndüğünde imzalayıcıya geçer. Edinim sonrası kurulum artık sarmalanır; böylece bu aşamadaki herhangi bir ilk hatada handleNCryptFreeObjectile serbest bırakılırEcDsaP1363ToDer,INTEGER 0üretmek yerine tamamı sıfır olan birrveyasyarısını artık reddeder;r = 0veyas = 0olan ECDSA imzaları geçersizdir (RFC 4754 §6 / FIPS 186-4 §6,1 ≤ r, s ≤ n-1aralığını şart koşar) ve aksi hâlde gevşek bir doğrulayıcı bunları gerçek imza sayabilirdi
Version 2.21.12
Düzeltildi (Fixed)
- Açık PDF 1.5'ten PDF 1.7'ye kaydetmeleri artık gerekli
/OCGsveya/Dgirişlerinin eksik olduğu, geçersiz varsayılan yapılandırma değerleri ve dizi olmayan durum girişleri dahil hatalı biçimlendirilmiş katalog/OCPropertiesyapılarını reddeder
Version 2.21.11
Düzeltildi (Fixed)
- Açık PDF sürümü kaydetmeleri artık açıklama sözlüklerinin gerekli
/Subtypeveya/Rectgirişini atladığı doğrudan veya dolaylı Sayfa/Annotsgirişlerini reddeder
Version 2.21.10
Düzeltildi (Fixed)
- Açık PDF 1.7 kaydetmeleri artık coğrafi uzaysal
/Type /Measure /Subtype /GEOsözlüklerinin ve Projeksiyon açıklamalarının/BaseVersion /1.7ve/ExtensionLevel 3veya daha yeni ile/Extensions /ADBEbildirmesini gerektirir
Version 2.21.9
Düzeltildi (Fixed)
- Açık PDF 1.7 kaydetmeleri artık RichMedia açıklamalarının ve
RichMediaExecuteeylemlerinin/BaseVersion /1.7ve/ExtensionLevel 3veya daha yeni ile/Extensions /ADBEbildirmesini gerektirir
Version 2.21.8
Düzeltildi (Fixed)
- Açık PDF 1.7 kaydetmeleri artık PRC'yi temel bir PDF 1.7 özelliği olarak ele almak yerine PRC 3D akışlarının
/BaseVersion /1.7ve/ExtensionLevel 1veya daha yeni ile/Extensions /ADBEbildirmesini gerektirir
Version 2.21.7
Düzeltildi (Fixed)
- Açık PDF 1.4 ve daha eski sürüm kaydetmeleri artık gömülü JPEG 2000 yumuşak maske kanalları PDF 1.5 veya daha yenisini gerektirdiğinden, açık
0değeri dahil görüntü XObject/SMaskInDatagirişlerini reddeder
Version 2.21.6
Düzeltildi (Fixed)
- Açık PDF 1.4 ve daha eski sürüm kaydetmeleri artık PDF 1.5 veya daha yenisini gerektiren 16 bit görüntü XObject'lerini reddederken, PDF 1.5'ten PDF 1.7'ye kadar hedefler
/BitsPerComponent 16görüntü verilerini korur
Version 2.21.5
Düzeltildi (Fixed)
- Açık PDF 1.4 ve daha eski sürüm kaydetmeleri artık PDF 1.5 veya daha yenisini gerektiren belge kataloğu
/PageLayout /TwoPageLeftve/TwoPageRightdeğerlerini reddederken, PDF 1.5'ten PDF 1.7'ye kadar hedefler istenen iki sayfalı düzeni korur
Version 2.21.4
Düzeltildi (Fixed)
- Açık PDF 1.3 kaydetmeleri artık PDF 1.4 veya daha yenisini gerektiren belge kataloğu
/Langgirişlerini reddederken, PDF 1.4'ten PDF 1.7'ye kadar hedefler dil tanımlayıcısını korur
Version 2.21.3
Düzeltildi (Fixed)
- PDF 1.3 açık kaydetmeleri artık PDF 1.4 veya sonrasını gerektiren belge
/EmbeddedFilesad ağaçlarını, eski dosya belirtimi aracılığıyla başvurulan gömülü dosya akışlarını reddetmeden reddeder
Version 2.21.2
Düzeltildi (Fixed)
- Açık PDF 1.3 kayıtları artık PDF 1.4 veya daha yenisini gerektiren etkin üst veri akışlarını reddeder; bunları PDF 1.4 ile PDF 1.7 hedefleri için korumaya devam eder
Version 2.21.1
Düzeltildi (Fixed)
- Hibrit referans doğrulaması artık aynı revizyondan klasik xref yer tutucularından önce ek
/XRefStmgirişlerini uygular; böylece uyumluluk tablosu serbest olarak işaretlediğinde sıkıştırılmış açıklamalar ve sürümle sınırlı diğer nesneler artık atlanmaz
Version 2.21.0
Değiştirildi (Changed)
- Tüm Delphi, C++Builder ve Lazarus örnek görüntüleyicileri komut satırının ilk argümanı olarak iletilen bir PDF'yi açabilir; C++Builder ve Lazarus için
MultiPageViewerörnekleri tümünü seç ve kopyala için açık kısayollar sağlar
Düzeltildi (Fixed)
- Görüntüleyici örnekleri artık geçersiz yer imi ve bağlantı sayfa hedeflerini reddediyor, yükleme hatalarını koruyor, manuel yakınlaştırma girdisini tutarlı biçimde doğruluyor, görünen sayfayı tekrarlamak yerine istenen form doldurulmuş sayfayı yazdırıyor ve kısmi çıktı göndermek yerine iptal edilen Delphi yazdırma işlerini durduruyor
Version 2.20.0
Değiştirildi (Changed)
- Tüm Delphi, C++Builder ve Lazarus örnek görüntüleyicileri artık açma, arama, kaydetme, yazdırma, yakınlaştırma ve sayfa gezintisi için tutarlı kısayollar sağlar; her
ViewerInteractionLabvaryantı aynı zamanda sayfa atlamayı, doğrulanmış %10–600 manuel yakınlaştırmayı, kalıcı etkileşim günlüklerini ve tıklama koordinatı gidiş-dönüş kontrollerini destekler
Version 2.19.1
Düzeltildi (Fixed)
- Açık PDF sürüm doğrulaması artık sıkıştırılmış nesne girişleri dahil klasik, hibrit veya xref-akış biçiminin etkin revizyon zincirini takip eder; böylece geçersiz kılınan, serbest bırakılan ve başvurulmayan nesneler artık yanlış özellik sürümü hatalarına neden olmaz
Version 2.19.0
Değiştirildi (Changed)
- C++Builder ve Lazarus için ek, görüntü çıkarma, metin çıkarma, sayfa dönüştürme ve bölme örnekleri artık adanmış çıktı klasörleri veya güvenli şekilde sonlandırılmış dosyalar, sıfır dolgulu kararlı adlar, duyarlı ilerleme güncellemeleri ve öğe başına hata sayısı içeren tamamlanma özetleri kullanır
Düzeltildi (Fixed)
- C++Builder için
CJKTextLabartık dışa aktarılan PDFium düzenleme işlevleri aracılığıyla metni ölçer;MergePDFise belirsiz VCL ileti aşırı yüklemesinden kaçınarak RAD Studio 37'de temiz derlemeleri geri yükler
Version 2.18.3
Düzeltildi (Fixed)
- PAdES B-LTA Belge Zaman Damgası artık keşfedilebilir bir imza alanı olarak kaydedilir — ilk sayfanın
/Annotsve AcroForm/Fieldsalanları aracılığıyla erişilebilen görünmez Widget (ETSI EN 319 142-1 §5.4.3) — imza alanlarını sıralayan doğrulayıcıların bulamadığı erişilemeyen öksüz nesne yerine; mevcut açıklamalar ve alanlar korunur
Version 2.18.2
Düzeltildi (Fixed)
- PAdES imzalama ve klasik çapraz referans yazma artık bayt ofseti 10 basamaklı sabit alan genişliğini (~9,3 GB) aştığında yazılmamış
/ByteRangeyer tutucuyu sessizce bırakmak (geçersiz imza üretir) veya 20 baytlık xref satırını aşmak (ISO 32000-1 §7.5.4) yerine belirgin bir hata tetikler; çapraz referans akış çıktısı 8 baytlık ikili alanlar kullanır ve etkilenmez
Version 2.18.1
Düzeltildi (Fixed)
- PAdES imzalama artık tam nesne başlığına (ISO 32000-1 §7.5.3) ve referansın gerçek nesil numarasına göre ilk sayfanın
/Annots,/AcroFormve/Fieldsdolaylı referanslarını çözer; önceki basit alt dize araması nesne numarasını daha uzun bir numara içinde eşleştiriyordu (5 0 R'yi15 0 obj'e çözerek) ve sabit kodlanmış nesilgen>0olan nesneleri atladı; bu durum imza alanı dizilerini bozuyor veya geçerli belgeleri reddediyordu - Katalog, ilk sayfa,
/Annots,/AcroFormveya/Fieldsbir nesne akışı içinde bulunduğunda, imzalama artık belgeyi doğrudan reddetmek yerine başarısız olmadan önce genişletilmiş bir kopyada yeniden dener
Version 2.18.0
Eklendi (Added)
ReadPdfVersionInfo, PDF akışından başlık sürümünü, etkili temel sürümü, katalog geçersiz kılmasını ve Adobe geliştirici uzantısı düzeyini raporlar
Değiştirildi (Changed)
- PDF 1.3–1.7 açık kaydetmeleri artık katalog, sayfa kaynakları, XFA, redaksiyon ve geliştirici uzantısı yapılarını sahip nesnelerinin bağlamında doğrular; şifrelenmiş açık sürümlü çıktı ve PDF 1.3 artımlı normalleştirme, belge bütünlüğünü korumak için reddedilir
- Dosya yolu kaydetmeleri artık bitişik geçici bir dosyaya yazar ve hedefi yalnızca tüm sıkıştırma, normalleştirme ve sürüm denetimleri başarıyla tamamlandıktan sonra değiştirir
Düzeltildi (Fixed)
- PDF 1.3 çıktısı artık gerekli tam
/ProcSetkaynağını taşır ve yalnızca PDF 1.3 başlangıç grafik durumu değerlerini tekrarlayan PDF 1.4 saydamlık anahtarlarını kaldırır - Hibrit referanslar, xref akış ve nesne akışına sahip dosyalar artık klasik xref sıkıştırıcısı tarafından üzerine yazılmaz; böylece sıkıştırılmış nesne girişlerinin bırakılması önlenir
- İlgisiz kaynak eşlemlerindeki dizeler, yorumlar veya dize içindeki saydamlık anahtarlarını veya katalog özelliklerini anımsatan adlar artık yanlış hedef sürüm hatalarına neden olmaz
Version 2.17.0
Eklendi (Added)
- PAdES imzaları artık ilk sayfanın
/Annotsdizisinde ve AcroForm/Fieldsdizisinde görünmez Widget açıklamaları olarak kaydedilir; mevcut açıklamalar ve form alanları korunur
Değiştirildi (Changed)
- PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT ve PAdES artımlı güncellemeleri artık kaynak belgenin çapraz referans gösterimini korur: xref-akış belgeleri, ISO 32000-1 §7.5.8.1 gereği xref-akış güncellemesi alırken klasik belgeler xref tablosunu almaya devam eder
- Çapraz referans ofsetleri,
startxref,/Prev, PAdES ByteRange değerleri ve SHA-256 aralık işleme artık parçalı hashing ile 64 bit konumlar kullanır; bu sayede 64 bit derlemelerde 2 GB'tan büyük dosyalara olanak tanır - Oluşturulan yazılabilir XMP paketleri artık son paket talimatından önce 2048 bayt dolgu rezerve eder
Version 2.16.10
Düzeltildi (Fixed)
- Nesne akış genişletme artık artımlı güncellemenin nesne akışından normal tanımlamaya taşıdığı nesnelerin eski kopyalarını geri yüklemez (ISO 32000-1 §7.5.7); bu tür dosyalarda uyumluluk denetimleri ve işaret enjeksiyonu daha önce eski katalog veya meta veri sözlüğünü çözüyordu
Version 2.16.9
Düzeltildi (Fixed)
- Free Pascal'da girişi geçerli UTF-8 olmayan metin dizeleri bayt bayt Latin-1 olarak genişletilir ve UTF-16BE onaltılık dizeler olarak yazılır; daha önce ham yüksek baytlar değişmez dizeye sızıyordu ki bu PDF 1.7 metin dizesi kodlaması için yasal değildir
- Akış kod çözme artık RFC 1950 zlib sarmalayıcısı olmayan ham deflate verilerini (bozuk yazıcıların yaygın hatası) tanır ve ham modda açar; böylece uyumluluk taramaları bu tür akışlara karşı sessizce kör kalmaz
Version 2.16.8
Düzeltildi (Fixed)
- Kaydetme sonrası işlem yolu tarafından yazılan artımlı güncellemeler artık ISO 32000-1 §14.4 gereği fragman
/IDdizisinin ikinci (değişen) ögesini yeniler; her iki öge daha önce aynen kopyalanıyordu, dolayısıyla önbelleğe alma ve eşitleme araçları her güncellemeden sonra değişmez bir tanımlayıcı görüyordu
Version 2.16.7
Düzeltildi (Fixed)
- Uyumluluk taramalarının kullandığı akış gövdesi boşaltma artık
streamanahtar sözcüğünün ardından satır sonu gelmesini gerektirir (ISO 32000-1 §7.3.8.1);(downstream)gibi değişmez bir dize içindeki sözcük daha önce bir sonrakiendstream'e kadar tüm sonraki yapıyı boşaltıyordu ve gerçek ihlalleri bayt düzeyindeki denetimlerden gizliyordu - PDF/X ve PDF/E yasaklı özellik taramaları ayrıca değişmez dizeleri ve yorumları da boşaltır (§7.2.2); böylece
/Title (see /JavaScript docs)gibi bir değer veya yorumlanmış bir belirteç artık yanlışJavaScript,AcroFormveyaLZWDecodetespiti üretmez
Version 2.16.6
Düzeltildi (Fixed)
- PDF/VT DPM girişleri artık yazma sırasında belgelere göre doğrulanır: ISO 16612-2 §6.6 NMTOKEN kuralını veya Ek E kayıt sahibi ön eki kuralını ihlal eden anahtar adları ile yinelenenler, DPart sözlüğüne yazılmak yerine reddedilir — boşluk içeren bir ad daha önce sahte bir anahtar/değer çiftine bölünüyor ve sözlüğü bozuyordu
Version 2.16.5
Düzeltildi (Fixed)
- Değeri onaltılık dize olan sözlük girişini silme (örn.
/Check <...>) artık tüm girişi kaldırır; enjektörler daha önce geride sahipsiz onaltılık değer bırakıyordu ve sözdizimsel olarak bozuk bir sözlük üretiyordu - Dolaylı referansı belirteçler arasında yeni satırlar kullanan girişi silme (ISO 32000-1 §7.3.10 isteğe bağlı boşluğa izin verir) artık nesil numarasını ve
Ranahtar sözcüğünü geride bırakmaz
Version 2.16.4
Düzeltildi (Fixed)
- Maksimum nesne numarası taraması artık nesne başlıklarının satır başında olmasını gerektirmez (ISO 32000-1 §7.5.3 bunlardan önce isteğe bağlı boşluk veya sınırlayıcıya izin verir); böylece enjektörler artık gömülü
N G objbaşlığıyla çakışan ve dosyayı sessizce bozan bir nesne numarası tahsis edemez; nesne numaraları Ek C tavanıyla sınırlandırılır /Length'i dolaylı referans olan akışlar artık başvurulan tam sayı nesnesini çözer ve sonendstreamile eşleştiğinde değerini kullanır; bu tür akışlar daha önce gömülü PDF ekleri için tipik olanendstreambayt dizisini yasal olarak içeren gövdeleri kısaltan desen aramasıyla sınırlandırılıyordu
Version 2.16.3
Düzeltildi (Fixed)
- Akış sıkıştırma geçişleri, çapraz referans akışına sahip belgeleri (klasik
traileranahtar sözcüğü olmayan PDF 1.5+ dosyaları) değiştirmeden iletir; yeniden oluşturma yolu daha öncestartxref'i tablo konumu olarak yanlış ayrıştırıyor ve tahmini bir fragman birleştiriyordu; bu durum açılamaz dosya üretebiliyordu - Sıkıştırıcı XMP meta veri akışlarını atlar; böylece PDF/A belgesi zorunlu filtresiz meta veri akışını korur (ISO 19005-1 §6.7.2) ve harici dosya akışlarına dokunmaz (
/File/FFilter) - Yeniden oluşturulan çapraz referans tablosu, akış içeriği olmayan belge kopyasını tarar; böylece akışların ikili içeriği artık nesne başlıklarını sahte olarak gösteremez veya tabloyu şişiremez; yeniden oluşturulan fragmanın
/Size'ı artık gerçek tabloyu yansıtır ve nesne numaraları Ek C tavanıyla sınırlandırılır - Özgün çapraz referans tablosu araması yalnızca-CR satır sonlarını kabul eder (ISO 32000-1 §7.5.1) ve artık
startxrefiçindekixrefharflerini eşleştiremez; akış anahtar sözcüğü taraması, başka yerde kullanılan aynıendstreamkuyruk koruyucu mekanizmasını kazanmıştır ve artık atlanan akış gövdelerinin ötesine geçer
Version 2.16.2
Düzeltildi (Fixed)
- Bayt düzeyindeki PDF okuyucularda tam sayı ayrıştırma artık ISO 32000-1 §7.3.3 tarafından izin verilen açık
+işaretini kabul eder ve taşacak rakam dizilerini reddeder; böylece düşmanca veya bozuk belgeler artık ayrıştırılan uzunlukları ve ofsetleri yanıltıcı değerlere sararak bozamaz
Version 2.16.1
Düzeltildi (Fixed)
- PDF/UA enjektörü katalog
/Langdeğerini doğru PDF metin dizesi olarak yazar; daha önce değeri XML kaçış aracından geçiriyordu, dolayısıyla&veya parantez içeren dil etiketi bozuk giriş üretiyordu ve ASCII dışı girdi ham UTF-8 olarak yazılıyordu - PDF/E Info girişi
/ISO_PDFEVersion, paylaşılan metin dizisi kodlayıcısını kullanır; böylece ASCII dışı değerleri PDF 1.7'de yasal tutar - XMP paketleri için XML kaçış işlemi, XML 1.0'da yasadışı olan denetim karakterlerini atar; böylece bozuk kaynak belgeden kopyalanan meta veriler artık tüm meta veri akışının hatalı biçimlendirilmesine neden olamaz
- PDF-XMP tarih dönüşümü, tarih alanlarının sayısal olduğunu doğrular ve eksik dakika alanını doldurur; böylece oluşturulan XMP'de hatalı biçimlendirilmiş ISO 8601 tarihlerini önler; Windows dışı platformlarda geri dönüş zaman damgası artık yalnızca tarih yerine günün saatini de içerir
Version 2.16.0
Eklendi (Added)
- Akış kod çözme artık FlateDecode'dan sonra
/DecodeParmstahmin edicilerini (PNG tahmin edicileri 10–15 ve TIFF tahmin edicisi 2, ISO 32000-1 §7.4.4.4)/Colors,/BitsPerComponentve/Columns'a uymak suretiyle yeniden oluşturur; tahmin edicili sıkıştırılmış nesne akışları — PDF 1.5+ yazıcılarının yaygın seçimi — daha önce farksal baytlar gösteriyordu; dolayısıyla taşıdıkları nesneler uyumluluk taramaları ve işaret enjeksiyonu için sessizce görünmezdi
Düzeltildi (Fixed)
- FlateDecode algılaması artık alt dize eşleştirme yerine
/Filterdeğerini ad veya dizi olarak ayrıştırır; böylece basamaklı filtre zincirleri ve sözcüğün ilgisiz değerlerde görünmesi artık yanlış şişirme tetiklemez; desteklenmeyen zincirler önceki gibi ham baytlara geri döner
Version 2.15.1
Düzeltildi (Fixed)
- Sözlük tarayıcı artık
<</>>'yi (ISO 32000-1 §7.2.2) dengelerken değişmez dizeleri, onaltılık dizeleri ve yorumları atlar; böylece(A >> B)gibi değerler veya kapanış sınırlayıcısının yanındaki onaltılık dize içeren sözlükler, fragman, katalog ayrıştırma ve uyumluluk taramaları sırasında artık kısaltılmaz - Değişmez dize çıkarma artık §7.3.4.2 Tablo 3 tam kaçış kümesini —
\n \r \t \b \f, sekizli\ddd, satır devamlarını ve kaçışsız EOL normalleştirmesini — kaçış karakterini aynen kopyalamak yerine kod çözer; böylece sekizli kaçış kullanan yazıcılar için/Producer,/GTS_PDFXVersionve/ISO_PDFEVersionkarşılaştırmalarını geri yükler - İşaret enjektörleri tarafından yazılan değişmez dizeler artık CR, LF ve diğer denetim karakterlerinden kaçar; böylece değerler okuyucu tarafında bayt bayt EOL normalleştirmesini atlatır
Version 2.15.0
Düzeltildi (Fixed)
- PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA ve PDF/VT işaret enjektörleri ile PAdES ve DSS imzalama yolları tarafından yazılan artımlı güncellemeler artık kaynak belgenin kalıcı dosya tanımlayıcısını korur: fragman
/IDdizisinin ilk ögesi, ISO 32000-1 §14.4 gereği aynen aktarılır ve yalnızca ikinci (değişen) öge yenilenir; daha önce her iki öge yeniden oluşturuluyordu, dolayısıyla harici referanslar ve uzun vadeli doğrulama iş akışları her kaydetmeden sonra farklı bir belge kimliği görüyordu - PAdES imzaları, DSS ekleme ve Belge Zaman Damgası B-LTA artık kaynak fragmandan
/Inforeferansını (ISO 32000-1 §7.5.6) aktarır; böylece belge özellikleri imzalamadan sonra artık okuyucu panellerinden kaybolmaz; Belge Zaman Damgası fragmanı ayrıca bir/IDdizisi kazanır - Çapraz referans akışlı belgeler için fragman
/Infogeri dönüş mekanizması artık XRef akış sözlüğünü doğru bulur ve referansın nesil numarasını korur; daha önce uyumlu PDF 1.5+ dosyalarında hiçbir zaman eşleşmiyordu ve/Info'yu sessizce bırakıyordu
Version 2.14.4
Düzeltildi (Fixed)
TPdf.SignPadesveSignPadesBytestarafından yazılan imza sözlüğünün/Mtarihi artık ISO 32000-1 §7.9.4 gereği zorunluD:ön ekini veZUTC ofseti işaretleyicisini taşır; katı doğrulayıcılar daha önce imzalama zamanını hatalı biçimlendirilmiş tarih dizesi olarak reddediyordu
Version 2.14.3
Düzeltildi (Fixed)
- Paylaşılan PDF okuyucusunda sözlük anahtar araması artık tam ad belirteçlerini eşleştirir (ISO 32000-1 §7.3.5); daha önce
/Length'ten önce/Length1listeleyen sözlüğe sahip akış (FontFile akışları için tipik) yanlış bayt sayısına kısaltılıyordu; bu durum yazı tipi, CMap veya meta veri akışlarını okuyan PDF/A, PDF/UA ve diğer uyumluluk taramalarını sessizce kör ediyordu - Fragman
/Encrypt,/Root,/Sizeve/Infoanahtar aramaları artık aynı ön eki paylaşan uzun anahtarları (örn./EncryptMetadata) eşleştirmez - Nesne akışı genişletme artık bozuk veya düşmanca
/Ndeğerine güvenmez: tam sayı olmayan değerler artık başlatılmamış sayı yerine 0 verir ve/First'ten türetilen üst sınır, hatalı biçimlendirilmiş belgeler taranırken aşırı tahsisleri önler
Version 2.14.2
Düzeltildi (Fixed)
- PDF/X, PDF/VT, PDF/UA, PDF/E ve PDF/R işaret enjektörleri artık şifrelenmiş kaynak belgeleri düz metin güncelleme bölümleri eklemek yerine değiştirmeden kopyalar; önceki davranış, son fragmanı
/Encryptgirişini kaybeden dosyalar üretiyordu (ISO 32000-1 §7.5.6), dolayısıyla uyumlu okuyucular şifrelenmiş gövdeyi düz metin olarak okuyordu TPdf.SignPades,SignPadesBytesveInjectPadesDssMarkersartık kaynak belge şifrelendiğinde sessizce bozuk veya doğrulanamaz dosya vermek yerineEPadesCryptotetikler; imzalamadan veya DSS materyali eklemeden önce şifrelemeyi kaldırın
Version 2.14.1
Düzeltildi (Fixed)
TPdf.SignPadesveSignPadesBytesartık imza sözlüğünün dört/ByteRangealanını geriye dönük olarak doldurur; daha önce son üç alan sıfır yer tutucularında kalıyordu, dolayısıyla üretilen imzalar boş bayt aralığı bildiriyor ve uyumlu doğrulayıcılarda doğrulamayı geçemiyordu- PAdES B-LTA Belge Zaman Damgası sözlükleri aynı geriye dönük
/ByteRangedoldurma düzeltmesini alır ValidatePadesComplianceartık bayt aralığı boşluğunun onaltılık/Contentsdeğerini içerdiği standart imza düzenini kabul eder ve ikinci aralık segmentinin tam olarak dosya sonunda bittiğini doğrular; daha önce yalnızca boşluksuz aralıklar kapsam denetimini geçiyordu
Version 2.14.0
Eklendi (Added)
TPdf.ExportXFDF, tüm sayfalardaki her form alanı değerini ve açıklamayı bir XFDF belgesine (ISO 19444-1) serileştirir; hiyerarşik form değerleri için<fields>ve desteklenen tüm açıklama alt türleri (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact) için<annots>yayınlarTPdf.ImportXFDF, XFDF belgesini yüklenen PDF'e geri okur, karşılık gelen sayfalarda açıklamaları yeniden oluşturur ve alan değerlerini Widget açıklamalarına uygularTPdfAnnotationkaydıName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), çizgi uç noktaları, çokgen/çizgi poligon köşeleri ve ink listesi jest alanlarını kazandı; böylece XFDF döngüleri tam açıklama meta verilerini korur- Delphi, C++Builder ve Lazarus demo paketlerinde yeni
XfdfLabörneği dışa aktarma/içe aktarma döngüsünü gösterir
Version 2.13.6
Düzeltildi (Fixed)
ValidatePdfAartık/Type /Metadataveya/Subtype /XMLolmayan katalog/MetadataakışlarınıpvaiMissingXmpMetadataaracılığıyla eksik XMP meta verisi olarak ele alır- PDF/A ön kontrol iletileri artık
pvaiMissingXmpMetadata'yı Meta Veri olarak sınıflandırır ve/Type /Metadata,/Subtype /XML, filtresiz XMP vepdfaidetiketleri içeren katalog/Metadataakışını önerir
Version 2.13.5
Düzeltildi (Fixed)
ValidatePdfAartık görünüm sözlüğü olmayan Widget açıklamalarını ve/APgerektiren ancak bulundurmayan PDF/A-2 / PDF/A-3 açıklamalarınıpvaiAnnotationApDictViolationaracılığıyla raporlar- PDF/A ön kontrol iletileri artık
pvaiAnnotationApDictViolation'ı, işaret eklemenin düzeltemeyeceği içerik olarak sınıflandırır
Version 2.13.4
Düzeltildi (Fixed)
ValidatePdfAartık/Iveya/Interpolatedeğeritrueolan PDF/A-2 ve PDF/A-3 satır içi görüntülerini mevcut XObject Image sözlüğü kapsamıyla uyumlu biçimdepvaiImageDictionaryViolationaracılığıyla raporlar- PDF/A ön kontrol iletileri artık
pvaiImageDictionaryViolation'ı, işaret eklemenin düzeltemeyeceği içerik olarak sınıflandırır
Version 2.13.3
Düzeltildi (Fixed)
ValidatePdfAartık içerik akışlarında/LZWDecodeveya kısaltılmış/LZWfiltresi kullanan PDF/A-1 satır içi görüntüleri, mevcut PDF/A-2 ve PDF/A-3 satır içi görüntü kapsamıyla uyumlu biçimdepvaiInlineImageLzwForbiddenaracılığıyla raporlar- Satır içi görüntü filtre tarayıcı artık
/GS1gibi öncü kaynak adlarının ötesine geçer; böylece daha geniş PDF/A-1 içerik akışlarını tararken kilitlenmelerden kaçınır
Version 2.13.2
Eklendi (Added)
TPdf.SetFocusedFormFieldText,FocusedFormFieldTextile simetrik biçimdeFORM_ReplaceSelectionaracılığıyla o anda odaklanan form alanının düzenleme arabelleğine metin yazar. AcroForm metin/açılan kutu alanları için değer odak kaybedildiğinde/V'ye taahhüt edilir ve kalıcıdır; XFA metin alanları için yazma yalnızca bellek içi arabellekte gerçekleşir (PDFium, XFA değerlerini veri kümesi paketine geri uzlaştırmak için genel API sunmaz, bu nedenle kaydetme yoluyla kalıcı değildir)- JavaScript ana bilgisayar platformu artık belgenin XFA olup olmadığından bağımsız olarak V8 motoru kullanılabilir olduğunda her zaman bağlanır — böylece gömülü AcroForm JavaScript'i (belge düzeyinde betikler, alan hesaplamaları,
app.alert) de yürütülebilir. Daha öncem_pJsPlatformyalnızca XFA belgeleri için bağlanıyor ve AcroForm JS sessizce devre dışı kalıyordu
Değiştirildi (Changed)
- JavaScript platformu bağlantısı artık
InitializeFormFill'deki XFA kararından bağımsız —m_pJsPlatformtablosu,V8FeaturesAvailabledoğru olduğunda her zaman oluşturulur, XFA sürümü/geri çağrı bağlantısından sonra uygulanır, içine yerleştirilmez
Version 2.13.1
Eklendi (Added)
- Yeni ana bilgisayar etkinlikleri, v2.13.0 form doldurma geri çağrılarının daha önce yuttuğu bilgileri ortaya çıkarır:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Her olay atanmadığında var olan no-op davranışını varsayılan olarak benimsediğinden mevcut ana bilgisayar uygulamaları etkilenmez - Salt okunur
TPdf.XfaFormPacketsözelliği, tüm XFA paketlerinin tek seferlik anlık görüntüsünü (TXfaPacketList) döndürür; böylece daha önce bildirilen ancak kullanılmayanTXfaPacket/TXfaPacketListtürlerini doldurur - XFA'ya özgü PDFium hata kodları
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTartık bağlanmış veLastPdfErroraracılığıyla ortaya çıkarılmaktadır; XFA yükleme/düzenleme hataları için genel "Unknown error" hatası ile değiştirilir
Değiştirildi (Changed)
FFI_DoURIActionWithKeyboardModifierartık bir XFA alanından URI yürütmeden önceOnXfaUriAction'a danışır; ana bilgisayara veto hakkı tanır (güvenlik: kötü amaçlı XFA alanı daha önce koşulsuz olarak rastgele URL'ler başlatabiliyordu). Atanmamış işleyiciler önceki varsayılanShellExecuteW'yi korurDecodeFormFieldTypeartık XFA alan türlerini 8 dallı açık durum bloğu yerineIsXfaFormFieldaracılığıyla yönlendirir; böylece enum'u ordinal ofsete göreFPDF_FORMFIELD_XFA_*ile hizalı tutar
Düzeltildi (Fixed)
ValidatePdfAartık PDF 1.5 çapraz referans akışları veya nesne akışları kullanan PDF/A-1 bildirimlerini yenipvaiPdfA1Pdf15Structuresorunu ile raporlar; PDF/A-2 ve PDF/A-3 için nesne akışlarına izin vermeye devam eder
Version 2.13.0
Eklendi (Added)
- Tam XFA (XML Forms Architecture) çalışma zamanı desteği:
TPdf.InitializeFormFillartık 14FPDF_FORMFILLINFOsürüm 2 geri çağrısının tamamını (FFI_DisplayCaret,FFI_GotoURL,FFI_PageEvent,FFI_PopupMenu,FFI_OpenFile,FFI_EmailTo,FFI_UploadTo,FFI_GetPlatform,FFI_GetLanguage,FFI_DownloadFromURL,FFI_PostRequestURL,FFI_PutRequestURL,FFI_OnFocusChange,FFI_DoURIActionWithKeyboardModifier) bağlar veIPDF_JsPlatform'u ekler; böylece XFA etkinpdfium.dlldinamik XFA formlarını oluşturabilir ve betikleyebilir - XFA sabitlerini (
FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) ve daha önce yalnızca yorumlarda başvurulanTXfaPacket/TXfaSaveFormattürlerini bildiren yeniLib\FPdfXfa.pasbirimi TPdfüzerinde statik XFA paket okuyucu:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameartıGetXfaTemplate/GetXfaDatasets/GetXfaConfig, XFA etkin çalışma zamanı gerektirmedentemplate,datasetsveconfigXFA paketlerini ham XML olarak ayıklar — uyumluluk denetimi ve veri geçişi için kullanışlıdır- Yetenek sondaları: genel
XfaFeaturesAvailableve belge başınaTPdf.XfaRuntimeAvailable(FPDF_LoadXFA'nın gerçekten başarılı olup olmadığı) veTPdf.XfaStaticReadable(paket okuyucu dışa aktarmalarının çözümlenip çözümlenmediği) TPdfFormFieldType,fiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextFieldile genişletildi;DecodeFormFieldTypeyeniFPDF_FORMFIELD_XFA_*değerlerini eşlerTPdfüzerinde JavaScript ana bilgisayar etkinlikleri:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlveOnXfaRuntimeMissing, ana bilgisayarın JS iletişim kutularını ve XFA gezinmesini özelleştirmesine veya XFA belgesi motoru başlatamadığında yanıt vermesine olanak tanır- XFA algılama, paket çıkarma, yetenek sondası ve eksik çalışma zamanı geri dönüş yolunu gösteren yeni Delphi
XfaLabörneği
Değiştirildi (Changed)
TPdf.LoadDocumentartık girişi XFA işaretleyicileri (/XFAAcroForm sözlüğünde veya katalog/NeedsRendering) için önceden tarar ve bulduğunda singleton kütüphane yüklemesinden önceEnableV8Engine := Trueayarlayarak otomatik olarakpdfium.v8.dll'i seçer; sıradanpdfium.dllbir kez yüklendikten sonra işlem geçiş yapamaz, dolayısıylaOnXfaRuntimeMissingbu durumu bildirirTPdf.GetPageCountartık yalnızca statik PDF sayfa ağacını değil, dinamik sayfalama sonrasında XFA motorununFFI_PageEventaracılığıyla bildirdiği sayfa sayısını yansıtır- XFA belgesi açık ancak çalışma zamanı kullanılamadığında,
InitializeFormFillartık atanamaz geri çağrılarla sürüm 2 istemek yerineversion=1vexfa_disabled=1'i sabitler; bu durum daha önce hatalı geri çağrı işaretçisini dereference etme riskini doğuruyordu
Version 2.12.2
Düzeltildi (Fixed)
ValidatePdfAComplianceartık standartpdfaidmeta verilerini uzantı bildirimi olmadan hâlâ kabul ederkenpdfaExtension:schemasolmadan kullanılan özel XMP ad alanlarını raporlar- PDF/A-3 gömülü dosya doğrulaması artık dosya belirtimi sözlüklerinde en üst düzey
/Fve/UFgirişlerini gerektirir ve bu adları denetlerken iç içe/EFakış anahtarlarını yoksayar
Version 2.12.1
Düzeltildi (Fixed)
ValidatePdfAComplianceartık JavaScript, LZWDecode, Type1 ve diğer yasaklı adları eşleştirmeden önce kaçışlı PDF ad belirteçlerini kod çözer; böylece gizlenmiş ancak anlamsal olarak özdeş adlar doğru biçimde raporlanır- PDF/A satır içi görüntü denetimleri artık dizi ve kaçışlı ad formları dahil
/LZWDecode, kısaltılmış/LZWveya/Cryptkullanan/Filterve/Fdeğerlerini reddeder - PDF/A doğrulaması artık yasaklı akış filtreleri içeren meta veri akışlarını, bileşen sayısı
/Neksik veya tutarsız olan ICC OutputIntent profillerini ve eksik ya da geçersiz/AFRelationshipiçeren PDF/A-3 gömülü dosya belirtimlerini raporlar
Version 2.12.0
Eklendi (Added)
- TSA HTTP istekleri artık örtük WinHttp varsayılanlarına güvenmek yerine
WinHttpSetTimeoutsaracılığıyla her aşama (çözümleme/bağlantı/gönderme/alma) için 30 saniyelik açık zaman aşımları ayarlar; böylece yavaş veya erişilemeyen zaman damgası yetkilisi imzalama iş parçacığını süresiz olarak askıya alamaz - Çağıran
TPadesSignOptions.Nonce'ı atladığında PAdES B-T / B-LTA zaman damgası istekleri için istek başına nonce türetme: SHA-256 katlaması monoton sayaç + duvar saatleri +GetTickCount64+ işlem kimliği, önceki sabit$100000000geri dönüşünün yerini alır; böylece aynı milisaniyede gönderilen iki istek artık aynı anti-replay nonce'ını yeniden kullanmaz PdfInflateartık düşmanca veya bozuk girişte belleği tüketen zlib sıkıştırılmış akışı durdurmak için sıkıştırması açılmış çıktıyı 256 MiB ile sınırlar (ayrıca “zlib bombası” olarak bilinir); sınır, gerçek herhangi bir PDF akışı için cömerttir
Değiştirildi (Changed)
TPdfViewçakışma karıştırma (arama vurgulama, metin seçimi, okuma kelimesi, genişletme seçimi) artık piksel başınaGetPixel/SetPixelVkullanmaz; dikdörtgen artık tek geçişte ekran dışı 32-bppTBitmapveScanLinearacılığıyla karıştırılır; böylece render başına binlerce GDI çekirdek geçişi ortadan kalkar ve büyük seçimler duyarlı hale gelirFPdfAsn1.TDerReader.ReadIntegerartık 8 bayttan uzun INTEGER alanlarını (ve bit kaymasınınshl >= 64gerektireceği 8 baytlık negatif değerleri) reddeder; ASN.1 CMS/PAdES girişinde tanımsız kaydırma davranışı yoluyla hatalı değer hesaplamak yerine 0 döndürürParseTimeStampRespartık istek nonce'ınıTPadesTimestamp.Nonceolarak geri yansıtmaz; döndürülen nonce'ı doğrulayan TSTInfo yürüyücüsü gelene kadar alan, çağıranlara zaman damgası yanıtının taze olduğuna dair yanlış güven vermek yerine “doğrulanmamış” anlamına gelen 0 olarak kalır
Düzeltildi (Fixed)
PointsToPixels, her DPI için girişi değiştirmeden döndürüyordu: bölücü, 72 değişmezi yerinePointsPerInch(72 sabiti) idi; bu durum formülünResult := Points'e çökmesine neden oluyordu. Bu yardımcı aracılığıyla nokta→aygıt pikseli boyutlandırması yapan her harici çağıran artık doğruPoints × PixelsPerInch / 72'yi alırPdfMaxObjNum, nesne akışları kullanan belgelerde (PDF 1.5+ ObjStm) eksik sayıyordu:/ObjStmiçinde sıkıştırılmış nesnelerN 0 objişaretleyici taşımıyor; bu nedenle ham bayt taraması onları kaçırıyordu ve yeni nesneler içinMaxObj+1tahsis eden enjektörler gizli ObjStm üyeleriyle çakışıp dosyayı sessizce bozabiliyordu. Tarama artık önce nesne akışlarını genişletir, böylece her nesne numarası görünürInjectPdfAMarkersartık şifrelenmiş belgede yanlış PDF/A uyumluluk iddiası oluşturmaz: PDF/A (ISO 19005-1 §7.1) şifrelemeyi yasaklar ve enjektör daha önce sonraki doğrulamanın reddedeceği durumda bile kaynağı işaretli kopyalıyordu.HasEncryptayarlandığında kaynak artık değiştirmeden aktarılır. NormalTPdf.SaveAsPdfAyolu enjeksiyondan önce şifrelemeyi zaten kaldırır (saRemoveSecurity), dolayısıyla bu yalnızca doğrudan çağıranlara etki ederPdfReadStreamBytesartık ortaya çıkan arabelleği tahsis etmeden önce bozuk veya düşmanca dolaylı uzunlukta erken tahsis yolunu kapatan tüm dosyadan büyük/Length'i reddeder
Version 2.11.0
Eklendi (Added)
- PDFium
FPDF_FILEHANDLERkaydı artık altı geri çağrısını (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) yorumlar yerine gerçek alanlar olarak bildirir; C başlık düzeniyle eşleşir.PFPDF_FILEHANDLERdöndüren veya kullanan FFI XFA dosya aktarımı geri çağrıları (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL) Pascal form doldurma katmanında uygulanmamış olarak kalır ancak tür artık gelecekteki XFA gönderme/yükleme yolu için yapısal olarak doğrudur - PDFium kütüphanesi yükleme ve boşaltma (
LoadLibrary/UnloadLibrary) artık genel bir işlem kritik bölümüyle seri hale getirilmiştir; böylece ikiTPdfFuture<T>çalışan iş parçacığı (veya ana iş parçacığıyla yarışan çalışan) her ikisi dePDFiumLibrary=0'ı gözlemleyemez ve çift bağlama yapamaz ya da başka bir iş parçacığı bağlama ortasındayken DLL'yi serbest bırakamaz initialization/finalizationbölümü artık birim kaldırıldığındaUnloadLibrary'yi çağırır; böyleceFPDF_DestroyLibrary'nin çalıştığı güvence altına alınır (çalışan iş parçacığı birleştirme, V8 yalıtımını kaldırma, yazı tipi/önbellek sökme) ve DLL elde etmek için OS'a güvenmek yerine
Değiştirildi (Changed)
TPdf.SetActiveartık yükleme sırasında herhangi bir özel durumu yutar (daha önce yalnızcaEPdfError); böylece form/sayfa kurulumu sırasındaki akış hatası veya erişim ihlali, kısmen yüklenmiş belirsiz durumlu bileşen yerineActive=Falsebırakır- PDFium meta veri anahtarı bağımsız değişkenleri için tutarlı karakter kodlaması:
TPdf.GetMetaTextartık hamAnsiString(Tag)dönüşümü yerineGetViewerPreferenceve yükleme yollarıyla aynı FPCAnsiString/ DelphiUTF8Encodebölmesini kullanır - Yinelenen yardımcı programlar
BytesToAnsi,AnsiToBytes,WriteBytesveWriteStrtekilleştirildi:FPdfCompressbunları artıkFPdfPdfCommon'dan içe aktarır (onunWriteBytesToStream/WriteAnsiToStreamtakma adları kullanımdan kaldırıldı) veFPdfPdfa'daki gereksiz üç bağımsız değişkenliBytesToAnsiaşırı yüklemesi kaldırıldı.FPdfAsn1, kriptografi katmanının uyumluluk katmanı biriminden bağımsız kalması için yerel kopyasını kasıtlı olarak korur
Düzeltildi (Fixed)
TPdf.LoadDocument(dosya, bellek,TBytes,TMemoryStream, özel akış) veTPdf.CreateDocument'ta kaynak sızıntısı: başarılıFPDF_LoadDocument/FPDF_CreateNewDocument'tan sonraInitializeFormFillveyaReloadPageyükseldiyse,FActiveo noktada hâlâ False olduğundan yerelFPDF_DOCUMENTtanıtıcısı sızıyordu. Her yol artık yükleme sonrası kurulumutry/exceptiçine sarar ve başarısızlıkta belgeyi kapatır; bileşeni temiz etkin olmayan durumda bırakır- PDFium DLL yükleme için daha kullanıcı dostu tanılama:
CheckLoadLibrary,ERROR_BAD_EXE_FORMAT'ı (193) algılar ve yalnızca genel OS hatasını iletmek yerine ilgiliDLLs/Win32veyaDLLs/Win64derlemesine işaret eden 32/64 bit mimari uyumsuzluğunu raporlar.CheckGetProcAddressartık gerekli dışa aktarım eksik olduğunda ham OS "procedure not found" metni yerine dağıtılanpdfium.dll'nin bağlamadan daha eski olduğunu belirtir
Version 2.10.1
Düzeltildi (Fixed)
- PAdES SignerInfo sid standardizasyonu: imzalayan tanımlayıcısı artık RFC 5652 §5.3
issuerAndSerialNumberbiçimini (issuer Name + serialNumber, her ikisi de imzalayan sertifikası DER'inden olduğu gibi çıkarılır) kullanıyor ve Adobe Acrobat ile diğer uyumlu doğrulayıcıların reddettiği önceki standart dışısubjectKeyIdentifier+ full-cert SHA-256 yer tutucu biçiminin yerini alıyor. Yeni bir TbsCertificate DER gezgini (ExtractIssuerAndSerial), issuer SEQUENCE ile serial INTEGER'ı ham TLV baytları olarak okur — seri numaraları sıklıklaInt64aralığını aştığından ham TLV zorunludur.subjectKeyIdentifierbiçimi yalnızca sertifika DER ayrıştırması başarısız olduğunda yedek olarak kalır
Değiştirildi (Changed)
TCmsSignerId.SerialNumber: Int64yerineSerialDer: TBytes(ham serialNumber TLV) konuldu. CMS oluşturucu, dilimlenmiş TLV'yiIssuerAndSerialNumberiçine olduğu olarak gömer ve böylece 20 baytlık CA seri numaralarındaInt64taşmasını engeller (RFC 5280 §4.1.2.2 üst sınırı)
Version 2.10.0
Eklendi (Added)
- PAdES B-LT uzun vadeli doğrulama:
TPadesSignOptions.Level >= plB_LTolduğundaSignPadesBytes, imzalayan sertifikası ile tam ara zinciri taşıyan (kendinden imzalı kök RFC 5652 §10.2.3 uyarınca dışlanır) bir/DSSsözlüğü içeren bir artımlı güncelleme ekler ve/Extensions /ESICLevel 1 işaretini (EN 319 142-1 §5.4.2) ekler - PAdES B-LTA arşiv zaman damgası:
Level >= plB_LTAveTsaUrlayarlı olduğunda,/ByteRange'i tüm dosyayı kapsayan bir Document Time-stamp imza sözlüğü (/SubFilter /ETSI.RFC3161) eklenir ve ESIC işareti Level 2'ye yükseltilir. Bu, dört PAdES temel seviyeyi (B-B, B-T, B-LT, B-LTA) tamamlar - Sertifika zinciri toplama:
ResolveWinSignerartıkCertGetCertificateChain'i çağırır veTPadesResolvedSigner.ChainCertDer'i ara CA sertifikalarıyla doldurur; böylece B-LT/DSS /Certs, imzayı dış aramalar olmadan doğrulamak için gereken her sertifikayı taşır.CertFreeCertificateContextartık bağlıdır ve v2.8.0'da belirtilen imza başına bir bağlam sızıntısını kapatır - PDF/A tümleştirme iş akışı:
TPdf.SignPadesWithPdfAönce belgeyi PDF/A'ya dönüştürür (kitaplığın bugün ürettiği en yüksek seviye), ardından istenen PAdES imzasını uygular — EN 319 142-1 Ek A.7'nin önerdiği uzun vadeli arşiv konteyneri desenidir
Version 2.9.0
Eklendi (Added)
- PAdES B-T güvenilir zaman damgası:
TPadesSignOptionsiçinLevel,TsaUrlveNoncealanları eklendi.Level >= plB_TveTsaUrlayarlı olduğundaSignPadesBytes, oluşturulan CMS'den imza değerini çıkarır, üzerine bir RFC 3161 zaman damgası ister ve döndürülen TimeStampToken'ı SignerInfo unsigned özniteliğisignature-time-stampolarak gömer — B-T güvenilir zaman adımı (EN 319 142-1 §6.3 gereksinim o) FPdfTsa: platformlar arası RFC 3161 istemcisi —BuildTimeStampReq(version 1, imza değerine ait SHA-256 messageImprint, nonce, certReq=true),ParseTimeStampResp(PKIStatus 0/1'i kabul eder, 2+'yı reddeder, TimeStampToken ContentInfo'yu olduğu gibi çıkarır) veRequestTimestamp(tek seferde build+POST+parse).PadesTsaAvailable, HTTP arka ucu olmayan platformlarda özelliği denetlerFPdfTsaWin: Windows WinHttp arka ucu, winhttp.dll'den dinamik olarak bağlı (yeni derleme zamanı bağımlılığı yok; HTTPS, Windows sertifika deposu tarafından görüşülür).FPdfCryptoWin'in dinamik bağlama desenini yansıtırFPdfCms:ExtractSignatureValue, oluşturulan bir CMS'i gezerek ham imza oktetlerini (TSA karma girişi) kurtarır veAddSignatureTimestampToCms, ContentInfo'yu zaman damgası özniteliğini taşıyan yeni birunsignedAttrs [1](0xA1) ile yeniden oluşturur. stage-1 doğrulayıcısı sonucu B-T imzası olarak tanır
Version 2.8.0
Eklendi (Added)
- PAdES B-B imza yığını: dört yeni saf Pascal/platformlar arası yapı taşı (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) artı bir Windows CNG arka ucu (FPdfCryptoWin),TPdf.SignPades/SignPadesToStream'in uçtan uca bir PAdES B-B imzası üretmesini sağlar. İmzalayan sertifikası, Current User “MY” deposundan SHA-1 parmak iziyle çözümlenir; RSA-PSS (önerilen), RSA PKCS#1 v1.5 ve ECDSA'nın tümüNCryptSignHasharacılığıyla desteklenir FPdfSha256: kendi içinde FIPS 180-4 SHA-256 (Init/Update/Final + tek seferlik yardımcılar).FPC 3.2.2 bir SHA-2 birimi göndermez; bu yüzden kitaplık, her CMS kod yolunu RTL dallanması olmadan tek birTSHA256Digesttüründe tutmak için bir birliğe sahiptirFPdfAsn1: SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/bağlama özgü etiketleri kapsayan DER kodlayıcı (TDerWriter) ve okuyucu (TDerReader); CMS'nin gerektirdiği sabit uzunluklu kodlama ve IMPLICIT etiket işlemesiyleFPdfCms: PAdES temelinin zorunlu kıldığı content-type, message-digest ve signing-certificate-v2 signed özniteliklerini veren, opsiyonel signing-time ve commitment-type-indication ile CAdES SignedData oluşturucusu (BuildSignedData). signedAttrs özeti, SET etiketli (0x31) biçim üzerinden hesaplanır ve RFC 5652 §5.4 uyarınca IMPLICIT [0] (0xA0) etiketiyle yeniden yayımlanırFPdfCrypto+FPdfCryptoWin:PadesCryptoAvailable/ResolvePadesSignerile kriptografik arka uç soyutlaması ve Windows uygulaması crypt32.dll / ncrypt.dll'i dinamik olarak bağlar (yeni derleme zamanı DLL bağımlılığı yok).ECDSA imzaları, Windows IEEE P1363 r¦s biçiminden CMS'nin gerektirdiği DERECDSA-Sig-Valuebiçimine yeniden kodlanırSignPadesBytes: bayt düzeyinde imza enjeksiyonu — sabit genişlikli bir/Contentshex yuvası ayırır, kapsayan/ByteRange'i hesaplar, belgeyi özetler, CMS'yi oluşturup gömer ve artımlı güncellemeyi ekler. Doğrulayıcı (v2.7.0) çıktıyı PAdES B-B imzası olarak tanır
Version 2.7.0
Eklendi (Added)
- PAdES yapısal doğrulayıcı (ETSI EN 319 142-1 V1.2.1): yeni
FPdfPadesbirimi veTPdf.ValidatePadesyöntemi,/ByteRange'den ulaşılabilir imza değer sözlüklerini inceler,/Contentsiçindeki CMSSignedData'yı CAdES detached biçimini doğrulamaya yetecek kadar gezilir ve dört temel seviyeyi (B-B, B-T, B-LT, B-LTA) ile Document Time-stamp sözlüklerini (/SubFilter /ETSI.RFC3161) algılar - PAdES madde düzeyinde sorun kümesi: 26
ppei*enumu/SubFilterkabul edilebilirliğini (adbe.pkcs7.sha1veadbe.x509.rsa_sha1yasak olarak işaretlenir),/ByteRangedosya kapsamını,/Certyasağını, CMSSignedDatabiçimini (tek imzalayan, detached eContent, sürüm aralığı), zorunlu signed öznitelikleri (content-type,message-digest,signing-certificate/v2), yasak özetleri (MD5, SHA-1),/Reasonilecommitment-type-indicationkarşılıklı dışlamasını (gereksinim d), B-T güvenilir zaman gereksinimini, B-LT/DSS+/Certs+ ESIC Level 1 işaretini ve B-LTA Document Time-stamp + ESIC Level 2 işaretini kapsar - DSS enjektörü:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStream, belgenin bir kopyasına/DSSsözlüğü (/Certs,/OCSPs,/CRLsakış dizileri içerir) ve/Extensions /ESICişaretini (Level 1 veya 2) taşıyan bir artımlı güncelleme ekler ve özgün baytları korur — B-LT/B-LTA doğrulama malzemesi gömme adımıdır (madde 5.4.2) - Platformlar arası, bağımlılıksız aşama: doğrulayıcı ve enjektör saf Pascal'dır ve desteklenen her IDE'de (Delphi, Lazarus, FPC, C++Builder) çalışır; bu sürüm için hiçbir kriptografik arka uca gerek yoktur ve hiçbir yeni DLL bağımlılığı tanıtılmaz
Version 2.6.0
Değiştirildi (Changed)
- Standartlar arası yinelenenleri kaldırma: yedi ek yinelenen yardımcı fonksiyon (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) bireysel standart birimlerinden kaldırıldı ve
FPdfPdfCommoniçinde birleştirildi, böylece yaklaşık 300 satır kopyala-yapıştır bakım yükü azaltıldı - PreflightReport kalitesi: daha önce genel “missing marker” kategorisine düşen PDF/X ve PDF/E içerik sınıfı sorunları artık doğru Content/Metadata/Security kategorilerine ve maddeye özgü önerilere sahip (her iki standart boyunca ~15 enum)
- PDF/E ve PDF/R test kapsamı: daha önce sıfır kapsama sahip altı enum pozitif testler kazandı (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Lazarus derleme düzeltmesi:
Tests.PdfVT(v2.5.x'te eklenen Delphi'ye özgü bir DUnitX birimi) artık derlemeyi geri yüklemek için Lazarus projesinden dışlanır
Version 2.5.3
Eklendi (Added)
- OutputIntent tamlığı (PDF/X-4 §6.2.4):
pvviOutputIntentScheme,/S'i/GTS_PDFXolmayan bir OutputIntent'i işaretler;pvviOutputIntentMissingIdentifiereksik bir/OutputConditionIdentifier'ı işaretler - PDF/VT-2 Reference XObject muafiyeti (§6.2.2):
pvviReferenceXObjectForbidden, bir X-5g/5pg temeli üzerinde Reference XObject'leri yasal olarak kullanabilen birPDF/VT-2dosyası için artık tetiklenmez - MIME boundary karakter doğrulaması (RFC 2046 §5.1.1):
vtmviBoundaryInvalidChar, karakterleri bchars kümesinin dışında olan veya uzunluğu 70'i aşan bir boundary'yi işaretler
Düzeltildi (Fixed)
InjectPdfVTMarkersartık kaydetme seçeneklerinden Info/CreationDateve/ModDate'i yazıyor; böylece üretilen dosya, hatalı birpvviInfoModDateMismatcholmadanValidatePdfVTCompliance'i gidiş-dönüş yapar (enjektör daha önce XMP tarihlerini yeniden yazıyordu ancak Info sözlüğü tarihlerini eski halde bırakıyordu)
Version 2.5.2
Eklendi (Added)
- Info
/ModDatetutarlılığı (§6.3 NOTE 2, PDF/X-4 temeli):pvviInfoModDateMismatch, PDF tarihinden XMP tarihine normalleştirme sonrasındaxmp:ModifyDateile eşleşmeyen bir Info sözlüğü/ModDate'ini işaretler - PDF/VT-2s satır içi öbek uygunluğu (Ek A.2): MIME doğrulayıcısı artık her satır içi
application/pdfparçası içinValidatePdfVTCompliance'i çalıştırır ve PDF/VT olmayan bir gövdeyivtmviInlinePdfNotPdfVTile işaretler
Version 2.5.1
Eklendi (Added)
- DParts öbekleme doğrulaması (ISO 16612-2 §6.5 Tablo 4):
pvviDPartsBadChunking, son olmayan alt dizilerinin tam olarak 8192 girdisi olmayan veya son alt dizisi 1..8192 dışında kalan bir/DPartsdizisini işaretler - RecordLevel akışlar arası tutarlılık (Ek A.2): PDF/VT-2s MIME doğrulayıcısı artık her satır içi PDF'nin
/RecordLevel'ını çıkarır vevtmviRecordLevelMismatchile anlaşmazlığı işaretleyerek mevcut NodeNameList denetimini tamamlar - Yinelenen grafik nesne ipuçları (§6.7):
pvviGtsScopeInvalidValue, {SingleUse, Record, File, Stream, Global, Unknown} dışındaki bir/GTS_Scope'u işaretler;pvviGtsScopeRecordWithoutRecordLevel,/RecordLevelolmadan/Record'u işaretler;pvviGtsXidNotUuid, RFC 4122 uuid: URI'si olmayan bir/GTS_XID'i işaretler;pvviGtsEnvMissing,/GTS_ScopeStream veya Global olduğunda eksik bir/GTS_Env'i işaretler (§6.7.4) - MIME ileri referans algılama (Ek A.2):
vtmviForwardReference, akıştaki daha erken bir ek parçasıyla tanıtılmamış bir dosya adını (/EF /Faracılığıyla) aktaran bir satır içi PDF'yi işaretler
Düzeltildi (Fixed)
FPdfPdfvtMimeiçindekiExtractNodeNameListFromPdfveExtractRecordLevelFromPdf,AnsiFindKeytarafından döndürülen 1 tabanlı ofsetin genişletilmiş PDF'ye mutlak bir bayt ofseti olarak ele alındığı yinelenen bir off-by-one hatasını çözdü
Version 2.5.0
Eklendi (Added)
- PDF/VT Document Part Metadata (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptions,DpmEntriesveDpmTargetkazandı; böylece bir yazıcı, sentezlenen DPart düğümüne bir/DPMsözlüğü ekleyebilir; anahtar adı doğrulaması, Ek E ikinci sınıf önek kuralına ve doğrulayıcı tarafında §6.6 NMTOKEN / benzersizlik /GTS_Managedbiçim kurallarına göre yapılır - PDF/VT-2s akış değişimi (Ek A): yeni
FPdfPdfvtMimebirimi, satır içi PDF/VT öbekleri artı ek ICC profilleri taşıyanmultipart/mixedMIME zarfı içinBuildPdfVT2sStreamveValidatePdfVT2sStreamsağlar;X-PDFVT-Stream-version: 1başlık sıralama kuralı ve akışlar arasıNodeNameListtutarlılık denetimi ile TPdf.ValidatePdfVTartıkFPDFDoc_GetJavaScriptActionCountaracılığıyla yetkili bir JavaScript-action sayımı yapıyor ve bayt düzeyinde/JavaScriptad taramasını tamamlıyor
Düzeltildi (Fixed)
- PDF/X-4 temelinde PDF/VT
Trappeddoğruluğu:ptvUnknownenum değeri kaldırılır (PDF/X-4,/Unknown'u yasaklar),ptvUnspecifiedyazma sırasında/False'a normalleştirilir (eksik bir/Trappedda yasaktır) ve yenipvviTrappedInvalidsorunu eksik veyaUnknownbir değeri işaretler ValidatePdfVTComplianceartık taramadan önce nesne akışlarını (PdfExpandObjectStreams) genişletir; böylece sıkıştırılmış bir ObjStm içinde depolanan bir catalog, OutputIntent veya Metadata sözlüğü (PDF 1.5+, PDF/X-4 üreticileri için tipik), bayt düzeyinde aramalarla ulaşılabilir olur
Değiştirildi (Changed)
- PDF/VT-1 artık tam PDF/X-4 içerik yasaklarını miras alır:
pvviAcroFormForbidden(/AcroFormveya/XFA),pvviAdditionalActionsForbidden(catalog/AA),pvviMissingTrimBoxvepvviReferenceXObjectForbidden(Reference XObject, yalnızca X-5g/5pg) - Standartlar arası yinelenenleri kaldırma:
BuildDictObj,IccComponentCount, yerleşik sRGB ICC profili (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumvePdfExpandObjectStreams,FPdfPdfa/FPdfPdfx/FPdfPdfvtiçindeki üç kat çoğaltılmış yerel kopyalardanFPdfPdfCommoniçindeki tek kanonik konuma yükseltildi;3144 baytlık ICC sabiti artık kod tabanında tam olarak bir kez var
Version 2.4.0
Düzeltildi (Fixed)
InjectPdfUaMarkersartık bir çapraz referans akışı (cross-reference-stream) temelinde trailer/Inforeferansını düşürmüyor: yerel olanSourceTrailerInfoRef(xref-stream yedeğinden yoksundu), paylaşılanPdfSourceTrailerInfoRefile değiştirildi (v2.0.0 sürümünden beri yedeğe sahip olan PDF/A kopyasından aktarıldı)- Paylaşılan
PdfReadStreamBytesartık dolaylı/Length N G Rreferanslarını işliyor (yerel PDF/A kopyasından aktarıldı), böylece PDF/VT, PDF/R ve PDF/E doğrulayıcıları, dolaylı Length kullanan araçlar tarafından üretilen XMP meta veri akışlarını artık yanlış okumuyor veya atlamıyor (Acrobat, Ghostscript)
Değiştirildi (Changed)
- Standartlar arası veri tekilleştirme:
FPdfPdfaveFPdfPdfxiçindeki yerelPdfReadTrailerkopyaları,FPdfPdfaveFPdfPdfuaiçindeki yerelSourceTrailerInfoRefkopyaları veFPdfPdfaiçindeki yerelPdfReadStreamByteskopyalarının tümü silindi — paylaşılanFPdfPdfCommonsürümleri artık her yerde geçerli, bu da yaklaşık ~330 satır yinelenen kodu kaldırıyor ve kopyaları senkronize tutma bakım yükünü ortadan kaldırıyor - PDF/X test kapsamı eksikliklerinin giderilmesi: daha önce sıfır kapsama sahip yedi içerik sınıfı enum yapısı pozitif testler kazandı (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Değiştirildi (Changed)
- PDF/A test kapsamı eksikliklerinin giderilmesine devam ediliyor: sıfır kapsama sahip üç enum yapısı daha pozitif testler kazandı;
pvaiForbiddenRenderingIntent(§6.2.9) bir içerik akışındaki standart dışı bir rendering-intent adını işaretler;pvaiJpeg2000Violation(§6.2.2) Part 2 kapsamında/NumComponentsdeğeri {1,3,4} dışında kalan bir JPXDecode görüntüsünü işaretler;pvaiInlineImageLzwForbidden(§6.1.10) Part 2 kapsamında LZW filtresi kullanan bir satır içi görüntüyü işaretler
Version 2.2.0
Değiştirildi
- Çapraz referans akışı (cross-reference-stream) gerileme testleri: mevcut
Validate_XrefStreamTrailer_DetectsConformanceartık katalog/Metadatareferansının çözümlendiğini ve XMPpdfaid:partbilgisinin bir xref-stream tabanında okunduğunu da doğrulamaktadır (yalnızca/Root+/ID) ve yeni birInjectPdfA_XrefStreamBase_RoundTripstesti v2.0.0 sürümünde eklenen enjektörün xref-stream yolunu korumaktadır; standartlar arası iki test (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) PDF/E ve PDF/R doğrulayıcılarının artık xref-stream PDF'lerini ayrıştırılamaz olarak reddetmediğini doğrulamaktadır - PDF/A test borcu kapatılması:
Validate_MinimalPdf_FlagsRequiredMarkers, çıplak bir minimal PDF'inpvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadatavepvaiMissingXmpDateshatalarını tetiklediğini doğrulamaktadır — böylece zaten eşdeğer testleri olan PDF/E ve PDF/X doğrulayıcıları ile arasındaki simetri açığı kapatılmaktadır; sıfır kapsama sahip iki enum daha pozitif testler kazanmıştır:pvaiUnembeddedFontvepvaiSubsetMissingCidSet
Version 2.1.0
Düzeltildi
- PDF/E yanlışlıkla v2.0.0 çapraz referans akışı düzeltmesinin dışında bırakılmıştı: hem
InjectPdfEMarkershem deValidatePdfECompliance,PdfReadTrailerişlevini halaAcceptXrefStreamolmadan çağırıyordu, bu nedenle PDF/E enjektörü PDF 1.5+ çıktılarında (pdfium'un varsayılanSaveAsCopyçıktısı) sessizce başarısız oluyordu; her iki çağrı yeri de artıkTruedeğerini geçmektedir - Paylaşılan
PdfReadTrailerçapraz referans akışı geri dönüşü (fallback) artık PDF/A ve PDF/X yerel kopyalarının zaten sahip olduğu/Type /XRefkorumasını taşımaktadır, böylece ilgisiz bir sözlüğe işaret eden bozuk birstartxrefuzaklığı (offset) treyler (trailer) olarak yanlış ayrıştırılmak yerine temiz bir şekilde başarısız olur ValidatePdfUaCompliance(v2.0.0) içindeki dolaylı referans/Langçözümleyicisine ulaşılamıyordu:PdfFindObjDictyalnızca<<sözlüklerini bulur, ancak bir/Langdize nesnesi sözlük içermeyen(...)veya<...>şeklindedir; bunun yerine dize belirtecini bulan doğrudan bir nesne-gövde taraması getirilmiştir
Değiştirildi
- Paylaşılan
FPdfPdfCommonsürümlerinin bayt düzeyinde özdeş kopyaları olan yedi adet ölü-gölge yardımcı kopya (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj)FPdfPdfaveFPdfPdfuabirimlerinden kaldırılmıştır — paylaşılan sürümler artıkusesaracılığıyla her yerde geçerlidir
Version 2.0.0
Düzeltildi
- Standartlar arası sessiz başarısızlık: paylaşılan
PdfReadTraileryardımcısı (PDF/UA, PDF/X, PDF/VT ve PDF/R işaretleyici enjektörleri ve doğrulayıcıları tarafından kullanılır) artık birAcceptXrefStreamparametresi kabul etmekte ve hiçbirtraileranahtar sözcüğü bulunmadığında (PDF 1.5+) çapraz referans akışı nesne sözlüğüne geri dönmektedir; önceden, pdfium'un (bir çapraz referans akışı kullanan)SaveAsCopyçıktısı her işaretleyici enjektörünün sessizce başarısız olmasına neden oluyordu — kaynak baytlar değiştirilmeden kopyalanıyor ve çağrı yine de başarı döndürüyordu; PDF 2.0 tabanı her zaman bir çapraz referans akışı olan PDF/R-1.0 doğrulayıcısı etkisiz durumdaydı; PDF/A doğrulayıcısının gelişmiş uygulaması, her standardın faydalanması için paylaşılan yardımcıya aktarılmıştır InjectPdfUaMarkersveInjectPdfAMarkersiçindeki treyler (trailer) sözlüğü taraması artık yalın bir>>araması yerine derinliğe duyarlıPdfDictEndkullanmaktadır, böylece iç içe geçmiş bir sözlük içeren (örneğin/Encrypt << ... >>) bir treyler artık sondaki bir/Infogirdisinden önce yarıda kesilmez
Değiştirildi
TPdf.ValidatePdfUa, hassas Pdfium nesne modelipvuaiPdfiumFontNotEmbeddedhatası zaten tetiklendiğinde kaba bayt düzeyindekipvuaiFontNotEmbeddedhatasını artık bastırmaktadır, böylece ön uçuş raporu aynı kusur için artık iki adet birbirine yakın kopya “embed your fonts” satırı taşımamaktadırpvuaiLangInvalidFormat(§7.2) artık dolaylı referans/Lang(N 0 R) değerini kendi dize nesnesine çözümlemekte ve içeriği doğrulamaktadır, böylece dolaylı olarak başvurulan bir dil etiketi artık görünmeyen bir nokta olmaktan çıkar
Version 1.99.0
Düzeltildi
pvuaiLangInvalidFormat(§7.2) artık onaltılık kodlanmış (hex-encoded)/Langdizelerine doğrudan geçiş izni vermez: UTF-16BE çiftleri (birFE FFBOM ile birlikte) ve yalın ASCII onaltılık dizeleri artık çözülür ve değişmez(...)dizeleriyle aynı BCP 47 dilbilgisi denetiminden geçirilir, böylece hatalı biçimlendirilmiş bir onaltılık/Langyakalanırken uyumlu olanın (örneğin UTF-16BEen-US) işaretlenme riski ortadan kalkar
Değiştirildi
pvuaiFontMissingToUnicode(§7.21.7) artık ilgili maddenin listelediği dört muafiyet koşuluyla eşleşecek şekilde,WinAnsiEncodingveMacRomanEncoding'in yanı sıra/MacExpertEncoding'i de muaf tutmaktadır
Version 1.98.0
Eklendi
pvuaiNeedAppearancesTrue(§7.18.4) artık/NeedAppearancesbayrağı true olan bir AcroForm'u işaretler; bu sayede widget görünümleri güvenilir bir şekilde kilitlenemez ve yardımcı teknolojiler bunları yapı ağacıyla ilişkilendiremez. PDF/A doğrulayıcıdan taşınmıştır ve tarama alanını daraltmak için/AcroFormvarlığıyla sınırlandırılmıştır
Değiştirildi
- veraPDF test külliyatı gerilemesi: §7.20 Reference-XObject geçme+kalma çifti ve §7.21.4.2 alt küme CharSet/CIDSet geçme+kalma çiftleri
Live_Corpus_ValidatePdfUaMatchesConformanceişlevine bağlandı. Ayrıca §7.21.7 ToUnicode-forbidden-value ve §7.18.6.2 media-clip geçme örnekleri yanlış pozitif korumaları olarak bağlandı (kalma örnekleri, bayt düzeyindeki taramanın yakalayamayacağı sözlük düzenleri kullandığından yalnızca geçme tarafı bağlanmıştır) - Külliyatın geçiş yolu doğrulama listesi 15 yeni sıfır-yanlış-pozitif koruması kazandı, böylece her aktif
pvuai*bayt düzeyindeki ve yapı denetimi artık uyumlu örneklerle test edilmektedir (daha önce 60 aktif sorundan yalnızca ~30'u korunuyordu). Bayt düzeyindeki denetleyici kodunu çözemediği onaltılık kodlanmış/Langdizelerini ihtiyatlı bir şekilde işaretlediği içinpvuaiLangInvalidFormatkoruması bilerek hariç tutulmuştur
Version 1.97.0
Düzeltildi
ValidatePdfUaStructureElementssağlamlaştırması:EnclosingTableüst zincir geçişi artık bir atlama sayacı (öğe sayısıyla sınırlı) taşımaktadır, böylece yapay bir yapı öğesi dizisindeki hatalı biçimlendirilmiş birParentIndexdöngüsü artık çağırıcıyı askıda bırakamaz.ValidatePdfUaPageContentTaggingişaretli-içerik-kimlik dizisi tahsisi artık bir milyon girdiyle sınırlandırılmıştır ve hatalı biçimlendirilmiş/kötü amaçlı birMarkedContentIDüzerinde çoklu GB tahsisini önler
Değiştirildi
pvuaiOrderedListMissingListNumberingenum açıklaması artık denetimin ne yaptığını doğru bir şekilde açıklamaktadır:ListNumberingdeğeri ISO 32000-1 Tablo 347 kümesinin dışında olan birLöğesini işaretler (eksik bir öznitelik işaretlenmez). Önceki açıklama, uygulamanın yapmadığı, özniteliği eksik olan sıralı listeleri de algıladığını ima ediyordu- İki
7.21.3.3-t02WMode-uyumsuzluğu corpus kalma örneği artıkLive_Corpus_ValidatePdfUaMatchesConformanceişlevine bağlandı — v1.95.0 sürümünden beri CMap akışı FlateDecode ile şişirilmektedir, bu nedenle sözlük ile içerik karşılaştırması artık okunabilir tarafta çalışır. Güncelliğini yitirmiş “bağlı değil” yorumu kaldırılmıştır
Version 1.96.0
Eklendi
- Standartlar arası tutarlılık:
TPdf.ValidatePdfUa, PDF/A doğrulayıcıdan taşınan iki denetim kazandı.pvuaiAnnotationFlagsViolation(§7.18.1), yardımcı teknoloji okuma akışını bozan Hidden / Invisible / NoView bayrağını taşıyan muaf tutulmamış bir ek açıklamayı işaretler.pvuaiActionTargetMissing(§7.18.5) ise gerekli hedef anahtarı (/F+/D, /URI, /F) eksik olan ve bağlantıyı yardımcı teknolojiler tarafından kullanılamaz halde bırakan bir GoToR / URI / SubmitForm eylemini işaretler
Düzeltildi
- Sayfalar arası yapı ağacı birleştirme:
TPdf.ValidatePdfUaiçindekiAllElemsbiriktirme döngüsü artık her öğeninParentIndexdeğerini sayfaya özgü diziden birleştirilmiş diziye yeniden temellendirir. Bu yapılmasaydı sayfa 2'nin alt öğeleri, sayfa 1'in dilimini gösteren sayfaya özgü bir dizini koruyacak ve ParentIndex'e bağlı her denetimi (tablo/liste yapısı, §7.4.4 H-alt sayısı, EnclosingTable) sessizce bozacaktı - RoleMap ayrıştırma:
PdfReadRoleMapPairs, bir değer dolaylı bir başvuru (N 0 R) veya dizi ([...]) olduğunda — her ikisi de ISO 32000-1 14.8.5.1 uyarınca geçerli RoleMap biçimleridir — tüm anahtar/değer taramasını artık sonlandırmaz. Artık döngüyü kesmek (Break) yerine sadece o girdiyi atlar (Continue), böylece dolaylı/dizi girdisinden sonra eşlenen türlerdepvuaiRoleMapUnresolvedyanlış pozitiflerini ortadan kaldırır
Değiştirildi
FPdfPreflightReport: Daha önce genel “missing marker” kategorisine ve önerisine düşen 18 aktifTPdfUaValidationIssuedeğeri artık doğru kategorileri (Structure / Content / Metadata / Security) ve maddeye özgü önerileri taşımaktadır. AyrıcaPDFSpecComplianceMatrix.mdiçindekipuaNone / pua1→pucNone / puc1yazım hatası düzeltildi
Version 1.95.0
Değiştirildi
TPdf.ValidatePdfUageri çağırma ve sağlamlık geçişi: §7.21.3.3pvuaiCMapWModeMismatchdenetimi ve §7.21.7pvuaiToUnicodeForbiddenValuedenetimi artık taramadan önceFlateDecodeile sıkıştırılmış CMap / ToUnicode akışlarını şişirir (daha önce yalnızca sıkıştırılmamış akışlar değerlendiriliyordu, bu bilinen bir yanlış negatif durumuydu). PaylaşılanPdfInflate/PdfReadAndDecodeStreamyardımcılarıFPdfPdfa/FPdfPdfxbirimlerindenFPdfPdfCommonbirimine yükseltildi, böylece her uygunluk birimi tek bir kopyayı paylaşır
Eklendi
pvuaiSubsetCharSetEmpty(§7.21.4.2), dize değeri boş olan bir/CharSetanahtarı taşıyan bir Type 1 alt kümeFontDescriptor'ını işaretler — mevcutpvuaiSubsetMissingCharSetyalnızca eksik anahtarı yakalıyordu. CID'si olmayan bir yazı tipi yasal olarak boş bir bit eşlem taşıyabileceğinden boş bir/CIDSetişaretlenmez
Version 1.94.0
Eklendi
- İkinci geçiş
TPdf.ValidatePdfUadenetimi, madde madde yapılan bir inceleme ve PDF/UA yolu tarafından kullanılmayan ancak önceden sarmalanmış olan Pdfium yerel API'lerinin yeniden taranmasıyla ortaya çıkan altı ISO 14289-1 açığını kapattı.pvuaiHeadingFormatInvalid(§7.4.3), H ile başlayan ancak saf Arap rakamları yerine ayraçlar, boşluklar veya Romen rakamları taşıyan kullanıcı tanımlı başlık etiketlerini işaretler.pvuaiMissingDocumentOutline(§7.17, should), yer imi ana hattı taşımayan çok sayfalı belgeleri işaretler (tek sayfalı belgeler muaftır).pvuaiStructElementLangInvalid(§7.2), geçerli bir BCP 47 etiketi olmayan bir yapı öğesi/Langdeğerini işaretler.pvuaiWidgetMissingPrintField(§7.14 / §7.18.4), PrintField öznitelik sahibinden yoksun bir Widget yapı öğesini işaretler.pvuaiLinkNotInStructureTree(§7.18.5),/Subtype /Linkek açıklamaları Link yapı öğesi olarak sunulmayan belgeleri işaretler.pvuaiPdfiumAnnotationMissingContentsvepvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5), gizli, crop-box dışı, Popup ve Widget ek açıklamalarını muaf tutan kesin bir Pdfium nesne modeli ek açıklama taraması ekler — bu da/Fbayraklarını veya/Rectözniteliğini okuyamayan bayt düzeyindeki sezgisel yöntemin yanlış pozitiflerini ortadan kaldırır
Version 1.93.0
Eklendi
TPdf.ValidatePdfUaartık bayt düzeyindeki inceleyicinin üzerine PDF/A round-7 mimarisini yansıtan bir Pdfium nesne modeli geçişi katmanlandırır: her sayfanın metin nesneleriniFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) aracılığıyla dolaşır ve her karakteriFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) veFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) aracılığıyla tarar — bu, yalnızca sıfır yazı tipi programı mevcut olduğunda veya hiçbir/ToUnicodegörünmediğinde tetiklenen bayt düzeyindeki sezgisel yöntemlerden daha kesindir. Tarama üç seviyede kısa devre yapar: üç Pdfium katmanı sorununun tamamı önceden ayarlandığında sayfa döngüsü sonlanır, nesne başına döngü ilk gömülü olmayan yazı tipinde sonlanır ve karakter taramasıUnicodeMapErrorzaten vurulduğunda.notdefgeçişini atlar. PDF/UA, Pdfium nesne modeli katmanı olmayan son PDF standart doğrulayıcısıydı
Version 1.92.0
Eklendi
- PDF/R-1 doğrulayıcı (
FPdfPdfr) için başlık doğrulaması, ObjStm yasağı, raster işareti algılama ve temiz dosya yanlış pozitif olmayan korumasını kapsayan ilk test dosyası olanTests.PdfRoluşturuldu. Altı PDF standardı test paketinin tümü artık özel test dosyalarına sahiptir: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = toplam 212 test
Version 1.91.0
Eklendi
ValidatePdfEveValidatePdfVT, daha önce yalnızca PDF/A, PDF/UA ve PDF/X doğrulayıcılarında bulunan içerik düzeyinde denetimler kazandı:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(yalnızca PDF/E),pveiEmbeddedFilesForbidden(yalnızca PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden.TPdf.ValidatePdfEveTPdf.ValidatePdfVTayrıca sayfa metin nesneleriniFPDFFont_GetIsEmbeddedaracılığıyla dolaşan ve ilk gömülü olmayan yazı tipinde kısa devre yapan bir Pdfium nesne modeli katmanı (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded) kazandı
Version 1.90.0
Eklendi
TPdf.ValidatePdfXartık bayt düzeyindeki denetleyicinin üzerine bir Pdfium nesne modeli geçişi katmanlandırır: her sayfanın metin nesneleriniFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedaracılığıyla dolaşır ve gömülü olmayan bir yazı tipinipvxiPdfiumFontNotEmbeddedolarak bildirir — bu, yalnızca sıfır yazı tipi programı mevcut olduğunda tetiklenen bayt düzeyindeki sezgisel yöntemden daha kesindir. Dolaşma, bulunan ilk gömülü olmayan yazı tipinde kısa devre yapar
Değiştirildi
TPdf.ValidatePdfUayapı ağacı geçişi:pvuaiUntaggedContentzaten bulunduğunda, sonraki sayfalarda sayfa başına yapılanValidatePdfUaPageContentTaggingçağrısı (işaretli-içerik-kimliği talep haritası oluşturan ve her metin/resim nesnesini çapraz denetleyen) artık atlanır — sayfalar arası denetimler için yapı öğeleri hala toplanır (Note benzersiz kimliği, başlık dizisi), ancak sayfa başına maliyetli olan içerik etiketleme geçişi erken durdurulur
Version 1.89.0
Değiştirildi
TPdf.ValidatePdfAPdfium nesne modeli katmanı performansı: sayfa/nesne geçişi artık üç seviyede kısa devre yapar — uygulanabilir tüm Pdfium katmanı sorunları zaten bulunduğunda sayfa döngüsünden çıkılır, her iki nesne bazlı sorun (yazı tipi gömme + saydamlık) ayarlandığında nesne başına döngüden çıkılır veUnicodeMapErrorzaten vurulduğunda metin sayfası karakter taraması.notdefgeçişini atlar.Assigned()API kullanılabilirlik denetimleri ve uygunluk bayrakları, her sayfa/nesne/karakterde yeniden değerlendirilmek yerine döngüden önce bir kez yerel boolean değişkenlerinde önbelleğe alınır. Büyük, uygun olmayan bir belgede tarama artık tüm sayfaları taramak yerine ilk sayfadan sonra durabilir; uygun bir belgede ise sayfa başına ek yük daha düşüktür (tekrarlananAssignedçağrıları yoktur)
Version 1.88.0
Eklendi
ValidatePdfX, PDF/X'in dosya biçimi işaretlerinin ötesinde getirdiği baskı alışverişi kısıtlamalarını kapsayan sekiz yeni içerik düzeyindeTPdfXValidationIssuedeğeri kazandı:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(hiçbir sayfada/TrimBoxolmaması) vepvxiTrappedNotSet(/Trappedözniteliğinin olmaması veya/Unknownolması). PDF/X doğrulayıcı daha önce yalnızca XMP/OutputIntent işaretlerini kontrol ediyordu; bu onun ilk içerik düzeyindeki geçişidir. Tüm uygunluk birimlerinin kullanabilmesi içinFPdfPdfCommonbirimine paylaşılanPdfStructureBytes/PdfHasName/PdfCountNameyardımcıları eklendi
Version 1.87.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.21.3 bileşik yazı tipi kurallarını kapsamaktadır:
pvuaiCidSystemInfoMismatch, gömülü CMap'i ve alt CIDFont'uRegistry/Orderingkonusunda birbiriyle çelişen ya da CIDFontSupplementdeğeri CMap'inkini aşan Type0 yazı tiplerini işaretler;pvuaiCMapNotEmbedded, ISO 32000-1 Tablo 118'de önceden tanımlanmış CMap'ler arasında yer almayan ve adla (EncodingveyaUseCMapolarak) başvurulan CMap'leri işaretler;pvuaiCMapWModeMismatchise sözlüktekiWModedeğeri akış içeriğindeki WMode'dan farklı olan gömülü CMap'leri işaretler
Düzeltildi
- §7.21.3.2
pvuaiCidFontMissingCidToGidMapdenetimi,Subtypeanahtar/değer çiftinin bir satır sonu karakteriyle ayrıldığı CIDFontType2 sözlüklerini kaçırıyordu; artık ayrıcaIdentitydışındaki birCIDToGIDMapad değerini de işaretlemektedir
Version 1.86.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.21.6 TrueType kodlama kurallarını kapsamaktadır:
pvuaiTrueTypeEncodingInvalid,Encodinganahtarı eksik olan ya da değeri (doğrudan veyaBaseEncodingaracılığıyla)MacRomanEncodingya daWinAnsiEncodingolmayan sembolik olmayan TrueType yazı tiplerini işaretler;pvuaiSymbolicTrueTypeEncodingise standart dışı birEncodingadı taşıyan sembolik TrueType yazı tiplerini işaretler
Version 1.85.1
Değiştirildi
- ISO 14289-1 §7.18.3 sekme sırası denetimi
pvuaiMissingTabsOrderartık sayfa bazında çalışmaktadır: ek açıklama içeren her sayfa, kendi sayfa sözlüğünde/Tabs /Sbildirmek zorundadır; böylece uyumlu bir kardeş sayfa, bu bildirimi olmayan bir sayfayı artık gizleyemez
Version 1.85.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.15 uyarınca dinamik ile statik XFA formlarını birbirinden ayırt etmektedir:
pvuaiXfaDynamic, XFA yapılandırmasındadynamicRenderdeğerinirequiredolarak ayarlayan formları işaretler
Değiştirildi
- Herhangi bir XFA adayını işaretleyen eski
pvuaiXfaPresentbayrağı kullanımdan kaldırılmış ve artık tetiklenmemektedir (statik XFA §7.15 ile uyumludur); API uyumluluğu için enum değeri korunmaktadır
Version 1.84.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.1'in gerektirdiği etiketlenmemiş gerçek içeriği tespit etmektedir:
pvuaiUntaggedContent, sayfanın yapı ağacı tarafından (işaretli içerik kimlikleri aracılığıyla) sahiplenilmeyen ve Artifact olarak da işaretlenmeyen işlenmiş metin ile görüntü nesnelerini işaretler - Doğrudan kullanım için yeni sayfa düzeyinde yardımcı işlevler:
GetPageContentMarkInfosveValidatePdfUaPageContentTagging,TPdfPageContentMarkInfokaydıyla birlikte
Version 1.83.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.4.4 başlık modelini uygulamaktadır:
pvuaiHeadingModelMixed, genelHetiketini numaralıH1..Hnbaşlıklarıyla karıştıran belgeleri işaretler;pvuaiHeadingMultipleInNodeise birden fazla altHbaşlığı taşıyan yapı düğümlerini işaretler
Version 1.82.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.1'in gerektirdiği RoleMap'i çözümlemektedir:
pvuaiRoleMapRemapsStandard, standart bir yapı türünü yeniden tanımlayan RoleMap girişlerini işaretler;pvuaiRoleMapUnresolvedise RoleMap zinciri eksik, sarkık veya döngüsel olan kullanılmış standart dışı yapı türlerini işaretler — standart bir türe ulaşan dolaylı zincirler kabul edilir ve kullanılmayan RoleMap girişleri hiçbir zaman değerlendirmeye alınmaz - Doğrudan kullanım için yeni yardımcı işlevler: PDF adı
#hhkaçış kod çözme özelliğine sahipPdfUaIsStandardStructType,PdfReadRoleMapPairsveValidatePdfUaRoleMapUsage
Version 1.81.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.6'nın gerektirdiği ISO 32000-1 liste etiketlemeyi kapsamaktadır:
pvuaiListStructureInvalid, bir L kapsayıcısı dışındaki LI öğelerini ve bir LI öğesi dışındaki Lbl/LBody parçalarını işaretler; iç içe listelere ve Note ile BibEntry öğeleri içindeki meşru Lbl kullanımına izin verilmektedir
Version 1.80.0
Eklendi
- PDF/UA doğrulaması artık ISO 14289-1 §7.5'in gerektirdiği ISO 32000-1 tablo etiketlemeyi kapsamaktadır:
pvuaiTableStructureInvalid, bir TR satırı dışındaki TH/TD hücrelerini ve Table kapsayıcıları dışındaki satır ya da satır gruplarını işaretler;pvuaiTableHeaderMissingScope, ilişkisi ne bir Scope özniteliği ne de Headers/ID ilişkilendirmesiyle belirlenemeyen başlık hücrelerini işaretler;pvuaiTableHeadersUndefinedIdise yapı öğesi kimliği tanımlamayan belgelerdeki Headers başvurularını işaretler TPdfStructureElement, yapı ağacı yürüyüşü sırasında çözümlenenScope,HasHeaders,HeadersIds,ColSpanveRowSpantablo özniteliklerini ortaya çıkarmaktadır
Değiştirildi
- Yapı ağacı yürüyüşü artık her öğenin öznitelik sözlükleri üzerinde tek bir geçişte tüm düzen ve tablo özniteliklerini okumaktadır; önceki uygulamada her öznitelik için ayrı bir tarama yapılıyordu
Version 1.79.1
Eklendi
AnnotationsLabörneği Lazarus ve C++Builder'a taşındı, mevcut Delphi konsol örneğine katıldı
Düzeltildi
TPdf.CreateAnnotation, dörtlü noktalar (Vurgu, Altı Çizili, Üstü Çizili, Dalgalı) kullanan işaretleme ek açıklamaları için "Cannot set attachment points" hatası verebiliyordu çünkü yeni ek açıklamanın henüz değiştirecek bir dörtlü yuvası yoktu; artık bunun yerine ilk dörtlüyü ekliyor
Version 1.79.0
Eklendi
- Yeni
AnnotationsLabDelphi konsol örneği: Metin, Vurgu, Kare ve Daire ek açıklamaları oluşturur, bunları bir PDF'ye yazar, ardından dosyayı yeniden yükler ve sayfa ek açıklama listesini numaralandırır
Version 1.78.0
Eklendi
- Yeni
TPdf.MeasureTextveTPdf.MeasureTextWidth: bir sayfaya içerik eklemeden belirli bir yazı tipi ve boyutu için bir dizenin oluşturulan genişliğini ve yüksekliğini (PDF kullanıcı birimleri, 1 birim = 1/72 inç) ölçer, böyleceAddTextüzerinde düzen ve kelime kaydırma mantığını mümkün kılar; bağımsızFPdfMeasureünitesi tarafından bir sınıf yardımcısı olarak sağlanır - Yeni
TPdf.WrapText:MeasureTextWidthüzerine inşa edilmiş, metni boşluklardan bölen ve kelimeleri belirli bir genişlikten (PDF kullanıcı birimleri) daha geniş olmayan satırlara sığdıran açgözlü kelime kaydırma; çok uzun tek bir kelime, kaydırılan satırları bir dizi olarak döndürerek kendi satırını alır (kelime içi bölme olmaz)
Version 1.77.0
Eklendi
ValidatePdfA, önceki boşluk denetiminde "NO" veya "okuyucu davranışı" olarak derecelendirilen maddeleri kapsayan üç yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra sayıları, mevcut değerler değişmedi):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — bir eşleme hatası olmadan Unicode 0'a çözümlenen bir karakter, bir.notdefglif referansının çalışma zamanı belirtisi; Pdfium nesne modeli katmanı aracılığıyla algılandı),pvaiWordBreakMissing(Seviye A 6.8.3.2 — boşluk içermeyen 20 karakterden uzun bir içerik akışı gösterim dizesi, muhtemel bir birleştirilmiş kelime ihlali; CJK yanlış pozitiflerinden kaçınan kaba bir buluşsal yöntem) vepvaiLinkActionMissingTarget(6.6.3 — ekran hedef anahtarı eksik olan, böylece bir okuyucunun onu sunamayacağı bir GoToR/URI/SubmitForm eylemi)
Version 1.76.0
Eklendi (Added)
ValidatePdfA, üç yeniTPdfAValidationIssuedeğeri kazandı (sıra numaraları eklendi, mevcut değerler değişmedi):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — geçerli bir UTF-8 oluşturmayan, ≥ 0x80 baytlar içeren bir/BaseFontveya/FontNamesimgesi (token)),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — bir sayfa içerik akışındaki satıriçi (inline) bir görüntü, LZW veya Crypt filtresi kullanıyor) vepvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — Encoding sözlüğü/Differencestaşıyan sembolik olmayan bir TrueType fontu)
Version 1.75.0
Eklendi (Added)
ValidatePdfAüç yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — 32 bit işaretli tamsayı sınırı olan 2.147.483.647'yi aşan sayısal bir belirteç),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — ISO 32000-1 §11.3.5 standart karışım modu (blend-mode) kümesi dışında bir/BMdeğeri; yalnızca Normal/Compatible'a izin veren PDF/A-1pvaiTransparentColorSpace'i tamamlar) vepvaiHexStringOddDigits(6.1.6 — tek sayıda onaltılık rakam içeren bir<...>onaltılık dizesi (hex string))
Version 1.74.0
Eklendi (Added)
ValidatePdfAüç yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvaiPermissionsViolation(6.1.12 —/DocMDPile birlikte/DigestLocation,/DigestMethodveya/DigestValuetaşıyan bir/Permssözlüğü),pvaiTransActionForbidden(PDF/A-2 6.5.1 — hatalı/Transparencyeşleşmelerini önlemek için/S /Transeylem sözlüğü kalıbı aracılığıyla tespit edilen bir Trans geçiş eylemi) vepvaiPdfiumObjectTransparency(PDF/A-1 6.4 — bir sayfa nesnesiFPDFPageObj_HasTransparency'ye göre gerçek saydamlık (transparency) taşır; bu, bayt düzeyindeki ad taramasının gözden kaçırabileceği karışım modu/yumuşak maske etkilerini yakalamak için v1.73.0'da tanıtılan Pdfium nesne modeli katmanını genişletir)
Version 1.73.0
Eklendi (Added)
TPdf.ValidatePdfAartık bayt düzeyindeki denetleyicinin üzerine bir Pdfium nesne modeli geçişi katmanlıyor:FPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedaracılığıyla her sayfanın metin nesnelerinde gezinir ve gömülü olmayan render edilmiş bir yazı tipinipvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4) olarak raporlar; ayrıcaFPDFText_HasUnicodeMapError'ı taramak için her metin sayfasını yükler ve bozuk bir Unicode eşlemesinipvaiPdfiumUnicodeMapError(6.3.8) olarak raporlar. Bunlar, bayt düzeyindeki denetleyicinin yapamayacağı kontrollerdir — yalnızca ad belirteçlerini (name tokens) görür, çözümlenmiş yazı tipi tanıtıcılarını veya karakter başına eşleme durumunu görmez — ve bayt düzeyindeki sonuca dahil edilirler. BağımsızValidatePdfACompliancebayt düzeyindeki işlevi değişmemiştir
Version 1.72.0
Eklendi (Added)
ValidatePdfAbeş yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalog/NeedsRenderingtaşımamalıdır),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — bir OutputIntent/DestOutputProfileReftaşımamalıdır),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 —/EFiçeren bir dosya belirtimi/UFde taşımalıdır),pvaiXmpPacketBytesAttr(6.7.5 — XMP paket başlığı, kullanımdan kaldırılmış olanbytes=veyaencoding=özniteliğini taşımamalıdır) vepvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — ek açıklamanın/FToggleNoView biti, değer 512, yasaktır)
Version 1.71.0
Değiştirildi (Changed)
ValidatePdfUaartıkpvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6) bildiriyor: structure-tree walker (yapı ağacı gezgini), Pdfium attribute API'si aracılığıyla herLöğesindekiListNumberingdüzen özniteliğini çözer ve ISO 32000-1 Tablo 347 seti (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square) dışındaki herhangi bir değeri işaretler. Liste sırasız olabileceğinden eksik bir öznitelik işaretlenmez; bu, 5. turun sonunda kaydedilen son kalıntı ISO 14289-1 boşluğunu kapatır
Version 1.70.0
Eklendi (Added)
ValidatePdfUadört yeniTPdfUaValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — bir CID alt kümesiFontDescriptor,/CIDSetbildirmelidir),pvuaiToUnicodeForbiddenValue(7.21.7 — bir ToUnicode CMap hiçbir koduU+FEFFveyaU+FFFEile eşlememelidir; sıkıştırılmamış akışlar<FEFF>/<FFFE>çıktı formları için taranır),pvuaiLangInvalidFormat(7.2 —/Langgeçerli bir RFC 1766 / BCP 47 etiketi olmalıdır; esnek bir dilbilgisien,en-US,zh-Hans,es-419etiketlerini kabul eder ve açıkça uyumlu olmayan değerleri işaretler) vepvuaiOrderedListMissingListNumbering(7.6 — API bütünlüğü için tutulmaktadır; henüz doğrulayıcı tarafından bildirilmemektedir çünkü sıralı listeleri sırasız listelerden güvenilir bir şekilde ayırt etmek, structure-tree walker'ın sunmadığıListNumberingöznitelik değerini gerektirir)
Version 1.69.0
Eklendi (Added)
ValidatePdfUaiki yeniTPdfUaValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — bir Widget yapı öğesi birFormöğesinin içine yerleştirilmelidir; structure-tree walker artık her Widget’ın doğrudan üst öğe türünü doğrulamaktadır) vepvuaiSubsetMissingCharSet(7.21.4.2 — bir Type 1 alt kümesiFontDescriptor,/FontNameüzerindeki altı harfli+alt küme adı önekiyle tanımlanan/CharSetbildirmelidir)
Version 1.68.0
Eklendi (Added)
ValidatePdfUaiki yeniTPdfUaValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — bir URI eylem sözlüğü (action dictionary), erişilebilir bağlantı hedefini devre dışı bıraktığındantruedeğeriyle/IsMaptaşımamalıdır) vepvuaiHeadingSequenceViolation(7.4.2 — numaralandırılmış başlıklarH1ile başlamalıdır ve azalan bir dizi aradaki bir düzeyi atlamamalıdır, örn.H1→H3bir ihlaldir). Başlık kontrolü, doğrulayıcıdaki ilk structure-tree düzeyindeki PDF/UA kuralıdır:ValidatePdfUaStructureElementsartık türü belirtilmiş öğe listesinde gezinmekte ve belge sırasına göreH1…H6(ve 7.4.3 uyarıncaH7+) dizisini doğrulamaktadır
Version 1.67.0
Eklendi (Added)
ValidatePdfUabeş yeniTPdfUaValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — bir Link ek açıklaması (annotation),/Contentsaracılığıyla alternatif bir açıklama taşımalıdır),pvuaiAnnotationMissingContents(7.18.1 —/Contentsiçermeyen muaf tutulmamış herhangi bir ek açıklamanın alternatif bir açıklaması olmalıdır; Popup ve Widget muaftır),pvuaiEmbeddedFileMissingName(7.11 — bir dosya belirtimi sözlüğü (file specification dictionary)/Fve/UFiçermelidir),pvuaiMediaClipMissingAlt(7.18.6.2 — bir medya klibi veri sözlüğü/CTve/Altiçermelidir) vepvuaiCidFontMissingCidToGidMap(7.21.3.2 — gömülü bir Type 2 CIDFont,/CIDToGIDMapiçermelidir)
Version 1.66.0
Eklendi (Added)
ValidatePdfUabeş yeniTPdfUaValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvuaiRoleMapMissing(ISO 14289-1 7.1 — standart dışı yapı türlerine sahip etiketli bir belge bir/RoleMaptaşımalıdır),pvuaiOptionalContentAsKey(7.10 — isteğe bağlı içerik (optional-content) yapılandırma sözlüğü/ASotomatik durum (auto-state) anahtarını taşımamalıdır),pvuaiXfaPresent(7.15 — dinamik XFA yasak olduğundan bir AcroForm/XFAvarlığı işaretlenir),pvuaiTrapNetAnnotation(7.18.2 —/TrapNetek açıklamaları yasaktır) vepvuaiReferenceXObject(7.20 —/Refişaretiyle anahtarlanan Reference XObjects yasaktır)
Düzeltildi (Fixed)
ValidatePdfUaartık her şifrelenmiş dosyadapvuaiEncryptionPresentiçin hatalı pozitif (false-positive) vermiyor: PDF/UA, yardımcı teknoloji (assistive-technology) erişimine izin veren şifreleme sözlüğü/Panahtarında 10. bit konumu (değer 1024) ayarlı olduğu sürece şifrelemeye izin verir (7.16). Kesin ihlal artık yenipvuaiEncryptionPBitMissingaracılığıyla bildirilmektedir;pvuaiEncryptionPresent, API uyumluluğu için enum'da tutulmaktadır ancak artık bayt düzeyindeki doğrulayıcı tarafından bildirilmemektedir
Version 1.65.0
Eklendi (Added)
ValidatePdfAbeş yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — gömülü bir Type 2 CIDFont/CIDToGIDMaptaşımalıdır),pvaiSubsetMissingCharSet(6.3.5 — bir Type 1 alt kümesiFontDescriptor,/CharSettaşımalıdır),pvaiSubsetMissingCidSet(6.3.5 — bir CID alt kümesiFontDescriptor,/CIDSettaşımalıdır),pvaiWidgetActionForbidden(6.6.1 — bir Widget ek açıklaması/Aveya/AAtaşımamalıdır) vepvaiOptionalContentAsKey(ISO 19005-2 6.9 — isteğe bağlı içerik yapılandırma sözlüğü,/ASotomatik durum anahtarını taşımamalıdır; PDF/A-2 isteğe bağlı içeriğe izin verdiği için bu yeni geçerli olmuştur)
Version 1.64.0
Eklendi (Added)
ValidatePdfAsekiz yeniTPdfAValidationIssuedeğeri kazandı (eklenen sıra numaraları, mevcut değerler değişmedi):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 —%PDF-x.ybaşlığını, 127'den büyük en az dört baytlık bir%yorumu izlemelidir),pvaiExternalStreamRef(6.1.7 — bir akış sözlüğü/F,/FFilterveya/FDecodeParmstaşımamalıdır),pvaiOutputIntentScheme(6.2.2 — OutputIntent/S,/GTS_PDFA1olmalıdır),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDateayrıcaxmp:CreateDate/xmp:ModifyDateolarak görünmelidir),pvaiMarkInfoMissing(6.8.2.2 — A Seviyesi (Level A),/Marked trueile/MarkInfogerektirir),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — ek açıklamanın (annotation)/APsözlüğü yalnızca/Niçermelidir),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Annex E.2 — ilişkili her filespec/AFRelationshiptaşımalıdır) vepvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — bir JPEG2000 görüntüsü 1, 3 veya 4 bileşen bildirmelidir)
Düzeltildi (Fixed)
ValidatePdfAartık/Font << /F 5 0 R >>gibi tek harfli bir yazı tipi kaynak adı kullanan belgelerdepvaiAnnotationFlagsViolationiçin hatalı pozitif (false-positive) vermiyor;/Fbayrağı taraması artık belgelenmiş davranışla eşleşen bir ek açıklama bağlamına (bir ek açıklama türünün/Subtypedeğeri) bağlanmıştır (6.5.3)ValidatePdfAartık dosya başına PDF/A-3 ilişkili dosya (associated-file) gereksinimini raporlamaktadır: bir belge önceki tüm belge geneli ya hep ya hiç kontrolü yerine, yalnızca/EFaracılığıyla gömülü bir akışa başvuran gömülü bir/Type /Filespeceksik/AFRelationshiptaşıdığında işaretlenmektedir (ISO 19005-3 Annex E.2)- Kullanımdan kaldırılan
/SetStateeylemi, PDF Reference eylem adının doğrudan yakalanabilmesi için/SetOCGStateile birlikte yasaklanan eylem (forbidden-action) kümesine eklendi (6.6.1)
Version 1.63.0
Eklendi (Added)
TPdf.MeasureTextveTPdf.MeasureTextWidtheklendi: belirtilen font ve boyuttaki metnin render genişliği ve yüksekliği, sayfaya içerik eklenmeksizin ölçülür (PDF kullanıcı birimi, 1 birim = 1/72 inç);AddTextüzerine düzen hesaplamaları ve otomatik satır kaydırma işlemlerini mümkün kılar; sınıf yardımcısı olarak bağımsızFPdfMeasureünitesi aracılığıyla sağlanır
Değiştirildi (Changed)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFveDemo\Lazarus\MergePDFüç IDE için de geliştirildi: dosya başına sayfa aralığı, isteğe bağlı çıktı yolu, tekilleştirme, çalışma günlüğü, iptal düğmesi ve birleştirme özeti; yer imleri ve meta veriler ilk kaynaktan alınırCreatePDFdemoları üç IDE'de de Çekçe, Fransızca, Almanca, İspanyolca, Portekizce, Lehçe ve Türkçe aksanlı metinler yazan bir "Avrupa Metni" (European Text) seçeneği içerir; böylece font seçimi ve Unicode işleme doğrulanır (eskiEuropeanTextörneği içine birleştirildi)ExtractTextPagesveEuropeanTextörnekleri kaldırıldı:ExtractTextPagesörneğinin sayfa başına metin çıkarma yeteneği,ExtractTextiçindeki sayfa aralığı ve sayfa ayırıcı seçenekleriyle karşılanıyor;EuropeanTextörneğinin çok dilli metin render desteğiCreatePDFiçine birleştirildi
Version 1.62.2
Düzeltildi (Düzeltildi (Fixed))
- Her RAD Studio sürümü ve platformu için C++Builder başlıkları (
.hpp) yeniden üretildi (Win32/Win64/Win64x); Pascal kaynaklarından sapmışlardı ve kaynak dağıtımı üzerinden C++Builder kullanıcılarına ulaşan eski fonksiyon imzaları ile eksik units bırakmışlardı
Version 1.62.1
Düzeltildi (Düzeltildi (Fixed))
- RAD Studio 12 Athens ve öncesinde kaynak derleme geri yüklendi: PDF/UA doğrulama yolundaki bir
TArray<Byte>ataması, Delphi 13'e özgü bir örtük dizi dönüşümü kullanıyordu ve eski IDE'lerde derlenemiyordu
Version 1.62.0
Eklendi (Eklendi (Added))
TPdf.RenderPageThumbnail, belgenin geçerli sayfasını, yüklenmiş sayfasını değiştirmeden veyaOnPageChangetetiklemeden herhangi bir sayfayı indeksine göre en boy oranına uyan bir bitmap'e render eder
Düzeltildi (Düzeltildi (Fixed))
TPdfThumbnailViewartık boyama sırasında host belgeninPageNumberdeğerini yönetmiyor; önceki sürümde her repaint sayfaları yeniden yüklüyor,OnPageChangetetikliyor ve metin sayfasını atıyordu, bu da bağlı birTPdfView'i bozup repaint döngülerine yol açabiliyordu. Küçük resimler artık bu yan etkiler olmadanRenderPageThumbnailüzerinden render ediliyor- PDF/X uyumluluk doğrulaması artık cross-reference-stream belgelerini (PDF 1.6, PDF/X-4 için tipik) ve compressed object streams içinde saklanan nesneleri inceliyor, bu tür dosyaları bütünüyle uyumsuz olarak bildirmek yerine;
GTS_PDFXVersionişareti hem element formundan hem de RDF attribute-form XMP'den okunuyor - PDF/R doğrulaması artık Info sözlüğü ile XMP, Producer veya Creator konusunda uyuşmadığında
pvriInfoXmpMismatchraporluyor; sorun daha önce tanımlanmıştı ama hiç yükseltilmiyordu - Form-fill zamanlayıcıları istek bazında izleniyor, bu yüzden aynı anda birden fazla zamanlayıcı çalıştıran bir belge, örneğin alan imleci yanıp sönerken bir JavaScript aralığı, sonuncu dışında hepsini kaybetmek yerine hepsini koruyor
TPdfViewboyama işlemi ve onun genelRenderPage/RenderTileyöntemleri artık belge render kilidini tutuyor ve aynıTPdf'nin worker thread render'ına karşı sıralama sağlıyor, çünkü PDFium thread-safe değil- PDF/X, PDF/R ve PDF/VT metadata'sına yazılan ASCII dışı metinler (OutputIntent condition names, Creator, Producer) artık ISO 32000-1 §7.9.2.2 uyarınca ham UTF-8 yerine UTF-16BE dizesi olarak kodlanıyor; uyumlu okuyucular bunu yanlış okuyordu
- Uyumluluk yardımcıları,
/Length'i dolaylı başvuru olan gömülü metadata akışlarını doğru okuyor, kaynak baytlarıReadBufferile yüklüyor, böylece kısa okuma temizce başarısız oluyor, ve aralık dışı okuma riskini almak yerine negatif birstartxrefofsetini reddediyor
Version 1.61.0
Değiştirildi (Değiştirildi (Changed))
- Etkilenen callback'leri uygulayan kodun yeniden derlenmesini gerektirebilecek FFI/ABI bildirim düzeltmeleri:
FFI_OpenFileform-fill callback'i artıkcdecl(Win32 stack convention) taşıyor vevalueparametresi, PDFium başlıklarıyla eşleşmesi içinFPDFAnnot_SetStringValueileFPDFAttachment_SetStringValueiçinde artıkFPDF_WIDESTRING(UTF-16LE) oluyor - Progressive-load callback'leri
FX_FILEAVAIL.IsDataAvailveFX_DOWNLOADHINTS.AddSegmentartıksize_toffset'leri alıyor vesize_tFree Pascal / Lazarus Win64'te işaretçi genişliğinde; daha önce 32 bit'e kırpılıyordu, bu da FPC Win64'te data-availability veoutsize_tAPI çağrılarını düzeltiyor
Düzeltildi (Düzeltildi (Fixed))
- Bellek güvenliği: etkin bir AcroForm imleci olan bir
TPdfyok edilirken form-fill zamanlayıcısında use-after-free;FPDF_CloseDocumentçağrısınınImportNPagesToOnehata yolunda iki kez çalışması; kaydetme ve JPEG ekleme sırasındaFPDF_FILEWRITE/FPDF_FILEACCESScallback'lerinden C sınırının dışına taşan Pascal exception'ları; ve başlangıç indeksinden sayfa sonuna kadar okurken metin çıkarımında bir tamsayı taşması TPdfFuture<T>artık sonuç callback'ini güvenilir şekilde teslim ediyor; yanıt daha önce neredeyse her zaman düşüyordu ve serbest bırakılmış bir iş parçacığına dokunabiliyordu, çünkü worker sıraya alınan yanıt çalışmadan önce kendini serbest bırakıyordu- PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT ve PDF/UA çıktıları artık ISO 32000-1 §7.5.4 gereği tam 20 baytlık cross-reference girdileri yazıyor
- Standards marker yerleştirme işlemi, kaldırılan anahtar, örneğin
/Trapped, son giriş olduğunda artık dictionary'yi bozmaz; önceki sürümde kapanış>>yutuluyor ve bozuk bir nesne oluşuyordu - OutputIntent ICC profile streams artık PDF/X ve PDF/VT için gerekli
/Nbileşen sayısını bildiriyor, PDF/A için zaten vardı; şifreli kaynak belgeler PDF/X, PDF/E, PDF/R, PDF/VT ve PDF/UA marker'ları eklenmeden önce çözümleniyor, böylece çıktı sessizce bozulmak yerine geçerli oluyor - Üretilen XMP içindeki UTF-8 xpacket BOM tam baytlar olarak yazılıyor, böylece ANSI code page'i Latin-1 olmayan Delphi kurulumlarındaki bozulma düzeliyor; artımlı güncelleme trailer'ları artık belgenin
/Inforeferansını koruyor SaveAskompresyonla artık/Length'i dolaylı başvuru olan akışları kırpmıyor ve yeniden oluşturulan cross-reference tables artık 20 baytlık girdiler, gerçek generation numbers kullanıyor ve eski/Previşaretçisini bırakıyor- Uyumluluk doğrulaması, PDF/E ve PDF/X için attribute-form XMP sürüm işaretçilerini okuyor, böylece attribute olarak serileştirilmiş PDF/X-4 dosyaları tanınıyor, tam
PDF/E-1tanımlayıcısını istiyor, dolaylı/Lengthmetadata akışlarını doğru okuyor ve PDF/UA trailer'ını kontrol ederken bir structure element'in/IDya da/StructTreeRootanahtarını artık yanlış eşleştirmiyor; bozuk birstartxrefofseti artık range hatası oluşturmuyor TPdfThumbnailView: son sayfaya artık kaydırma çubuğuyla ulaşılabiliyor, host belgenin geçerli sayfası küçük resimler çizildikten sonra geri yükleniyor ve standart mouse-leave işleme yeniden gönderiliyor- Gri tonlu sayfa ve görüntü bitmap'leri artık yanlış paletle render edilmiyor;
TPdfView, kendiTPdf'si önce serbest bırakıldığında artık sallanan bir başvuruyla kalmıyor - Preflight raporları: HTML, bildirilen charset ile eşleşmesi için UTF-8 olarak kaydediliyor ve JSON string escaping, Free Pascal'da ASCII dışı karakterler için doğru
\udizileri üretiyor - Deneme derlemeleri: deneme sürümü hatırlatma iletişim kutusu artık görünmeden önce bastırılmıyor
TPdfStreamAdapterartık 4 GiB'den büyük akışları, PDFium'a iletilen uzunluğu sessizce kırpmak yerine net bir hata ile reddediyor
Version 1.60.1
Değiştirildi (Değiştirildi (Changed))
- Delphi, Lazarus ve C++Builder için AccessibilityReader demoları artık
TPdfReadingSessionüzerinde yüksek sesle okuma çalıştırıyor: her sayfaBuildSpokenTextFromWordsile tek bir seslendirilmiş parçaya dönüştürülüyor, SAPI word positionsFeedSpokenPosition'ı besliyor ve oturum sayfalar arasında ilerleyip görünümün kelime imlecini yönetiyor, böylece her demo için daha önce elle yazılmış orkestrasyonun yerini alıyor - Demolardaki word-level karaoke tracking artık NVDA speech engine olduğunda da çalışıyor:
EstimatePacingreading cursor'ı geçen konuşma süresine göre tempoluyor, oysa NVDA daha önce hiç word tracking olmadan yüksek sesle okuyordu - Demolardaki Pause ve Resume artık NVDA ile de çalışıyor:
ResumeRestartsChunkResume sırasında geçerli sayfayı başından tekrar okuyor, SAPI ise kendi yerinde pause ve resume davranışını koruyor
Version 1.60.0
Eklendi (Eklendi (Added))
TPdfViewüzerinde canlı düşük görme için işleme: yenireInvertvereNightDuotonerender seçenekleri, arama, seçim, okuma ve kelime imleci katmanları çizilmeden önce render edilen her sayfa parçasını yeniden renklendiriyor, tam renk tersleme ya da bir gece duotone paleti uyguluyor ve mevcut bitmap renk dönüşümlerini hem tek sayfalı hem de facing-pages düzenlerde etkileşimli görüntüleyiciye taşıyor; seçenekler değiştirildiğinde anında yeniden çiziliyorNightDuotoneInkveNightDuotonePapergece paletini ayarlıyor, varsayılan olarak siyah sayfa üzerinde kehribar renkli metin kullanıyor; her iki seçenek de ayarlandığındareInvertkazanıyor
Version 1.59.0
Eklendi (Eklendi (Added))
TPdfReadingSession: konuşma motorundan bağımsız bir yüksek sesle okuma orkestrasyon bileşeni. Parça imlecini, kelime imlecini ve oynatma durumunu (Play/PlayFrom/Pause/Resume/Stop) tutar, yüklenenTPdfSpokenTextparçaları arasında, host motorun boşta olduğunuTickile bildirdikçe ilerler, spoken-text offset'lerini sayfa karakterlerine geri çevirir ve bağlı birTPdfViewkelime imlecini otomatik olarak yönetir; host herhangi bir konuşma motorunuOnSpeakve cancel / pause / resume istek olayları üzerinden bağlar, böylece kitaplık hiçbir speech API'sine doğrudan bağlanmazFeedSpokenPositionmotor word position'larını tüketir, örneğin SAPIStatus.InputWordPosition;EstimatePacingileEstimatedWordsPerMinuteposition signal olmayan motorların temposunu ayarlar;ResumeRestartsChunknative pause'u olmayan motorlar için geçerli chunk'ı yeniden okurOnChunkChange,OnWordChangeveOnFinishedyalnızca gerçek değişikliklerde tetiklenir ve serbest bırakılan bağlı görünüm kendini otomatik olarak ayırır, böylece host kodu flicker olmadan ve crash-safe kalır
Version 1.58.0
Eklendi (Eklendi (Added))
EstimateSpokenWordIndexbir speech engine'in hangi kelimeyi seslendirdiğini geçen süre ve dakika başına kelime hızına göre tahmin eder, daha uzun kelimelere orantılı olarak daha fazla zaman vererek word position bildirmeyen motorların, örneğin NVDA controller client, yine de word-level reading cursor'ı yönlendirmesini sağlar; çağıran geçen süreyi verir, bu yüzden rutin clock-free kalır ve unit-testable olur
Version 1.57.0
Eklendi (Eklendi (Added))
- Read-aloud izleme için iki alanlı eşleme ile spoken-text birleştirme:
BuildSpokenTextFromWordsveSpokenTextAppend, sayfadaki word boxes'dan bir text-to-speech engine'e verilen dizgeyi oluştururken bir span table kaydeder veSpokenToPageCharmotorun bildirdiği spoken offset'i, örneğin SAPIStatus.InputWordPosition, sayfa karakter indeksine geri çevirir, böylece spoken text sayfanın tamamı olmadığında da word-level highlight tracking doğru kalır, örneğin skipped regions, per-unit reading ve pronunciation overrides durumlarında TPdfSpokenTextveTPdfSpokenSpantürleri spoken string'i ve bunun oluşturulduğu kaynak sayfa aralıklarını taşır; eklenen separators üzerindeki offset'ler bir sonraki eşlenmiş kelimeye çözülür ve eşlenmiş aralıkların ötesindeki offset'ler eşleşme olmadığını bildirir
Version 1.56.9
Eklendi (Added)
Demo\Delphi\PreflightReportartık başarısız olan standartları, öncelikleri, bir sonraki eylemleri, sorun kodlarını ve önerileri tek bir remediation checklist içinde özetleyen bir Action Plan önizlemesi eklerDemo\Delphi\PreflightReportCli, tek dosya ve toplu çalıştırmalarda çıkış biçimi olarakplan/actionplankabul eder ve aynı remediation checklist'i metin dosyasına yazar
Değiştirildi (Changed)
- Her iki Delphi PreflightReport demosu da artık toplam standart ve sorun sayılarıyla birlikte pass / action / review durum sayaçlarını gösterir
Version 1.56.8
Değiştirildi (Değiştirildi (Changed))
ViewerInteractionLabartık sayfa atlama kontrolleri, manuel yakınlaştırma kontrolleri, tıklamayla tetiklenenDeviceToPage/PageToDevicekoordinat kaydı ve seçim, arama, döndürme, gezinme doğrulamaları için daha net bir etkileşim günlüğü içerirViewerInteractionLabreadme sayfaları, yerelleştirilmiş demo readme kümesi genelinde eklenen etkileşim akışını belgelemektedir
Version 1.56.7
Eklendi (Eklendi (Added))
AccessibilityWorkbenchCli, tetiklenen her finding'i WCAG 2.1 Success Criteria ve ISO 14289-1 (PDF/UA-1) madde alanına eşler ve raporlarda standards-coverage bölümünü gösterirAccessibilityWorkbenchCliyayınlanmış ceza rubriğine ve excellent / good / needs work / poor bantlarına göre 0-100 erişilebilirlik puanı hesaplar, dosya bazında ve toplu ortalama olarak sunarAccessibilityWorkbenchClifailscore=Ndeğerini kabul eder; herhangi bir dosya N'nin altında kaldığında çalıştırma kodu 2 ile başarısız olurAccessibilityWorkbenchClitoplu özet adı.sarifile bittiğinde, CI ve kod taraması için her finding türünde bir kural taşıyan ve WCAG 2.1 ile PDF/UA etiketlerini içeren bir SARIF 2.1.0 günlüğü yazarAccessibilityWorkbenchClibağlı PDFium Delphi Component sürümünü yazdıranversionkomutunu ekler
Version 1.56.6
Eklendi (Eklendi (Added))
IntakeWorkbenchCliher giriş dosyası için SHA-256 adli karması hesaplar (unavailabledeğerine düşerek, derleyicideSystem.Hashbulunmadığında) ve bunu tüm formatlarda raporlarIntakeWorkbenchCliaday listesinden parola gerekli belgeleri deneme amaçlı açmak içinpasswords=file.txtalır, eşleşen aday indeksini kaydeder ve parola metnini asla yazmazIntakeWorkbenchCli, her denetlenen dosyayı risk seviyesine göre alt klasöre taşımak içincopyto=dirkabul ederIntakeWorkbenchCli, toplu özet adı.sarifile bittiğinde CI ve kod taraması için her risk işareti başına bir kural ve işaretlenmiş her dosya için bir sonuç içeren SARIF 2.1.0 günlüğü yazarIntakeWorkbenchClibağlı PDFium Delphi Component sürümünü yazdıranversionkomutunu ekler
Version 1.56.5
Eklendi (Eklendi (Added))
IntakeWorkbenchCliartık accept, request-password, manual-review, quarantine, deduplicate gibi sonrası işlemler için önerilen adımları hesaplar ve toplu özetlerde eylem sayısını gösterirAccessibilityWorkbenchCliartık pass-through, remediate-tags, run-ocr, remediate-semantics, manual-review gibi düzeltilmiş eylemleri önerir ve toplu eylem sayılarını eşleştirir
Düzeltildi (Düzeltildi (Fixed))
- Her iki CLI demosu da önerilen eylemi konsol, text, HTML, JSON ve CSV çıktılarında gösterir; böylece toplu operatörler dosyaları ek işleme riski veya durum alanlarına ihtiyaç duymadan yönlendirebilir
Version 1.56.4
Düzeltildi (Düzeltildi (Fixed))
- Ek açıklamalar, yer imleri veya bağlantı ek açıklamalarını döngüde okurken önceki öğenin metin dizesi artık sızmaz:
TPdfAnnotation,TBookmarkveTLinkAnnotationsonuç kayıtları ham bellek sıfırlama yerine managed-type-aware başlatma ile temizlenir; bu sayede çok fazla metin taşıyan ek açıklamalı belgeler uygulamanın yaşam süresince süreç belleğini şişirmez - Bir
TPdfyok edilirken, kayıtlı birOnUnsupportedFeatureişleyicisi varsa bu işleyici işlem genelindeki PDFium callback'inden ayrılır; böylece başka birTPdförneği kendi işleyicisi olmadan sonraki belgeyi yüklerken artık serbest bırakılmış bileşene yönlendirme yapamaz (use-after-free)
Version 1.56.3
Düzeltildi (Düzeltildi (Fixed))
AccessibilityWorkbenchCliartık boş sayfaları heuristic reading-order sayfası olarak saymaz, böylece boş ayırıcı sayfası olan etiketli belgelerde erişilebilirlik durumu doğru kalır; okunabilir içeriği olmayan sayfalar ayrı raporlanırAccessibilityWorkbenchClitablo başlığı algılama işlemi, gömülü bir tablonunTHhücrelerini artık dış tabloya yazmaz ve form alanı ile yazı tipi adlarını büyük-küçük harf duyarlı eşleştirir; böylece farklı alanlar birleştirilmezIntakeWorkbenchCliURL host envanterleri artık userinfo, sorgu ve fragment bölümlerini kaldırır; böylece[email protected]gibi hazırlanmış bir bağlantı gerçek ana bilgisayara ait olur vemailto:hedefleri artık görünmez olmak yerine domain sağlarIntakeWorkbenchCliMarkdown raporları saldırgan kontrollü yolları, ana bilgisayarları ve ek dosya adlarındaki ters tırnakları kaçarak rapor biçiminin belgelerden bozulmasını engeller
Değiştirildi (Değiştirildi (Changed))
AccessibilityWorkbenchCli, font-scan ve form-field-scan başarısızlıklarını ayrı sayaçlar olarak raporlar, gömülü örnekleri olan gömülü olmayan yazı tiplerini işaretler ve uzun yazı tipi listelerini belirgin bir kesme işareti ile sınırlarIntakeWorkbenchClitoplu özetleri attachment-annotation sayısı sütununu ekler ve sayfa başına ek açıklama sayımı 20000 ile sınırlandırılır; bu sınır her formatta raporlanır
Version 1.56.2
Eklendi (Eklendi (Added))
AccessibilityWorkbenchCliartık font gömme, form alanı tooltip bilgileri, okuma sırası kaynağı, belge ana hatları, tablo ve liste yapısı, şüpheli alternatif metin ve daha zengin sayfa başına inceleme ayrıntılarını denetleyerek accessibility toplu raporlarının daha fazla düzeltme hedefi belirlemesini sağlarIntakeWorkbenchCliartık sayfa tarama sınırları, launch ve remote-go-to eylemleri, URI host envanterleri, ek açıklama sayıları, desteklenmeyen PDFium özellikleri, yinelenen belge tanımlayıcıları ve otomatik intake incelemesi için genişletilmiş risk işaretlerini raporlar
Değiştirildi (Değiştirildi (Changed))
IntakeWorkbenchCli, metadata, attachment, script, XFA, signature ve risk raporlamasını tamamlamaya devam ederken belge başına sayfa taramasını sınırlamak için tek dosya ve toplu modlardamaxpages=Nkabul eder
Version 1.56.1
Düzeltildi (Düzeltildi (Fixed))
- Daha yeni bir dışa aktarımı eksik olan eski bir
pdfium.dllyüklemek artık temiz biçimde başarısız olur: hata yolu bağlı her API giriş noktasını sıfırlar, böyleceAssigned()denetimleri (örneğinFPDF_GetLastErrorveyaFPDF_GetSecurityHandlerRevisionüzerinde) zaten kaldırılmış modülü çağırıp erişim ihlaliyle çökmek yerine kitaplığın yüklenmediğini bildirir UnloadLibraryartık yalnızca isteğe bağlı V8 yardımcılarını değil, tüm PDFium API bağlamalarını temizler; böylece DLL serbest bırakıldıktan sonra eski işlev işaretçileri kalmaz
Version 1.56.0
Eklendi (Eklendi (Added))
TPdfViewüzerinde sözcük düzeyi karaoke okuma imleci:TrackReadingWordAt, SAPIStatus.InputWordPositiongibi bir metinden sese motorunun geçerli sözcük karakter uzaklığını sayfa sözcük kutularına eşler, bunu içeren sözcüğü okuma bloğunun üzerinde ayrı bir katman olarak vurgular, görünüme kaydırır ve sözcük dizinini döndürür; böylece ses ilerledikçe seslendirilen sözcük parlarSetReadingWordveClearReadingWord, vurgulanan sözcüğü doğrudan birTPdfWordBoxüzerinden ayarlar veya temizler; aynı sözcüğü yeniden ayarlamak no-op olduğundan sözcük düzeyi takip görünümü titreştirmezReadingWordColorveReadingWordFollow, sözcük imleci rengini ve görünümün seslendirilen sözcüğü otomatik olarak görünüme kaydırıp kaydırmayacağını denetler
Version 1.55.2
Düzeltildi (Düzeltildi (Fixed))
- ViewerInteractionLab artık araç çubuğu satırlarına daha fazla dikey alan verir; böylece Open PDF, Create Sample, gezinme, arama ve seçim denetimleri ölçeklenmiş yazı tiplerinde artık çakışmaz
Version 1.55.1
Düzeltildi (Düzeltildi (Fixed))
- ViewerInteractionLab artık Prev, Next ve Rotate öğelerini ikinci araç çubuğu satırına yerleştirerek başlangıçta Open PDF ve Create Sample ile çakışmayı önler
Version 1.55.0
Eklendi (Eklendi (Added))
- "Oku, seç" tarzı okuma için kelime-seçim köprüsü:
TPdfView.SelectWordBoxveSelectWordSpan, karakter aralıklarına göre tek bir kelime kutusunu ya da aynı sayfadaki bir kelime kutusu aralığını (PageWordBoxesiçinden) seçer; böylece o anda okunan kelime veya satır hem seçilebilir hem de kopyalanabilir WordBoxIndexAtCharIndex, bir karakter indeksini onu içeren kelime kutusuna geri eşler; böylece TTS okuma imleci ilerlerken kelime kelime vurgu yapılabilir
Version 1.54.0
Eklendi (Eklendi (Added))
- Mantıksal imleçten doğrudan odaktaki alanı okuyan sesli form doldurma erişimcileri:
FocusedFormFieldValue,FocusedFormFieldNameveFocusedFormFieldDetails,TPdfileTPdfViewüzerinde geçerli alanın değerini, insan tarafından okunabilir adını (/TUtooltip'i, yoksa/T) ve tamTPdfFormFieldInfobilgisini (tür, bayraklar, seçenekler) raporlar; bu da form içinde ilerleyen bir sesli arayüzün duyurmak için ihtiyaç duyduğu her şeyi sağlar
Düzeltildi (Düzeltildi (Fixed))
FocusedFormFieldValue, alanı pdfium etkileşimli odağıyla değilFocusedFormFieldIndexüzerinden okur; bu sayede ekranda görünür imleç olmasa bile ses odaklı form doldurucu doğru değeri alır (mevcutFocusedFormFieldTextyine pdfium odağını yansıtır ve değişmeden kalır)
Version 1.53.0
Eklendi (Eklendi (Added))
- Kelime düzeyinde vurgu desteği:
TPdf.PageWordBoxesveTPdfView.PageWordBoxes, bir sayfayıTPdfWordBoxkayıtlarına böler; her kayıt kelime metnini, karakter aralığını ve sayfa koordinatlarındaki sınır dikdörtgenini taşır; böylece erişilebilirlik okuyucusu bu dikdörtgeniSetReadingHighlight'a vererek konuşulan her kelimeyi sırayla vurgulayabilir BuildWordBoxesSayfa metnini kelime metni ve FTextPage karakter aralıkları içeren TPdfWordBox kayıtlarına ayırır
Version 1.52.0
Eklendi (Eklendi (Added))
- Düşük görme desteği için render yardımcıları
InvertPdfBitmap,GrayscalePdfBitmapveDuotonePdfBitmap, işlenmiş 32 bit bitmap üzerinde yerinde renk dönüşümleri uygular; böylece erişilebilirlik okuyucusu sayfaları ters / koyu mod, gri tonlu ya da özel iki renkli şema ile gösterebilir - Yardımcı pf32bit biçimini zorlar ve ScanLine piksellerini doğrudan günceller, bu nedenle RenderPage veya ToBitmap sonrasında ek ara tampon olmadan çalışır
Version 1.51.0
Eklendi (Eklendi (Added))
- Yardımcı dinle-oku akışları için cümle düzeyinde okuma birimleri:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsveTPdfView.ReadingUnits, okunabilir içerik akışını sıralı, cümle boyutundaTPdfReadingUnitkayıtlarına dönüştürür; her kayıt konuşulacak metni, anlamsal türünü, sayfasını, vurgu dikdörtgenlerini ve dil etiketini taşır; böylece ekran okuyucu uygulaması sayfa ya da belge boyunca konuşma birimi birimi ilerleyebilir NextReadingUnitOfKindKind değeri istenen TPdfContentFragmentKind ile eşleşen sonraki veya önceki TPdfReadingUnit öğesini bulurBuildReadingUnits, herhangi birTPdfContentFragmentsdeğerini doğrudan okuma birimlerine dönüştürür: başlıklar ile figure/alt açıklamaları bütün kalır, paragraflar cümle sınırlarında bölünür, ondalık noktalar korunur ve okuma imleci yalnızca çağırana ait düz bir indeks olarak kalır
Version 1.50.0
Eklendi (Eklendi (Added))
ValidatePdfAartık katalogu, OutputIntent'i veya diğer sözlükleri sıkıştırılmış nesne akışları (/Type /ObjStm) içinde saklayan PDF 1.5+ belgelerini de inceleyebiliyor. Object stream'ler açılır ve taşıdıkları nesneler çözümlenir; böylece bu tür belgeler, PDF/A işaretlerini eksik olarak raporlanmak yerine kendi içerikleri üzerinden doğrulanır
Version 1.49.5
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfAartık eksik birpdfaExtension:schemasaçıklamasını sorun olarak raporlamıyor. PDF/A tanımlayıcı şeması (pdfaid) iyi bilinen bir şemadır; bu nedenle ne veraPDF ne de PDF/A-2/-3 onun için bir extension-schema açıklaması gerektirir ve yokluğunun işaretlenmesi, uyumlu her üçüncü taraf PDF/A'sını yanlış raporluyordu. Kitaplığın kendi ürettiği belgeler bu açıklamayı hâlâ içerir
Version 1.49.4
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfAartık PDF/A tanımlayıcısı alt öğeler yerine XML öznitelikleri (pdfaid:part="2") olarak yazıldığında da uyumluluk düzeyini tespit ediyor; böylece öznitelik biçimindeki belgeler artık bilinmeyen düzeyle raporlanmıyor. Bu, tespit edilemeyen bir düzeyin parçaya özgü denetimleri katı PDF/A-1 kurallarına geri düşürerek PDF/A-2 ve PDF/A-3'ün izin verdiği gömülü dosyaları ve şeffaflığı yanlışlıkla işaretlemesine yol açan bir zincirleme etkiyi de düzeltir
Version 1.49.3
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfAartık çapraz başvuru verisi bir cross-reference stream olan (traileranahtar sözcüğü bulunmayan) PDF 1.5+ belgelerini de inceliyor. Uyumluluk düzeyi, trailer/IDdeğeri ve diğer işaretler cross-reference stream sözlüğünden okunur; böylece bu tür belgeler tamamen uyumsuz olarak raporlanmak yerine kendi içerikleri üzerinden doğrulanır
Version 1.49.2
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfAartık tüm yazı tiplerini gömen belgelerde yapay bir gömülü-olmayan-yazı-tipi sorunu raporlamıyor. Önceki sezgisel yöntem,/FontDescriptorbelirteçlerinin sayısını gömülü yazı tipi programlarıyla karşılaştırıyordu; ancak gömülü her yazı tipi iki/FontDescriptorbelirteci katkı sağlar (yazı tipi sözlüğü başvurusu artı descriptor nesnesi); bu yüzden her gömülü-yazı-tipi dosyası yanlışlıkla işaretleniyordu. Denetim artık yalnızca yazı tiplerine başvuran ancak hiçbir yazı tipi programı gömmeyen bir belgeyi raporluyor; bu da karşılık gelenValidatePdfUadüzeltmesiyle uyumludur
Version 1.49.1
Düzeltildi (Düzeltildi (Fixed))
- PDF/A çıktısı artık veraPDF ile uyumlu PDF/A-1b ve PDF/A-1a olarak doğrulanıyor: gömülü sRGB OutputIntent ICC profil akışı (
/DestOutputProfileile başvurulan) artık ISO 19005-1 6.2.3.2'nin zorunlu kıldığı gerekli/Nbileşen sayısını (yerleşik RGB profili için 3) bildiriyor.SaveAsPdfAtarafından üretilen belgeler, hedef profil akışı/Ndeğerini atladığı için daha önce katı PDF/A-1 doğrulamasında başarısız oluyordu; değer ICC profil başlığından türetildiğinden, çağıran tarafından sağlanan bir CMYK veya Gray profili de doğru sayıyı alır
Version 1.49.0
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfUaartık uyumlu etiketli PDF belgelerinde eksik XMP kimlik bilgisini yanlışlıkla raporlamıyor — PDF/UA tanımlayıcısı (pdfuaid:part),dc:title, XMP tarihleri ve fragman/IDdeğeri artık/MetadataXMP akışını ve çapraz başvuru akışlı (cross-reference-stream) dosyalarda fragman/IDdeğerini atlayan yeniden kaydedilmiş kopya yerine özgün belge baytlarından okunuyorValidatePdfUayazı tipi gömme denetimi düzeltildi; böylece tüm yazı tiplerini gömen bir belge artık gömülü olmayan yazı tipleri içeriyormuş gibi raporlanmıyor; artık yalnızca yazı tiplerine başvuran ancak hiçbir yazı tipi programı gömmeyen bir belgeyi işaretliyorValidatePdfUaartıkFormulayapı öğesini, alternatif metniActualTextüzerinden sağlandığındaAltgirdisi yerine kabul ediyor (ISO 14289-1 §7.7); mevcutFigurekuralıyla tutarlı biçimde
Version 1.48.0
Eklendi (Eklendi (Added))
TPdfViewüzerinde programatik metin seçimi:SelectTextRange(sayfaya ve karakter aralığına göre) veSetSelection(açık biçimde sayfa başına aralıklarla) metni koddan seçer — örneğin bir bölümü okuyup vurgulamak için; her ikisi de yeniden çizer ve seçim değiştiğindeOnSelectionChangeolayını tetikler.SelectionRanges, geçerli seçimi sayfa başına karakter aralıkları olarak okur veSelectionRectangles, özel vurgulama veya kaydırarak-gitme için onun dikdörtgenlerini sayfa koordinatlarında döndürür
Version 1.47.0
Eklendi (Eklendi (Added))
- Sesle yönlendirilen form doldurma için form alanı gezinmesi, hem
TPdfhem deTPdfViewüzerinde:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusveFocusedFormFieldText. Bunlar, sayfanın widget alanları üzerinde sekme sırasına göre mantıksal bir alan imlecini hareket ettirir (uçlarda başa sarar); böylece bir yardımcı okuyucu formu adım adım dolaşabilir, her alanıFormFieldInfo[Index].AlternateName(/TU ipucu) aracılığıyla seslendirebilir veFormField[Index]aracılığıyla doldurabilir TPdfView.OnFormFieldFocusChangeolayı, alan imleci hareket ettiğinde tetiklenir (yeni alan dizinini taşır veya temizlendiğinde -1)
Version 1.46.0
Eklendi (Eklendi (Added))
- Yardımcı, dinleyerek-okuma içerik akışı:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentveTPdfView.ReadableContent, sıralı bir anlamsalTPdfContentFragmentöğeleri listesi döndürür; her öğe seslendirilecek metni (gerçek glifler veya şekiller içinActualText/Alt), bir parça türünü (düzeyiyle birlikte başlık, paragraf, şekil, liste öğesi, tablo hücresi, bağlantı, düz), dili, 1 tabanlı sayfayı ve blok ile satır başına vurgu dikdörtgenlerini taşır. Etiketli PDF belgeleri yapı ağacından mantıksal okuma sırasına göre doğrusallaştırılır; etiketsiz sayfalar render sırasına geri döner; böylece herhangi bir belge sesli okunabilir TPdfViewüzerinde eşzamanlı okuma vurgusu:SetReadingHighlight,ClearReadingHighlightve yayımlananReadingHighlightColor, arama ve seçim katmanlarının üzerinde, o anda okunmakta olan bloğu vurgular- Yeni genel türler
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindveTPdfReadingOrderSourceile yeni yardımcıClassifyStructType
Version 1.45.0
Eklendi (Eklendi (Added))
ValidatePdfUaartık canlı etiketli yapı ağacını da dolaşarak bayt düzeyinde taramanın tespit edemediği üç yüksek güvenilirlikli içerik ihlalini raporlar: Alt girişi ve ActualText değerinden ikisi de bulunmayan birFigureöğesi (ISO 14289-1, 7.3), Alt özniteliği olmayan birFormulaöğesi (7.7) ve benzersiz kimliği bulunmayan birNoteöğesi (7.9). Bu üç durumu ortaya çıkaran yeniTPdfUaValidationIssuedeğerleri şunlardır:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltvepvuaiNoteMissingId. Belge etiketlenmemişse yapı ağacı dolaşımı atlanır- Yeni genel yardımcı
ValidatePdfUaStructureElements, söz konusu yapı ağacı kurallarını (TPdf.StructureElementstarafından döndürüldüğü biçimiyle) düz bir öğe listesine uygular; böylece denetimlerin tam belge yüklenmeksizin çalıştırılması veya birim testine tabi tutulması mümkün olur
Version 1.44.5
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfAfont gömme denetimi (pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) artık/FontDescriptoriçermeyen gömülü olmayan basit fontları da tespit ediyor; en önemlisi, PDF/A'nın istisnasız biçimde gömülmesini zorunlu tuttuğu 14 standart Type 1 fontu. Önceden böyle bir font fark edilmeden geçebiliyordu; denetim artık basit font sözlüklerini de (/Type1,/TrueType,/MMType1) gömülü font programlarına karşı sayıyor ve bu yönüyle 1.44.3 içindeki PDF/UA düzeltmesini yansıtıyor
Version 1.44.4
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfVT, ISO 16612-2 §6.5 kapsamındaki hatalı DPart ağaçlarını artık reddeder: örneğin/DPartsgerekli array of arrays yerine düz bir başvuru dizisi olduğunda veya bir leaf DPart yalnızca tek sayfalık aralıkta/Startsayfasını/Endolarak tekrarladığındaValidatePdfVT,/NodeNameListadlarını PDF name içindeki#xxescape açılımından sonra XML NMTOKEN değerleri olarak doğruluyor; böylece geçersiz hiyerarşi düzeyi adları kullanılabilir DPart yapısı olarak kabul edilmek yerinepvviMissingDPartRootüzerinden raporlanıyor
Version 1.44.3
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfUafont gömme denetimi (pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) artık/FontDescriptoriçermeyen gömülü olmayan basit fontları da tespit eder; bunların en önemlisi PDF/UA'nın gömme muafiyeti tanımadığı 14 standart Type 1 fontudur (Helvetica, Times, Courier ve diğerleri). Daha önce böyle bir font fark edilmeden geçiyor ve onu kullanan bir belge uyumlu olarak raporlanabiliyordu; denetim artık basit font sözlüklerini (/Type1,/TrueType,/MMType1) da gömülü font programlarına karşı sayar
Version 1.44.2
Düzeltildi (Düzeltildi (Fixed))
ValidatePdfVT, mevcut ancak tanınmayan birpdfvtid:GTS_PDFVTVersionişaretini artıkpvcUnknownolarak bırakıyor;pvcNonedeğerine düşürmüyor. BöylecePDF/VT-2sgibi geçersiz dosya düzeyi dizgeleri, hiç PDF/VT işareti taşımayan belgelerden ayırt edilebilir; PDF/VT-2s, PDF dosyasının XMP işaretiyle değil ISO 16612-2 Annex A içindeki MIME stream header ile tanımlanır/DPartRootdenetimi artık ISO 16612-2 §6.5 kapsamındaki tree semantics kurallarını daha sıkı doğrular:/DPartRootNodeve/NodeNameListgerçek DPart derinliğini tanımlamalı, DPart parent links bir ağaç oluşturmalı,/Startve/DPartsbirbirini dışlamalı ve her sayfanın/DPartgirdisi, page tree ile aynı depth-first sırada o sayfayı kapsayan leaf DPart'a işaret etmelidir
Version 1.44.1
Düzeltildi (Düzeltildi (Fixed))
SaveAsPdfVT, kaynak PDF kullanılabilir bir/DPartRootiçermediğinde artık ISO 16612-2 §6.5 için en küçük Document Part Hierarchy yapısını yazar. Oluşturulan ağaç her sayfayı/DPartüzerinden bağlar, mevcut geçerli hiyerarşiyi korur ve daha zengin alıcı/DPM metadata bilgisini çağıran iş akışına bırakırValidatePdfVTartık kullanılabilir DPart yapısını doğrular, PDF/VT XMP değerlerini hem RDF özniteliklerinden hem de öğe metninden okur ve PDF/VT ile PDF/X tabanı arasındaki tam eşleşmeyi zorunlu kılar: PDF/VT-1 için PDF/X-4 gerekirken PDF/VT-2 için PDF/X-4p, PDF/X-5g veya PDF/X-5pg gerekirTPdfVTSaveOptions.Conformance = pvc2artık geçersiz tek dosyalı PDF/VT-2 işaretleri yazmaz. Tek dosyalı writer, PDF/VT-2 dosya kümesi semantiği gerektirdiği için çıktıyı PDF/VT-1 olarak normalleştirir
Version 1.44.0
Eklendi (Eklendi (Added))
ValidatePdfUaartık dosya biçimi işaretleyicilerine ek olarak bayt düzeyinde denetlenebilir içerik düzeyi PDF/UA ihlallerini de raporlar: gömülü olmayan bir font programı (ISO 14289-1, 7.21.4), muaf basit font kodlaması bulunmadığında/ToUnicodeCMap eksik olan bir font (7.21.7) ve açıklama içeren ancak hiçbir sayfa için/Tabs /Ssekme sırası tanımlanmamış bir belge (7.18.3)- Üç yeni
TPdfUaValidationIssuedeğeri —pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodevepvuaiMissingTabsOrder—ValidatePdfUatarafından ve ön kontrol raporunda ortaya çıkarılır. Bu değerler, tam ISO 14289-1 doğrulaması yerine ön kontrol ipucu olarak tasarlanmış kaba sezgisel yöntemlerdir
Version 1.43.1
Düzeltildi (Düzeltildi (Fixed))
SaveAsPdfUaartık ISO 14289-1, 7.1 tarafından zorunlu kılınan/ViewerPreferences/DisplayDocTitle trueve/MarkInfo/Marked true/Suspects falsekatalog girdilerini, kaynak belge bu sözlükleri eksik ya da çelişkili değerlerle zaten sağlıyor olsa bile uygular. Önceden bu işaretleyiciler yalnızca sözlükler tamamen yoksa ekleniyordu; bu nedenle örneğin/ViewerPreferencesiçindeDisplayDocTitlebulunmayan veya/MarkInfoiçinde/Marked falsetaşıyan bir kaynak, uyumsuz bir dosyaya round-trip ediyordu- Var olan bir
/ViewerPreferencesya da/MarkInfosözlüğündeki mevcut anahtarlar korunur; dolaylı başvuru olarak sağlanan bir sözlük, zorunlu anahtarlar uygulanmadan önce çözümlenir
Version 1.43.0
Eklendi (Eklendi (Added))
- Artık
ValidatePdfA, gömülü ve ilişkili dosyalar ile Level U metni için PDF/A-2 / PDF/A-3 kurallarını uygular. Gömülü dosyalar PDF/A-1 için hâlâ reddedilir; PDF/A-3 için, gereken/AFRelationshipanahtarından (ISO 19005-3 Ek E) yoksun bir gömülü dosya işaretlenirken PDF/A-2 ekleri izinlidir (kendi uyumlulukları özyinelemeli olarak doğrulanmaz). Yeni birpvaiUnicodeMappingMissingsorunu, fontları/ToUnicodeeşlemesi taşımayan bir PDF/A-2u veya PDF/A-3u belgesini raporlar (ISO 19005-2 6.2.11.7). Saydamlık ve isteğe bağlı içerik yalnızca PDF/A-1 için işaretlenmeye devam eder
Version 1.42.0
Eklendi (Eklendi (Added))
- PDF/A-2 (ISO 19005-2) ve PDF/A-3 (ISO 19005-3) artık üç uyumluluk düzeyinin tümünde — a, b ve u —
SaveAsPdfA,ValidatePdfAvePdfAConformanceözelliği üzerinden destekleniyor.TPdfAConformancenumaralandırmasıpac2a,pac2u,pac3avepac3udeğerlerini kazanıyor (PDF/A-1 için Level u yok). Kaydetme işlemi eşleşenpdfaid:part(2 veya 3) ilepdfaid:conformance(A, B veya U) değerlerini yazıyor ve ISO 19005-2'nin uyumluluk için koruduğuGTS_PDFA1OutputIntent alt türünü muhafaza ediyor. Belge o düzeyin gerektirdiği etiketli yapıya sahip değilse, Level A isteği yine de eşleşen Level B düzeyine düşürülüyor
Version 1.41.0
Eklendi (Eklendi (Added))
- Artık
ValidatePdfA, daha önce raporladığı yapısal işaretlere ek olarak, işaret enjeksiyonunun onaramayacağı içerik düzeyindeki PDF/A ihlallerini de algılıyor: JavaScript ve diğer yasak eylemler, additional-actions (/AA), gömülü dosyalar,LZWDecode, saydamlık (soft masks ve transparency groups), isteğe bağlı içerik (/OCProperties), yasak ek açıklama alt türleri (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances trueve/XFA, tanımlayıcılarında gömülü bir font programı bulunmayan fontlar ve ISO 19005-1 6.8 tarafından gereken etiketli yapı olmadan yapılan bir Level A beyanı. Saydamlık, isteğe bağlı içerik ve gömülü dosya denetimleri yalnızca PDF/A-1 için geçerlidir (bu özelliklere PDF/A-2 ve PDF/A-3'te izin verilir). YeniTPdfAValidationIssuedeğerleri her durumu ortaya koyar; mevcut değerler değişmemiştir
Version 1.40.3
Düzeltildi (Düzeltildi (Fixed))
- Artık
SaveAsPdfA, PDF/A çıktısı üretmeden önce kaynak belgedeki tüm şifrelemeyi kaldırıyor. ISO 19005-1 6.1.3, trailer'daki/Encryptanahtarını yasaklar; ancak kaydetme yolu daha önce kaynağın güvenlik işleyicisini koruyordu, bu nedenle şifrelenmiş bir belgeyi PDF/A olarak kaydetmek şifrelenmiş, uyumsuz bir dosya üretiyordu. PDF/A kaydetme işlemi artık belgeyi önce şifresini çözüyor. Şifrelenmemiş belgeler bundan etkilenmez
Version 1.40.2
Düzeltildi (Düzeltildi (Fixed))
SaveAsPdfAartık yanlış bir PDF/A Level A uygunluk iddiası üretmiyor. Level A (pac1a) istendiğinde ama kaynak belgede ISO 19005-1 6.8'in gerektirdiği etiketli yapı işaretleri — katalogdaki bir/StructTreeRootve/MarkInfosözlüğü içinde/Marked true— yoksa, kaydedilen dosya Level A diye işaretlenmek yerine artık eşleşen Level B olarak tanımlanıyor (pdfaid:conformance=B). Salt görsel PDF/A-1b çıktısı bundan etkilenmiyor
Version 1.40.1
Düzeltildi (Düzeltildi (Fixed))
- PDF sürüm uyumluluğu doğrulaması sıkılaştırıldı; böylece
SetOCGState(set-optional-content-group-state) eylemi bir PDF 1.5 özelliği olarak tanınıyor.SetOCGStateeylemi içeren bir belgeyi PDF 1.2, 1.3 veya 1.4 hedefine kaydetmek artık ISO 32000-1 (Table 198) ile uyum sağlamak için reddediliyor; daha önce böyle bir eylem düşük sürümlü çıktıya geçebiliyordu. Ayrı ve artık kullanılmayan PDF 1.2SetStateeylemi PDF 1.2'den itibaren hâlâ kabul ediliyor
Version 1.40.0
Eklendi (Eklendi (Added))
- PDFium
FPDFPageObj_AddExistingMark()API'si bağlandı; bu API, mevcut bir içerik işaretini bir sayfa nesnesine ekler. Ardışık sayfa nesneleri aynı işareti paylaştığında, kaydedilen PDF bunları hepsini kapsayan tek bir işarette birleştirir; ardışık olmayan nesneler ayrı kopyalar alır - Mevcut bir metin nesnesinin punto boyutunu değiştirmek için PDFium
FPDFTextObj_SetFontSize()API'si bağlandı; bu, hâlihazırda var olanFPDFTextObj_GetFontSize()bağlamasını tamamlar
Değiştirildi (Değiştirildi (Changed))
- Birlikte gelen PDFium çalışma zamanı DLL'leri (Win32 ve Win64, standart ve V8 yapıları) 2026-06-02 PDFium anlık görüntüsüne güncellendi
Version 1.39.53
Değiştirildi (Değiştirildi (Changed))
- Delphi
PDFViewer,SplitViewveMultiPageViewerörnekleri artık belgeleri varsayılan olarakZoom to Pagemodunda açar - İlk işleme artık kullanıcı elle yakınlaştırma düzeyi seçmeden önce tüm sayfayı görüntüleyici alanına sığdırır
TPdf.AboutInfo, Lazarus paket meta verileri ve kurulum sürümü meta verileri 1.39.53 bildirecek şekilde güncellendi
Version 1.39.52
Değiştirildi (Değiştirildi (Changed))
Demo\Lazarus\CreatePDFgeliştirildi; başlangıç örneği artık vector paths, table content, embedded image, text annotation, rotated text ve daha anlaşılır bir document-building walkthrough içeren iki sayfalı bir PDF oluşturuyor- Tüm Delphi, C++Builder ve Lazarus demo klasörleri için daha düzenli
README.htmlsayfaları eklendi; kalan düz metin demo README dosyası tarayıcıda okunabilir bir kılavuzla değiştirildi TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.52 sürümünü raporluyor
Version 1.39.51
Demo\Delphi\PreflightReportClitoplu özetleri, seçilen standartlar genelinde Pass, Action required ve Review sonuçları için standart durum toplamları içerecek şekilde geliştirildi- Dosya başına satırlar artık TXT / HTML / JSON / CSV özetlerinde action-required ve review sayılarını da içeriyor; böylece CI çıktıları, üretilen her raporu tek tek açmadan incelenebiliyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.51 sürümünü raporluyor
Version 1.39.50
Demo\Delphi\PreflightReportClidizin toplu modu,batchdir=folderile bulunan PDF yollarını toplayıp sıraladıktan sonra raporları kararlı bir sırada üretecek şekilde geliştirildi- Özyinelemeli dizin taramaları artık yeniden üretilebilir bir rapor sırası ve özet satırları veriyor; açık
batch=list.txtişleme ise liste dosyasındaki sırayı korumaya devam ediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.50 sürümünü raporluyor
Version 1.39.49
Demo\Delphi\PreflightReportClitoplu özetleri, çalıştırma ayarlarını kaydedecek şekilde geliştirildi: kaynak türü, kaynak yolu, özyineleme durumu, çıkış dizini, rapor biçimi, seçili standartlar vefailon=modu- JSON özetleri artık bir
runnesnesi içeriyor; TXT ve HTML özetleri çalıştırma ayarları bölümü gösteriyor, CSV satırları ise aynı denetim sütunlarını elektronik tablo ve CI hatları için yineliyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.49 sürümünü raporluyor
Version 1.39.48
Demo\Delphi\PreflightReportClitoplu çıktı adlandırması geliştirildi; aynıoutdir=dizinini paylaşan yinelenen giriş dosyası adları artık birbirinin üretilmiş raporlarının üzerine yazmıyor- Toplu çalıştırmalar, aynı çalıştırmada bir rapor yolu daha önce atanmışsa artık
-2,-3ve sonraki son ekleri ekliyor; özetler de çakışmasız nihai rapor yolunu kaydediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.48 sürümünü raporluyor
Version 1.39.47
Demo\Delphi\PreflightReportClitoplu özetleri geliştirildi; TXT ve JSON çıktıları artık toplam dosya, işlenen dosya, başarısız dosya, sorun vefailon=eşleşmesi sayılarını içeren birleşik toplamlar barındırıyor- CSV özetleri mevcut tüketiciler için saf bir satır tablosu olmaya devam ediyor; HTML özetleri ise aynı birleşik metrikleri dashboard başlığında göstermeye devam ediyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.47 sürümünü raporluyor
Version 1.39.46
Demo\Delphi\PreflightReportCli,summary=batch.html/.htmdesteğiyle geliştirildi; böylece toplu çalıştırmalar TXT / CSV / JSON bildirimlerinin yanında tarayıcıda okunabilir bir dashboard üretebiliyor- HTML özetleri toplam, işlenen, başarısız, sorun ve
failon=eşleşmesi metriklerini gösterdikten sonra her girişi rapor bağlantıları, durum, sayaçlar ve hata metniyle listeliyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.46 sürümünü raporluyor
Version 1.39.45
Demo\Delphi\PreflightReportCli,batchdir=folderverecursiveile geliştirildi; betikler artık önce bir liste dosyası yazmadan PDF klasörlerini doğrudan tarayabiliyor- Dizin toplu modu, liste tabanlı toplu moddaki
outdir=,summary=,standards=vefailon=davranışını yeniden kullanıyor; özyinelemesiz tarama yalnızca seçilen klasörü tarıyor,recursiveise alt klasörleri de dahil ediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.45 sürümünü raporluyor
Version 1.39.44
Demo\Delphi\PreflightReportCli,summary=batch.csv|json|txtile geliştirildi; böylece toplu çalıştırmalar dosya başına raporların yanında makine tarafından okunabilir bir bildirim üretebiliyor- Toplu özetler; CI işleri ve dış betikler için her giriş yolunu, rapor yolunu, durumu, standart sayısını, geçen sayısını, sorun sayısını,
failon=eşleşme durumunu ve hata metnini içeriyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.44 sürümünü raporluyor
Version 1.39.43
Demo\Delphi\PreflightReportCli,batch=list.txtveoutdir=reportsile geliştirildi; betikler tek bir çalıştırmada bir PDF dosyası listesi için preflight raporları üretebiliyor- Toplu mod; boş ve
#yorum satırlarını atlıyor, her.preflight.<ext>rapor adını giriş PDF'sinden türetiyor, dosya başına hatalardan sonra devam ediyor ve dönmeden önce işlenen ile başarısız dosyaları özetliyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.43 sürümünü raporluyor
Version 1.39.42
Demo\Delphi\PreflightReportCli,failon=none|issues|action|reviewile geliştirildi; böylece CI işleri üretilen preflight sonuçlarını belirleyici çıkış kodlarına dönüştürebiliyor- CLI artık rapor dosyası ve isteğe bağlı ekli rapor PDF'si üretildikten sonra seçili bir
failon=kuralı eşleştiğinde 2 çıkış kodunu döndürüyor; çalışma zamanı hataları ise 1 çıkış kodunu döndürmeye devam ediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.42 sürümünü raporluyor
Version 1.39.41
Demo\Delphi\PreflightReportCli,attach=output.pdfile geliştirildi; böylece üretilen bir preflight raporu, yeni bir PDF kopyasına belge düzeyinde ek olarak gömülebiliyor- CLI, üretilen TXT / HTML / Markdown / JSON / CSV rapor dosyasını diskte tutuyor ve orijinal giriş PDF yoluna geri eklemeyi reddederek yanlışlıkla üzerine yazma riskini azaltıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.41 sürümünü raporluyor
Version 1.39.40
Demo\Delphi\PreflightReportClieklendi; görüntüleyici açmadan betiklerleFPdfPreflightReportüretimi yapan bir Delphi konsol yardımcısı- CLI, argümansız örnek oluşturmayı, giriş / çıkış argümanlarını, isteğe bağlı parolayı,
text/html/md/json/csvçıktı biçimlerini ve PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R ve PDF/VT içinstandards=filtrelemesini destekliyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.40 sürümünü raporluyor
Version 1.39.39
FPdfPreflightReport,TPdfPreflightReport.ToMarkdownveSaveMarkdownToFileile geliştirildi; böylece preflight raporları sorun takipçisi dostu Markdown olarak dışa aktarılabiliyor- Delphi, C++Builder ve Lazarus
PreflightReportörnekleri; mevcut TXT / HTML / JSON / CSV iş akışının yanına Markdown önizleme geçişi ve Save MD eylemleri eklenerek güncellendi TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.39 sürümünü raporluyor
Version 1.39.38
- Delphi, C++Builder ve Lazarus
SecurityAuditörnekleri; mevcut TXT kaydetme / kopyalama iş akışının yanına JSON denetim raporu dışa aktarımı eklenerek geliştirildi - JSON raporu
format,generatedAt,summary,findingCountve severity, area, detail alanlarını taşıyan yapılandırılmışfindingssatırlarını içeriyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.38 sürümünü raporluyor
Version 1.39.37
FPdfPreflightReport,TPdfPreflightReport.ToCsvveSaveCsvToFileile geliştirildi; böylece preflight raporları elektronik tablo dostu CSV olarak dışa aktarılabiliyor- Delphi, C++Builder ve Lazarus
PreflightReportörnekleri; mevcut TXT / HTML / JSON iş akışının yanına CSV önizleme geçişi ve Save CSV eylemleri eklenerek güncellendi TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.37 sürümünü raporluyor
Version 1.39.36
FPdfPreflightReport, kategori bazında marker-level sorunları toplamak içinTPdfPreflightReport.IssueCategoryCountsile yeniden kullanılabilirTPdfPreflightIssueCategoryCountveTPdfPreflightIssueCategoryCountstürleriyle geliştirildiTPdfPreflightReport.ToText,ToHtmlveToJson; üretilen PreflightReport çıktısının, standart başına satırların ve ayrıntılı sorun önerilerinin yanında sorun kategorisi sayı özetlerini de içermesi için güncellendiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.36 sürümünü raporluyor
Version 1.39.35
- Genişletilmiş
PrintDialogörneği Delphi, C++Builder ve Lazarus taraflarındaPrintPreferencesolarak yeniden adlandırıldı; böylece demo adı artık kapsadığı PDF yazımına dair yazdırma tercihleri, N-up yazdırma, tek / çift sayfa filtreleme, gri tonlama, hücre kenarlığı ve dupleks eşleme iş akışıyla örtüşüyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.35 sürümünü raporluyor
Version 1.39.34
Demo\Delphi\PrintPDF, sürükle-bırak PDF yükleme ile geliştirildi; ayrıca mevcutDemo\CBuilder\PrintPDFiş akışı, Delphi ve Lazarus PrintPDF örnekleriyle birlikte belgelendirildiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.34 sürümünü raporluyor
Version 1.39.33
Demo\CBuilder\SplitVieweklendi; SplitView örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandıTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.33 sürümünü raporluyor
Version 1.39.32
Demo\Lazarus\SplitVieweklendi; iki veya üç bölmeli düzenler, etkin görünüm gezinmesi, eşitlenmiş komutlar, yakınlaştırma ön ayarları ve döndürme ile yan yana PDF karşılaştırması Lazarus'a geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.32 sürümünü raporluyor
Version 1.39.31
Demo\Lazarus\PrintPDFeklendi; standart PDF yazdırma iş akışı, önizleme gezinmesi, sayfa aralıkları, kopya sayısı, collate modu, ilerleme ve iptal desteğiyle Lazarus'a geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.31 sürümünü raporluyor
Version 1.39.30
Demo\Lazarus\FontPropertieseklendi; FontProperties örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandıTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.30 sürümünü raporluyor
Version 1.39.29
Demo\CBuilder\FontPropertieseklendi; indekslenmiş karakter ve yazı tipi meta verisi incelemesi, Delphi örneğinin yanında C++Builder'a da geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.29 sürümünü raporluyor
Version 1.39.28
Demo\Delphi\ExtractTextPageseklendi; sayfa başına metin çıkarma örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandıTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.28 sürümünü raporluyor
Version 1.39.27
Demo\Lazarus\PrintDialogeklendi; PrintDialog örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandıTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.27 sürümünü raporluyor
Version 1.39.26
Demo\CBuilder\PrintDialogeklendi; N-up yazdırma ve PDF yazarı yazdırma tercihleri iş akışı, Delphi örneğinin yanında C++Builder'a da geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.26 sürümünü raporluyor
Version 1.39.25
Demo\CBuilder\ViewerInteractionLabeklendi; ViewerInteractionLab örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandı- Kütüphane derleme iş akışı ve Win64 C++Builder paket çıktıları güncellendi; böylece
TPdfViewgörüntüleyici etkileşim metotları Win64 demo'larında doğru biçimde bağlanıyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.25 sürümünü raporluyor
Version 1.39.24
Demo\Lazarus\ViewerInteractionLabeklendi; odaklı görüntüleyici etkileşim iş akışı, Delphi örneğinin yanında Lazarus'a da geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.24 sürümünü raporluyor
Version 1.39.23
Demo\Lazarus\SearchAndSelecteklendi; SearchAndSelect örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandıTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.23 sürümünü raporluyor
Version 1.39.22
Demo\CBuilder\ContentExtractionLabveDemo\Lazarus\ContentExtractionLabeklendi; çok kategorili içerik çıkarma iş akışı desteklenen tüm demo IDE'lerine geldiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.22 sürümünü raporluyor
Version 1.39.21
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportveDemo\CBuilder\PreflightReport, önizleme biçimi seçiciyle geliştirildi; kullanıcılar artık raporları kaydetmeden önce metin veya JSON çıktısını inceleyebiliyorTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.21 sürümünü raporluyor
Version 1.39.20
FPdfPreflightReport'aTPdfPreflightReport.ToJsonveSaveJsonToFileüzerinden JSON dışa aktarımı eklendi; makine tarafından okunabilir özetler, standart başına durum / öncelik, sonraki eylemler ve sorun ayrıntıları üretiliyorDemo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportveDemo\CBuilder\PreflightReport; TXT / HTML dışa aktarımının yanına Save JSON eylemleri eklenerek güncellendiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.20 sürümünü raporluyor
Version 1.39.19
FPdfPreflightReport, TXT / HTML raporlardaTPdfPreflightStatus, sorun kategorileri, standart başına öncelik ve sonraki eylem yönlendirmesiyle geliştirildiDemo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportveDemo\CBuilder\PreflightReport; özet tablosunda durum, öncelik, sorun sayısı ve sonraki eylemi gösterecek şekilde güncellendiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.19 sürümünü raporluyor
Version 1.39.18
Demo\Lazarus\SecurityAuditeklendi; salt okunur PDF risk-yüzeyi denetim iş akışı için Delphi, C++Builder ve Lazarus demo matrisi tamamlandı- Lazarus örneği; izinleri, ekleri, JavaScript eylemlerini, URI / Launch bağlantı ek açıklamalarını, web bağlantılarını, imzaları, XFA durumunu, V8 / XFA yardımcı kullanılabilirliğini ve desteklenmeyen özellik geri çağrılarını numaralandırıyor, sonra bulgu listesini TXT rapor olarak kaydediyor veya kopyalıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.18 sürümünü raporluyor
Version 1.39.17
Demo\CBuilder\SecurityAuditeklendi; salt okunur PDF risk-yüzeyi denetim iş akışı, mevcut Delphi örneğinin yanında C++Builder'a da geldi- C++Builder örneği; izinleri, ekleri, JavaScript eylemlerini, URI / Launch bağlantı ek açıklamalarını, web bağlantılarını, imzaları, XFA durumunu, V8 / XFA yardımcı kullanılabilirliğini ve desteklenmeyen özellik geri çağrılarını numaralandırıyor, sonra bulgu listesini TXT rapor olarak kaydediyor veya kopyalıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.17 sürümünü raporluyor
Version 1.39.16
Demo\CBuilder\SearchAndSelecteklendi; bağımsız SearchAndSelect görüntüleyici iş akışı, mevcut Delphi örneğinin yanında C++Builder'a da geldi- C++Builder örneği PDF oluşturuyor veya açıyor; sayfa / karakter indeksi önizlemeleriyle tüm sayfa eşleşmelerini listeliyor, Previous / Next ve çift tıklamayla gezinmeyi destekliyor ve geçerli sayfadaki eşleşmeleri
HighlightSearchTextile vurguluyor - Ayrıca
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangeve yayılmış görünümDisplayModeseçeneklerini de sunuyor; sürüm meta verileri artık 1.39.16'yı raporluyor
Version 1.39.15
Demo\CBuilder\WatermarkStampeklendi; yeniden kullanılabilir Form XObject filigran ve damga iş akışları için Delphi, Lazarus ve C++Builder demo matrisi tamamlandı- C++Builder örneği hedef ve damga PDF'leri oluşturuyor, damga sayfasını
CreateXObjectFromPageile yeniden kullanıyor,TPdfMatrixdönüşümleri uyguluyor ve ortalanmış filigranları, köşe damgalarını ve sayfa numarası etiketlerini kaydediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.15 sürümünü raporluyor
Version 1.39.14
Demo\Lazarus\WatermarkStampeklendi; yeniden kullanılabilir Form XObject filigran ve damga iş akışı Lazarus'a geldi- Lazarus örneği hedef ve damga PDF'leri oluşturuyor, damga sayfasını
CreateXObjectFromPageile yeniden kullanıyor,TPdfMatrixdönüşümleri uyguluyor ve ortalanmış filigranları, köşe damgalarını ve sayfa numarası etiketlerini kaydediyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.14 sürümünü raporluyor
Version 1.39.13
Demo\CBuilder\PreflightReporteklendi; yeniden kullanılabilirFPdfPreflightReportiş akışı için Delphi, Lazarus ve C++Builder demo matrisi tamamlandı- C++Builder örneği; standart özetleri, TXT rapor önizlemelerini, TXT / HTML rapor dosyalarını ve Open Last Report davranışını üretmek için
FPdfPreflightReport.hppkullanıyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.13 sürümünü raporluyor
Version 1.39.12
Demo\Lazarus\PreflightReporteklendi; PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R ve PDF/VT preflight rapor iş akışı Lazarus'a geldi- Lazarus örneği bir PDF açabiliyor veya oluşturabiliyor, hedef standartları seçebiliyor, özet satırlarını ve TXT rapor çıktısını önizleyebiliyor, TXT / HTML raporları kaydedebiliyor ve en son kaydedilen raporu açabiliyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.12 sürümünü raporluyor
Version 1.39.11
Demo\Delphi\SearchAndSelect, sayfa numarasını, karakter indeksini ve önizleme metnini kaydeden tüm sayfa arama sonuçları listesiyle geliştirildi- Geçerli sayfa
HighlightSearchTextdavranışı korunarak Previous / Next eşleşme gezinmesi ve çift tıklamayla sonuca atlama eklendi TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.11 sürümünü raporluyor
Version 1.39.10
Demo\Delphi\SecurityAudit, geçerli özet ve bulgu satırlarını TXT denetim raporu olarak dışa aktaran Save Report ve Copy Report eylemleriyle geliştirildi- Demo artık denetim paneli sıfırlandığında rapor dışa aktarma durumunu temizliyor; böylece kopyalanan veya kaydedilen raporlar görünür bulgularla uyumlu kalıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.10 sürümünü raporluyor
Version 1.39.9
Demo\Delphi\ContentExtractionLab; kaynak PDF kaydetme, raporu panoya kopyalama ve tümü / hiçbiri kategori seçimi eylemleriyle geliştirildi- Demo artık kategori seçimleri değiştiğinde geçerli raporu geçersiz kılıyor; böylece TXT / JSON dışa aktarımları görünür çıkarma kapsamını yansıtıyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.9 sürümünü raporluyor
Version 1.39.8
Demo\Delphi\ContentExtractionLabeklendi; belge meta verisi, sayfa metni, sayfa nesneleri, görseller, ekler, bağlantılar, ek açıklamalar, yer imleri ve yazı tipi / karakter ölçümleri için birleşik bir içerik çıkarma iş akışı örneği- Örnek, mevcut bir PDF'yi açabiliyor ya da metin, görsel, ek ve ek açıklama içeriğiyle sentetik bir PDF oluşturabiliyor; sonra özet satırları ve ayrıntılı TXT / JSON raporları üretiyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.8 sürümünü raporluyor
Version 1.39.7
- Yeniden kullanılabilir rapor yardımcısı
Lib\FPdfPreflightReport.paseklendi; bu yardımcıValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRveValidatePdfVTçağrılarını tek birTPdfPreflightReportnesnesinde birleştiriyor Demo\Delphi\PreflightReporteklendi; PDF açan veya oluşturan, hedef standartları seçen, özet satırlarını ve sorun önerilerini önizleyen, TXT veya HTML raporları kaydeden bir iş akışı örneği- Üretilen raporlar, yerleşik marker düzeyi doğrulama sınırını açıkça tarif ediyor; böylece uygulamalar gerektiğinde raporları özel içerik düzeyi preflight araçlarıyla eşleştirebiliyor
TPdf.AboutInfo, Lazarus paket meta verileri, paket proje listeleri ve yükleyici sürüm meta verileri artık 1.39.7 sürümünü raporluyor
Version 1.39.6
Demo\Delphi\SearchAndSelecteklendi; arama vurgulama, metin seçimi, seçili metin önizlemesi, kopyalama, temizleme ve spread görüntüleme modları için odaklı bir görüntüleyici iş akışı örneği- Örnek, yeni bir kütüphane API'si eklemeden
HighlightSearchText, match-case / whole-word arama seçeneklerini,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardveClearSelectiondavranışlarını gösteriyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.6 sürümünü raporluyor
Version 1.39.5
Demo\Delphi\ViewerInteractionLab;HighlightSearchText, match-case / whole-word seçenekleri, seçili metin önizlemesi ve mevcut seçim / pano denetimleriyle SearchAndSelect tarzı bir görüntüleyici UX örneğine genişletildiDemo\Delphi\PrintDialog, PDF yazarının yazdırma tercihlerini inceleyecek şekilde genişletildi:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingve görünürSetPdfPrintPaperHandlingDevModeduplex eşlemesiDemo\Delphi\SecurityAuditeklendi; izinleri, ekleri, belge JavaScript'ini, URI / Launch bağlantılarını, web bağlantılarını, imzaları, XFA durumunu ve V8 / XFA yardımcı kullanılabilirliğini listeleyen salt okunur bir risk-yüzeyi örneğiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.5 sürümünü raporluyor
Version 1.39.4
Demo\CBuilder\ImageToPDFveDemo\Lazarus\ImageToPDFeklendi; ImageToPDF örnek matrisi Delphi, C++Builder ve Lazarus genelinde tamamlandı- Yeni örnekler; çoklu görsel seçimini, seçili görsel önizlemesini, görsel başına bir PDF sayfasını, A4 dikey / yatay sayfa boyutlandırmayı, ortalanmış görsel ölçeklemeyi, görsel başına ilerlemeyi ve kaydettikten sonra üretilen PDF'yi açmayı gösteriyor
TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.4 sürümünü raporluyor
Version 1.39.3
Demo\CBuilder\BatchExporteklendi; çok dosyalı PDF'den JPG'ye dışa aktarma iş akışı, mevcut Delphi ve Lazarus örneklerinin yanında C++Builder'a da geldi- Örnek;
LoadCustomDocument,IPdfCancellationTokenSource, akış tabanlıTFileStreamgirişi, dosya ve sayfa başına ilerleme, iptal yönetimi, DPI / kalite / parola girişleri ve tamamlanınca çıkış klasörünü açmayı gösteriyor TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.3 sürümünü raporluyor
Version 1.39.2
Demo\Delphi\WatermarkStampeklendi; hedef bir PDF ile yeniden kullanılabilir bir damga PDF'si oluşturup her sayfaya ortalanan filigranları, sağ üst damgaları ve sayfa numarası etiketlerini uygulayan, çalıştırılabilir bir Form XObject iş akışı örneği- Örnek, yeni bir kütüphane API'si eklemeden
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixveFPDFPageObj_SetMatrixkullanımını gösteriyor Docs\en-us\Examples.html, matrisleriFPDFPageObj_SetMatrix'e geçirirken güncelTPdfMatrix.Handledesenini kullanacak şekilde güncellendiTPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.2 sürümünü raporluyor
Version 1.39.1
Demo\Delphi\ViewerInteractionLabeklendi; görüntüleme modları, sığdırma modları, sayfa renkleri, döndürme, kullanıcı metin seçimi, pano eylemleri veDeviceToPagekoordinat geri bildirimi için odaklı birTPdfViewörneğiDemo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabeklendi; böylece Lazarus kullanıcıları da PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R ve PDF/VT doğrulama ile marker çıktısı iş akışını çalıştırabiliyor- Standartlar birimleri
Lib\37.0\PDFiumPas.dprojveLib\FPC\PDFiumLaz.lpkiçine listelendi ve DelphiSplitViewdemo derlemesi, yinelenenWinapi.ShellAPIiçe aktarması kaldırılarak düzeltildi - Delphi demo toplu derleme engelleri, çalışma zamanı davranışı değiştirilmeden
BatchExport,PDFViewer,MultiPageViewerveSplitViewiçinde giderildi - C++Builder demo toplu derleme uyumluluğu, geçerli proje modu için
PDFViewerveMultiPageVieweriçindenullptryerineNULLkullanılarak düzeltildi TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.1 sürümünü raporluyor
Version 1.39.0
Demo\Delphi\StandardsLabeklendi; bu çalıştırılabilir standartlar iş akışı örneği bir PDF yükler veya oluşturur,ValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRveValidatePdfVTçalıştırır ve algılanan uyumluluğu, geçme/kalma durumunu ve issue sayılarını tek bir ızgarada gösterir- StandardsLab içindeki kaydet düğmeleri
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRveSaveAsPdfVTçağrılarını yapar; böylece özel bir harness yazmadan PDF standards marker çıkışı görünür hale gelir TPdf.AboutInfo, Lazarus paket meta verileri ve yükleyici sürüm meta verileri artık 1.39.0 sürümünü raporluyor
Version 1.38.0
TPdfViewarama ve metin seçimi katmanları artık mantıksal maske boyama yerine gerçek alpha blending kullanıyor; böylece vurguların altındaki sayfa içeriği korunuyorSetPdfPrintPaperHandlingDevMode,TPrintPaperHandlingdeğerlerini WindowsDEVMODE.dmDuplexdeğerlerine eşlemek için eklendi:DMDUP_SIMPLEX,DMDUP_HORIZONTALveDMDUP_VERTICALTPdfView.SmoothScrollartık satır / sayfa kaydırma çubuğu komutlarını zamanlayıcı güdümlü bölümler halinde animasyonla yürütüyor; tutamaç (thumb) takibi anında kalıyorTPdf.AboutInfove yükleyici sürüm meta verileri artık 1.38.0 sürümünü raporluyor
Version 1.37.0
TPdfartık örnek başına bir render kilidine sahip ve bu kilitRenderPage,RenderTile,RenderPageProgressive, sayfa yeniden yükleme ve belge boşaltma yollarını serileştiriyor. Paylaşılan bir bileşen üzerinden worker güdümlü render artık uygulanabilir; uygulamalar ise belge mutasyonu ve yaşam süresini yine kendileri koordine eder- Sıfır kopyalı bitmap sarmalayıcı, ters (bottom-up)
TBitmapDIB düzenlerini reddedecek ve kopyalamadan önce PDFium'a ait bir arabelleğe düşecek şekilde düzeltildi; VCL render testlerindeki stride bozulması / erişim ihlali hataları ortadan kalktı TPdfViewseçim davranışı sıkılaştırıldı:AllowUserTextSelectionyalnızca kullanıcı girişini sınırlıyor, kod düzeyi seçim API'leri boyamaya devam ediyor veSelectAllgerçek görünür spread'i takip ettiği için kapak sayfası artık 2. sayfayı seçmiyor. Delphi, Lazarus ve C++Builder testleri buna göre genişletildiTPdf.AboutInfove yükleyici sürüm meta verileri artık 1.37.0 sürümünü raporluyor
Version 1.36.0
TPdfViewiçinde son kullanıcı metin seçimi etkinleştirildi — v1.17.0'da rezerve edilenAllowUserTextSelectionözelliği artık eksiksiz bir sürükle-seç hattını sürüyor. Metin karakterine sol tıklamak seçim moduna girer (hit-test otomatik); boş alana sol tıklamak ise önceki gibi kaydırmaya devam eder. Form doldurma widget'ı önceliği korur, bu yüzden bir form alanına tıklamak seçim başlatmak yerine alanı odaklar- Çift tıklama sözcüğü, üçlü tıklama satırı seçer;
Ctrl+Ageçerli sayfayı (spread görüntüleme modlarında her iki sayfayı) seçer veCtrl+CseçimiCF_UNICODETEXTolarak Windows panosuna kopyalar Shift+Left/Shift+Rightseçimi her seferinde bir karakter genişletir;Shift+Home/Shift+Endise tohum karakterin kutu yüksekliğini satır kümesi toleransı olarak kullanıp görsel satır kenarına kadar genişletir, böylece karışık yazı boyutlu satırlar doğru kümelenir- Metnin üzerinde beklemek imleci
crIBeam'e çevirir; metinden çıkmak varsayılan imleci geri getirir. Bir metin seçimi sürüklemesi sürerken, görüntüleyici kenarındaki 20 piksellik ölü bölgeye sürüklemek sayfayı otomatik kaydırır (50 ms tick, 16 px / tick, kaydırma yolunun kullandığı aynı sınırlara sabitlenir); böylece seçim, fareyi bırakmadan geçerli görünür alanın ötesine uzayabilir - Sayfalar arası seçim, spread görüntüleme modlarında (
dmTwoPageContinuous,dmTwoPageContinuousWithCover) çalışır: sol sayfada başlayıp sağ sayfada biten bir sürükleme, ikisini kapsayan bitişik aralığı seçer.SelectedText, sayfa başına dilimleri CR/LF ile birleştirir; böylece gidiş-dönüş metni normal çok satırlı içerik gibi okunur - Yeni published özellik
SelectionColor(varsayılanclHighlight, Windows sistem seçim rengi) — arama sonuçlarını sarıya boyayanHighlightColor'dan bağımsızdır. Arama vurguları ile canlı bir sürükleme seçimi, renk çakışması olmadan aynı anda ekranda gösterilebilir - Yeni published olay
OnSelectionChange, seçimin maddileşen aralıkları gerçekten değiştiğinde tetiklenir — birebir aynı yeniden uygulamada asla tetiklenmez; böylece ana uygulamalar bunu debounce yapmadan doğrudan durum çubuğu metnine veya düğmenin etkin durumuna bağlayabilir TPdfViewüzerinde yeni public API:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Bunlar kod düzeyinde giriş noktalarıdır veAllowUserTextSelectiondurumundan bağımsız olarak her zaman çalışır — bu bayrak yalnızca kullanıcı girdisini (fare, Ctrl+C, Ctrl+A, Shift+ok tuşları) sınırlar; böylece kiosk host'lar kullanıcı kaynaklı seçimi kapalı tutarken aynı API'yi süren "Tümünü Seç / Kopyala" araç çubuğu düğmeleri kurmaya devam edebilir- Host kendi menüsünü atamamışsa varsayılan sağ tıklama
Copy/复制PopupMenu'sü otomatik eklenir; başlık İngilizce ve Çince arasındaSysLocale.PriLangIDile seçilir; kendi menüsünü gereken host'lar yalnızca kendiPopupMenu'lerini atar ve varsayılan menü bastırılır - Seçim,
SetPdf,SetPageNumber,SetActive(False)veDisplayModegeçişlerinde otomatik temizlenir; önceki seçim boş değilseOnSelectionChangetam bir kez tetiklenir. Form-fill alt sistemi önceliğini korur; alan düzenlenirken tüm seçim kısayolları kendi seçimi içinCtrl+C/Ctrl+A/Shift+arrowsolaylarını alana bırakır - Delphi ve Lazarus regresyon paketleri her biri 202 teste, C++Builder paketi 159 teste genişletildi; kapsam: varsayılan değerler, gidiş-dönüş, public API davranışı, durum değişimi temizlemeleri, fare sürükleme (hit-text / hit-blank), tıklama ve sürükleme karşılaştırması, IBeam imleç geçişi, çift tıklama sözcük, üçlü tıklama satır, klavye kısayolları, varsayılan popup ekleme / erteleme / başlık ve spread sayfalar arası seçim — pano CR/LF gidiş-dönüş denetimi de dahil
Version 1.35.0
- PDF/VT (ISO 16612-2:2010) marker injection desteği eklendi: TPdf.SaveAsPdfVT mevcut belgeyi PDF/VT-1 veya PDF/VT-2 uyumlu bir dosyaya yükseltir (değişken ve işlemsel baskıya yönelik PDF alt kümesi). PDF/VT, PDF/X-4 üzerine kuruludur — ISO 16612-2 §6.2.1, her PDF/VT-1 dosyasının aynı zamanda PDF/X-4'e de uygun olmasını zorunlu kılar — bu yüzden enjektör, PDF/VT'ye özgü özelliklerin yanına tam PDF/X-4 marker kümesini de yazar (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)ve/Trapped, ayrıca gömülü ICC profile içeren bir OutputIntent dictionary'sine başvuran katalog/OutputIntents) - PDF/VT'ye özgü ekleme, XMP
pdfvtid:GTS_PDFVTVersion(§6.3 Table 2'ye göre "PDF/VT-1" veya "PDF/VT-2") ilepdfvtid:GTS_PDFVTModDate(§6.3 NOTE 1 uyarıncaxmp:ModifyDateile senkron tutulur) öğelerini kapsar; buna ek olarak hem pdfxid hem pdfvtid ad alanlarını bildiren bir pdfaExtension:schemas açıklaması da yazılır (NPES URI'lerihttp://www.npes.org/pdfx/ns/id/vehttp://www.npes.org/pdfvt/ns/id/). Trailer bir/IDdizisi taşır - Bellek içi PDF/VT çıktısı için TPdf.SaveAsPdfVTToStream eklendi; ayrıca paketle gelen sRGB IEC61966-2.1 OutputIntent (3144 bayt, SaveAsPdfA / SaveAsPdfX ile aynı profil) ve
/Trapped /Falseile PDF/VT-1 üreten varsayılan seçenekli kısayolTPdf.SaveAsPdfVT(FileName)eklendi - TPdf.ValidatePdfVT eklendi: açık bir PDF'yi PDF/VT uyumluluk marker'ları açısından denetler (XMP
pdfvtid:GTS_PDFVTVersionveGTS_PDFVTModDatevarlığı,pdfvtid:GTS_PDFVTModDateilexmp:ModifyDateeşitliği, temelpdfxid:GTS_PDFXVersiontanımlayıcısının varlığı, §6.5 uyarınca katalogda/DPartRootvarlığı,/OutputIntentsile/DestOutputProfile, trailer /ID, şifreleme durumu vexmp:CreateDate/ModifyDatevarlığı) ve saptanan uyumluluk düzeyini, bulunan sorun kümesini TPdfVTValidationResult olarak döndürür - TPdf.PdfVTConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (pvc1, pvc2, pvcNone veya pvcUnknown), ValidatePdfVT'yi açıkça çağırmaya gerek kalmadan döndürür
- Yeni FPdfPdfvt unit'inde dışa aktarılan yeni türler: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Document Part Hierarchy (§6.5'teki
DPartRoot/DPartağacı), değişken veri baskısı iş akışının alıcı / sayfa aralığı eşlemesine bağlı uygulama düzeyinde bir yapıdır. SaveAsPdfVT bir DPart ağacı sentezlemez — ValidatePdfVT eksik/DPartRootdurumunupvviMissingDPartRootolarak yüzeye çıkarır; böylece çağıranlar PDF/VT dosyalarını ayrı bir DPart oluşturma adımından geçirebilir. İçerik düzeyindeki PDF/X-4 gereksinimleri (yazı tipi gömmesi, saydamlık, ICC ile yönetilen renk, OPI / JavaScript / Reference XObject yasakları vb.) belge yazarının ve PDFium'un render hattının sorumluluğunda kalır - TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.34.0
- PDF/R-1 (ISO 23504-1:2020) marker injection desteği eklendi: TPdf.SaveAsPdfR, geçerli belgeyi PDF/R-1 uyumlu bir dosyaya yükseltir (taranan belgeler için kullanılan, PDF'nin raster-görsel taşıma alt kümesi). Ekleme, son işlemeyle eklenebilen dosya biçimi düzeyi gereksinimleri kapsar — trailer sözlüğü ile startxref anahtar sözcüğü arasına yazılan özgün
%PDF-raster-1.0sürüm kimliği yorumu (§5), §6.3 beyaz listesine indirgenen katalog sözlüğü (yalnızca Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata kalır), §6.4.3 beyaz listesine indirgenen Document Information Dictionary (yalnızca Creator / Producer / CreationDate / ModDate), §6.4.4 Tablo 1'deki dört girdiyi taşıyan katalog /Metadata XMP akışı (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate) ve trailer /ID dizisi - Bellek içi PDF/R çıktısı için TPdf.SaveAsPdfRToStream ve yaygın durum için varsayılan seçenekli kısayol
TPdf.SaveAsPdfR(FileName)eklendi - TPdf.ValidatePdfR eklendi: açık bir PDF'yi PDF/R-1 uyumluluk marker'ları açısından denetler (
%PDF-raster-x.yaltbilgi yorumu, başlık sürümü, /Type /ObjStm yokluğu, katalog beyaz liste uyumu, Info sözlüğü beyaz liste uyumu, XMP meta veri akışının varlığı, trailer /ID) ve saptanan uyumluluk düzeyi ile bulunan sorun kümesini TPdfRValidationResult olarak döndürür - TPdf.PdfRConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (prc1, prcNone veya prcUnknown), ValidatePdfR'yi açıkça çağırmaya gerek kalmadan döndürür
- Yeni FPdfPdfr unit'inde dışa aktarılan yeni türler: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Default, StripInfoOptionalEntries ve StripCatalogOptionalEntries değerini True yapar; böylece ekleyici varsayılan olarak §6.3 / §6.4.3 uyumlu bir katalog ve Info sözlüğü üretir. Çağıranlar, kaynak girdileri korumak için bunları False yapabilir (çıktı bu durumda o PDF/R maddelerini sağlamaz ama diğer marker'lar bağlı kalır) - İçerik düzeyi gereksinimler kaynak PDF'nin sorumluluğunda kalır: sayfa başına Contents yapısı (§6.5.1), MediaBox
[0 0 w h]biçimi (§6.5.3), filtre kısıtları (§6.2.2 — yalnızca FlateDecode, bitonal CCITTFaxDecode, 8-bit gri/RGB DCTDecode), object stream yokluğu (§6.2.4) ve §6.6'ya göre strip düzeni. Bunlar son işlemeyle dayatılamaz — PDF/R yapısal olarak diğer PDF/x standartlarından çok daha sıkı bir alt kümedir ve kaynak baytların doğru üretilmesini gerektirir. ValidatePdfR, bu unit'in saptayabildiği dosya biçimi sorunlarını görünür kılar; tam içerik düzeyi denetim için bir TWAIN Working Group PDF/R doğrulayıcıyla eşleştirin - TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.33.0
- PDF/X (ISO 15930 ailesi) marker injection desteği eklendi: TPdf.SaveAsPdfX, temel PDF'ye incremental update uygulayarak mevcut belgeyi PDF/X-1a:2001, PDF/X-3:2002 veya PDF/X-4 uyumlu bir dosyaya yükseltir. Ekleme, post-processing ile eklenebilen dosya biçimi düzeyindeki gereksinimleri kapsar —
pdfxid:GTS_PDFXVersiontaşıyan (PDF/X-1a / PDF/X-3 içinpdfxid:GTS_PDFXConformancede dahil) ve eşleşen pdfaExtension:schemas açıklamasıyla gelen XMP metadata akışı,/GTS_PDFXVersion,/GTS_PDFXConformanceve/Trappedgirdilerini içeren yeniden yazılmış bir Document Information Dictionary,/S /GTS_PDFXile gömülü ICC profile sahip bir OutputIntent dictionary'sine başvuran güncellenmiş bir katalog (/OutputIntents [N 0 R]) ve trailer/IDdizisi - Bellek içi PDF/X çıktısı için TPdf.SaveAsPdfXToStream eklendi; ayrıca yerleşik sRGB IEC61966-2.1 OutputIntent (3144 bayt, SaveAsPdfA'nın kullandığı profille aynı) ile PDF/X-4 üreten varsayılan seçenekli kısayol
TPdf.SaveAsPdfX(FileName)eklendi - TPdf.ValidatePdfX eklendi: açık bir PDF'yi PDF/X uyumluluk marker'ları açısından denetler (XMP pdfxid tanımlayıcısı ve Info sözlüğü değeriyle eşitliği, pdfxid extension schema açıklaması, /DestOutputProfile taşıyan /OutputIntents dizisi, Title varlığı, trailer /ID, şifreleme durumu, xmp:CreateDate / xmp:ModifyDate varlığı) ve saptanan düzey ile bulunan sorun kümesini TPdfXValidationResult olarak döndürür
- TPdf.PdfXConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (pxc1a, pxc3, pxc4, pxcNone veya pxcUnknown), ValidatePdfX'yi açıkça çağırmaya gerek kalmadan döndürür. Üç uyumluluk düzeyini ayırt etmek için XMP sürüm dizisi çözümlenir
- Yeni FPdfPdfx unit'inde dışa aktarılan yeni türler: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Default, sRGB OutputIntent ve/Trapped /Falseile PDF/X-4'ü hedefler; çağıranlarConformancedeğerini geçersiz kılabilir, ticari baskı iş akışları için CMYK birIccProfileDatablob'u sağlayabilir veyaOutputCondition/OutputConditionIdentifier/RegistryNamedeğerlerini belirli bir ICC characterization registry girdisine (örn. FOGRA39, GRACoL2006_Coated1v2) yönlendirebilir - İçerik düzeyi gereksinimler (tüm yazı tiplerinin gömülü olması, JavaScript olmaması, görünür ek açıklama olmaması, OPI yasağı, PDF/X-1a / PDF/X-3 saydamlık kuralları vb.) belge yazarının ve PDFium'un render hattının sorumluluğunda kalır. Eksiksiz uyumluluk doğrulaması için ValidatePdfX'i callas pdfaPilot veya Ghent PDF Workgroup Output Suite gibi bir preflight aracıyla eşleştirin
- TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.32.0
- PDF/E-1 (ISO 24517-1:2008) marker injection desteği eklendi: TPdf.SaveAsPdfE, taban PDF'yi incremental update ile son işleyerek geçerli belgeyi PDF/E-1 uyumlu bir dosyaya yükseltir. Ekleme, son işlemeyle eklenebilen dosya biçimi düzeyi gereksinimleri kapsar —
pdfe:ISO_PDFEVersion = "PDF/E-1"taşıyan ve eşleşen pdfaExtension:schemas açıklamasıyla gelen bir XMP meta veri akışı, §5'in zorunlu kıldığı/ISO_PDFEVersion (PDF/E-1)girdisini içeren yeniden yazılmış bir Document Information Dictionary, §13.1 üzerinden ISO 19005-1 §6.7'den devralınan Info-XMP köprü blokları (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool) ve §6.2'nin gerektirdiği trailer/IDdizisi - Bellek içi PDF/E çıktısı için TPdf.SaveAsPdfEToStream ve yaygın durum için varsayılan seçenekli kısayol
TPdf.SaveAsPdfE(FileName)eklendi - TPdf.ValidatePdfE eklendi: açık bir PDF'yi PDF/E-1 uyumluluk marker'ları açısından denetler (XMP pdfe:ISO_PDFEVersion varlığı ve Info sözlüğü değeriyle eşitliği, pdfe extension schema açıklaması, Info sözlüğü /ISO_PDFEVersion girdisi, trailer /ID, xmp:CreateDate / xmp:ModifyDate varlığı) ve saptanan uyumluluk düzeyi ile bulunan sorun kümesini taşıyan yapılandırılmış bir sonuç döndürür
- TPdf.PdfEConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (pec1, pecNone veya pecUnknown), ValidatePdfE'yi açıkça çağırmaya gerek kalmadan döndürür
- Yeni FPdfPdfe unit'inde dışa aktarılan yeni türler: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Info sözlüğü yeniden yazımı, PDFium Delphi Component'in PDF/x son işleme hattında bir ilk — mevcut Info nesnesini aynı nesne numarasıyla yeniden yazar (böylece xref alt bölümü / trailer /Info referansı geçerli kalır) ve kaynak trailer'da /Info girdisi yoksa taze bir Info sözlüğü sentezler. PDFium kendi her SaveAs çıktısında bir Info sözlüğü üretir; yaygın durum bu nedenle yeniden yazım yoludur
- İçerik düzeyi gereksinimler (yazı tipi gömme, ToUnicode CMap'leri, yasaklanan XObject / ExtGState anahtarları / XFA formları vb.) belge yazarının sorumluluğunda kalır — SaveAsPdfE dosya biçimi marker'larını ekler ama sayfa içeriğini değiştirmez veya yasaklı özellikleri kaldırmaz
- TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.31.0
- PDF/UA-1 (ISO 14289-1:2014) marker injection desteği eklendi: TPdf.SaveAsPdfUa, temel PDF'ye incremental update uygulayarak mevcut belgeyi PDF/UA-1 uyumlu bir dosyaya yükseltir. Ekleme, post-processing ile uygulanabilen dosya biçimi düzeyindeki gereksinimleri kapsar —
pdfuaid:part = 1taşıyan ve eşleşen pdfaExtension:schemas açıklamasıyla gelen XMP metadata akışı, zorunludc:title, katalog/MarkInfo << /Marked true /Suspects false >>ve/ViewerPreferences << /DisplayDocTitle true >>girdileri (yalnızca kaynakta hiçbiri yoksa), çağıran kod bir BCP 47 tag'i sağladığında katalog/Langdeğeri ve trailer/IDdizisi - Bellek içi PDF/UA çıktısı için TPdf.SaveAsPdfUaToStream ve yaygın durum için varsayılan seçenekli kısayol
TPdf.SaveAsPdfUa(FileName)eklendi - TPdf.ValidatePdfUa eklendi: açık bir PDF'yi PDF/UA-1 uyumluluk marker'ları açısından denetler (StructTreeRoot varlığı, /Lang, /Suspects = false ile /MarkInfo /Marked true, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part tanımlayıcısı, dc:title varlığı, trailer /ID, şifreleme durumu) ve saptanan uyumluluk düzeyi ile bulunan sorun kümesini taşıyan yapılandırılmış bir sonuç döndürür
- TPdf.PdfUaConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (puc1, pucNone veya pucUnknown), ValidatePdfUa'yı açıkça çağırmaya gerek kalmadan döndürür
- Yeni FPdfPdfua unit'inde dışa aktarılan yeni türler: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- TPdfUaSaveOptions'ta boş bırakılan Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language alanları, FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage'den otomatik doldurulur; böylece mevcut çağıranlar tek satırla kaydedebilir
- İçerik düzeyi gereksinimler (StructTreeRoot etiketleme eksiksizliği, Figure Alt metni, ToUnicode CMap'leri, yazı tipi gömme vb.) belge yazarının sorumluluğunda kalır — SaveAsPdfUa dosya biçimi marker'larını ekler ama sayfa içeriğini değiştirmez veya etiket uydurmaz. ValidatePdfUa, StructTreeRoot yokluğunu
pvuaiMissingStructTreeRootolarak raporlar; böylece çağıranlar etiketsiz belgeleri ayrı bir etiketleme hattına yönlendirebilir - TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.30.0
- PDF/A-1b çıktısı artık Document Information Dictionary / XMP eşdeğerliği için ISO 19005-1 (Cor.1:2007 dahil) gereksinimlerini karşılıyor: PDFium'un taban PDF'ye yazdığı her Info sözlüğü girdisi XMP paketine de yansıtılıyor; Title (dc:title), Author (dc:creator), Subject (Cor.1'e göre dc:description), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) ve ModDate (xmp:ModifyDate) dahil. xmp:MetadataDate de üretiliyor
- PDF/A belgesinin trailer'ı artık her zaman bir /ID dizisi içeriyor (ISO 19005-1 6.1.3 zorunlu gereksinimi). TPdf.SaveAsPdfA, kaynağında dosya tanımlayıcı olan bir belgeyi işlerken mevcut 16 baytlık kalıcı ve değişen ID'leri yeniden kullanır; aksi halde kaynak baytlardan belirleyici bir 16 baytlık yedek ID türetilir
- Eklenen XMP artık ISO 19005-1 6.7.8'in (Cor.1 ile değiştirildi) gerektirdiği pdfaid extension schema açıklamasını gömüyor — pdfaid, XMP Specification 2004'e göre bir extension schema sayılır; bu yüzden uyumlu tüm dosyalar özellik adlarını, değer türlerini ve kategorilerini pdfaExtension:schemas kapsayıcısında bildirmek zorundadır
- TPdfASaveOptions beş yeni isteğe bağlı alan kazandı: Producer, CreationDate, ModDate (“D:YYYYMMDDHHmmSSOHH'mm'” biçiminde PDF tarih dizeleri), DocumentId ve InstanceId (trailer /ID dizisi için 16 baytlık bayt dizileri). TPdf.SaveAsPdfA / SaveAsPdfAToStream eksik alanları FPDF_GetMetaText ve FPDF_GetFileIdentifier'den otomatik doldurur; böylece mevcut çağıranlar değişiklik yapmadan çalışmaya devam eder
- TPdf.ValidatePdfA / TPdf.PdfAConformance artık üç ek sorun daha bildiriyor: pvaiMissingTrailerId (trailer'da /ID yok), pvaiMissingXmpDates (xmp:CreateDate veya xmp:ModifyDate eksik) ve pvaiMissingExtensionSchema (pdfaid extension schema açıklaması yok)
- Title, Author, Subject, Keywords, Creator ve Producer'daki ASCII dışı karakterler artık XMP paketinde UTF-8 olarak kodlanıyor (XMP Specification UTF-8 gerektirir); böylece çok dilli meta veri, SaveAsPdfA üzerinden gidiş-dönüşte korunuyor
- TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde güncellendi
Version 1.29.0
- Paketle gelen PDFium DLL'leri (Win32 ve Win64, hem standart hem V8 yapıları) 2026-05-22 PDFium anlık görüntüsüne yenilendi; PDFium projesinden FPDFText_SetText / FPDFText_SetCharcodes çökme yolu düzeltmeleri ve çeşitli iç sağlamlaştırmalar alındı
- PDFium'un yeni FPDF_SUBSET_NEW_FONTS kaydetme bayrağı FPdfPageOps.pas içinde açıldı; böylece FPDF_SaveAsCopy çağıranları, yeni eklenen metin nesneleri için gömülü yazı tipi dosyalarının otomatik subsetting'ini isteyebiliyor. Mevcut FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL ve FPDF_REMOVE_SECURITY sabitleri artık PDFium'un bit kaydırma biçimiyle tanımlanıyor (eski sayısal değer 3, ikili uyumluluk için FPDF_REMOVE_SECURITY_DEPRECATED olarak korunuyor)
- FPdfView.pas içine FPDF_FONT_BACKEND_TYPE enum'u (FREETYPE / FONTATIONS) ve FPDF_LIBRARY_CONFIG üzerindeki eşleşen m_FontLibraryType alanı eklendi; böylece PDFium'u Skia renderer ile başlatan uygulamalar artık yazı tipi arka ucunu başlangıçta seçebiliyor
- TFPDFPage_InsertObject imzası, PDFium C dışa aktarımıyla eşleşecek şekilde güncellendi: işlev artık void yerine FPDF_BOOL döndürüyor (başarıda TRUE, page_object NULL olduğunda veya sahiplik aktarımı başarısız olduğunda FALSE). Mevcut PDFium Delphi Component çağıranları, Delphi / FPC bir işlevin dönüş değerini yok saymaya izin verdiği için değişiklik yapmadan derlenmeye devam ediyor
- TPdf.AboutInfo dizisi, güncel ürün sürümünü bildirecek şekilde düzeltildi (v1.28.0 yalnızca belgelendirme sürümünden beri v1.27.0'da bayat kalmıştı)
Version 1.28.0
- Tüm API referansındaki sayfa içi belgeler büyük ölçüde genişletildi: artık her property, method, event ve global function girdisi 3 paragraflık bir Description, Remarks listesi, çok satırlı bir Delphi Example ve daha zengin bir See Also bloğu taşıyor — tüm TPdf sayaçları, üst veri okuyucuları, yazı tipi ve karakter erişimcileri, sayfa düzeyi özellikler, indeksli kayıtlar, belge düzeyi yöntemler ve tüm TPdfView durum/görüntüleme/olay yüzeyi dahil 200+ önceden yüzeysel sayfayı kapsıyor
- Yardım düzeni, losLab görsel temeline uyacak şekilde ince ayarlandı: h1/h2 boyutları eşleştirildi, API gezinme ızgara stilleri paylaşılan StyleSheet'te birleştirildi ve Navigation.html'deki sayfa başına satır içi CSS geçersiz kılmaları kaldırıldı
- Belgeler artık, giriş sayfası zenginleştirmesini tek bir veri tablosundan yeniden üreten ve yinelenebilir bakım sağlayan bir yardımcı betikle (Docs\Build-Expand-Entries.ps1) birlikte geliyor
Version 1.27.0
- PDF/A-1b oluşturma desteği eklendi: TPdf.SaveAsPdfA, taban PDF'yi XMP meta veri akışı, sRGB ICC OutputIntent ve güncellenmiş bir belge kataloğu enjekte eden incremental update ile son işleyerek açık olan her belgeyi PDF/A-1b uyumlu bir dosya olarak kaydediyor — hepsi ek DLL API'si gerektirmeden. PDFium Delphi Component'in desteklediği her platformda çalışıyor
- Bellek içi PDF/A çıktısı için TPdf.SaveAsPdfAToStream eklendi
- TPdf.ValidatePdfA eklendi: açık bir PDF'yi PDF/A uyumluluğu açısından denetler (XMP pdfaid marker'ları, gömülü ICC profilli OutputIntent, şifreleme) ve saptanan uyumluluk düzeyi ile bulunan somut sorun kümesini taşıyan yapılandırılmış bir sonuç döndürür
- TPdf.PdfAConformance özelliği eklendi: açık olan belgenin uyumluluk düzeyini (pac1b, pac1a, pac2b, pac3b, pacNone veya pacUnknown), ValidatePdfA'yı açıkça çağırmaya gerek kalmadan döndürür
- Dışa aktarılan yeni türler: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (yeni FPdfPdfa.pas unit'inde)
- SaveAsPdfA, TPdfASaveOptions.IccProfileData üzerinden özel bir ICC profili destekliyor; boş bırakıldığında yerleşik sRGB IEC61966-2.1 (HP/Microsoft, 3144 bayt) profili otomatik kullanılıyor
- Tek parça HTML referans, yeniden yapılandırılmış bir web yardım sistemiyle değiştirildi: TPdf ve TPdfView'i kapsayan 302 ayrı API giriş sayfası (her property, method, event ve global fonksiyon için bir tane); her biri tam açıklama, parametre tablosu, Delphi kod örneği ve See Also bağlantıları taşıyor
- Navigation.html eklendi: hızlı tarama için 5 sütunlu flex ızgarasıyla, altı bölüme düzenlenmiş (TPdf property/method/event, TPdfView property/method/event, global fonksiyonlar) kapsamlı tek sayfalık API gezinme dizini
- TPdf.html ve TPdfView.html, tür referansı bölümlerini (Types, Constants, Global Variables) koruyan ve tüm üyeler için ayrı giriş sayfalarına bağlanan kompakt bileşen genel bakış sayfaları olarak yeniden kuruldu
- Search.js ile çalışan, 312 indekslenmiş sayfanın tamamında artımlı istemci tarafı eşleştirme yapan tam metin arama eklendi
- Sitedeki tüm gezinme çubukları Navigation.html'i gösterecek şekilde güncellendi
Version 1.26.0
- Demo/Lazarus/BatchExport eklendi; v1.14.0 Delphi BatchExport demo'sunun LCL portu. Aynı özellik kümesi: dosya başına genel ilerleme, sayfa başına anlık ilerleme, DPI / kalite / parola girişleri ve IPdfCancellationToken ile desteklenen, işbirlikçi olarak iptal edilebilen bir toplu işle çok dosyalı PDF -> JPG dışa aktarımı. Çıkarma başarıyla bitince çıkış klasörü platformun dosya yöneticisinde açılıyor
Version 1.25.0
- TPdf'e Form XObject sayfa yeniden kullanımı eklendi; filigran, şablon bindirme ve “tek sayfayı çoğuna damgalama” iş akışlarını mümkün kılıyor: CreateXObjectFromPage, başka bir belgenin herhangi bir sayfasından yeniden kullanılabilir bir handle üretir; InsertFormObjectFromXObject, sarmalanan sayfanın TEK bir kopyasını geçerli sayfaya ekler. Eklenen FPDF_PAGEOBJECT döndürülür; böylece çağıran, onu FPDFPageObj_SetMatrix ve v1.9.0 TPdfMatrix yardımcılarıyla konumlandırabilir / ölçekleyebilir / döndürebilir
- Yeni TPdfXObject Pascal sınıfı, PDFium'un FPDF_XOBJECT handle'ını sarmalar ve yıkıcısında otomatik kapatır; böylece manuel FPDF_CloseXObject töreni ortadan kalkar
- Delphi ve Lazarus regresyon paketleri her biri 147 teste, C++Builder paketi 123 teste genişletildi; kapsam: handle oluşturma ve sayfa nesnesi ekleme sözleşmeleri
Version 1.24.0
- TPdf.RenderPageProgressive eklendi — PDFium'un aşamalı render döngüsünü süren ve yinelemeler arasında v1.7.0 IPdfCancellationToken'ı yoklayan, RenderPage'nin iptal edilebilir bir varyantı; böylece uzun yüksek DPI'lı render'lar çağıranı tamamlanana kadar bloklamak yerine sayfa ortasında durdurulabilir
- Bir TPdfProgressiveStatus değeri döndürür: prsDone, prsCancelled veya prsFailed. Hiç duraklamadan tamamlanana kadar render yapmak için AToken = nil geçirin (prsCancelled olasılığı yoktur)
- v1.21.0'da tanıtılan aynı sıfır kopyalı hızlı yolu kullanır — PDFium, doğrudan hedef TBitmap'in DIB'sine render eder. DIB sarmalanamadığında aynı eski yedek yol geçerlidir
- Delphi ve Lazarus regresyon paketleri her biri 145 teste, C++Builder paketi 121 teste genişletildi; kapsam: nil token (tamamlanır), önceden iptal edilmiş token (prsCancelled) ve canlı token ile senkron RenderPage arasındaki piksel eşdeğerliği
Version 1.23.0
- PDFium'un form widget metin seçimini ve Undo/Redo'sunu uygulamalara açan altı yeni TPdfView metodu eklendi: GetSelectedFormText, odaklı form widget içindeki geçerli seçili metni döndürür; SelectAllFormText her karakteri seçer; FormUndo / FormRedo / FormCanUndo / FormCanRedo, odaklı widget'ın düzenleme geçmişini sürer. Alttaki PDFium API'leri zaten bağlıydı ama üst düzey bir giriş noktası yoktu. Altısı da, görünüm etkin değilken veya belgede odaklı AcroForm widget yokken güvenli biçimde no-op olur
- Delphi ve Lazarus regresyon paketleri her biri 142 teste, C++Builder paketi 119 teste genişletildi; kapsam: her yeni metot için form-yok-odak-yok sözleşmesi
Version 1.22.0
- TPdf'e sayfa birleştirme sarmalayıcıları eklendi: ImportPagesByIndex, kaynak belgeden belirli sayfaları kopyalamak için sıfır tabanlı bir indeks dizisi alır; ImportNPagesToOne, sayfaları bu belgenin N-up birleşimleri olan yepyeni bir TPdf döndürür; MovePages, sayfaları yerinde yeniden sıralar. Alttaki PDFium API'leri zaten bağlıydı ama Pascal dostu bir giriş noktası yoktu
- ImportPagesByIndex, tüm kaynak sayfaları içe aktarmak için boş bir dizi kabul eder (C ABI düzeyinde nil geçirmeye eşdeğer)
- Delphi ve Lazarus regresyon paketleri her biri 136 teste, C++Builder paketi 115 teste genişletildi; kapsam: alt küme içe aktarma, tüm belgeyi içe aktarma, sayfa yeniden sıralama ve N-up birleşimi
Version 1.21.0
- TPdf.RenderPage / TPdf.RenderTile (ve karşılık gelen TPdfView yardımcıları) sıfır kopyalı bir çıktı yoluna geçirilerek render performansı iyileştirildi. PDFium artık, ardından satır satır kopyalanan bir iç arabellek yerine doğrudan hedef TBitmap'in DIB arabelleğine yazıyor; render başına bir width x height x 4 baytlık bellek kopyası tasarruf ediliyor. İyileşme en çok yüksek DPI'da göze çarpar (thumbnail panelleri, baskı kalitesinde dışa aktarım, toplu dışa aktarım)
- Eski scanline başına yol, hedef DIB'nin sarmalanamadığı nadir durum (aşırı boyutlar, alışılmadık stride, OOM) için güvenlik yedeği olarak korunuyor. Davranış iki yol arasında bayt düzeyinde aynıdır; yedeği yavaş
- Delphi ve Lazarus regresyon paketleri her biri 132 teste, C++Builder paketi 112 teste genişletildi; kapsam: çağıran bitmap'ini pf32bit'e yükseltme, boyut gidiş-dönüşü ve büyük bitmap stride tutarlılık testi
Version 1.20.0
- TPdfView'e arama sonucu vurgulama eklendi: HighlightSearchText(Text, MatchCase, MatchWholeWord), geçerli görünüm sayfasını tarar, bulunan eşleşme sayısını döndürür ve her yeniden çizimde her eşleşmenin üzerine bir HighlightColor maskesi boyar. ClearHighlight vurguları kaldırır; eşleşmeler sayfaya özgü olduğundan görünüm başka bir sayfaya geçince otomatik temizlenir
- HighlightColor varsayılan olarak clYellow'dur ve published alan olarak sunulur; böylece uygulamalar vurgu rengini kendi UI paletine uyarlayabilir
- Delphi ve Lazarus regresyon paketleri her biri 129 teste, C++Builder paketi 109 teste genişletildi; kapsam: varsayılan renk, renk gidiş-dönüşü, sample.pdf dizisine karşı “gerçek fixture sözcük eşleşmeleri” ve “eksik sözcük sıfır eşleşme döndürür” sözleşmesi
Version 1.19.0
- TPdfView'e dört değerli FitMode özelliği eklendi: pfmNone (manuel yakınlaştırma), pfmActualSize (%100), pfmFitPage (tüm sayfa görüntüleyici alanına sığar) ve pfmFitWidth (sayfa genişliği görüntüleyici genişliğine uyar). Etkin sığdırma modu, Resize'da ve geçerli sayfa değiştiğinde otomatik yeniden uygulanır; böylece karışık sayfa boyutlu uzun belgeler kusursuz çerçevelenmiş kalır
- Zoom'u doğrudan ayarlamak etkin sığdırma modunu iptal eder (FitMode pfmNone'a döner); bu, yakınlaştırma değeri yazınca Fit Page / Fit Width'ten çıkılan standart PDF görüntüleyici alışkanlığıyla uyumludur
- Varsayılan pfmNone'dur; böylece mevcut uygulamalar açık yakınlaştırma davranışlarını korur
- Delphi ve Lazarus regresyon paketleri her biri 124 teste, C++Builder paketi 106 teste genişletildi; kapsam: varsayılan değer, mod gidiş-dönüşü, yüklenmiş belgede fit-page'in gerçek yakınlaştırma üretmesi ve manuel yakınlaştırmanın sığdırma modunu iptal etmesi
Version 1.18.0
- TPdfView'e PageColor özelliği eklendi; render edilen PDF sayfası arka planı, çevresindeki bileşenin Color'ından ayrıştırıldı. Varsayılan clWhite'dur; böylece PDF sayfaları artık ana uygulamanın temasından bağımsız olarak kağıt beyazı render edilir. Karanlık mod görüntüleyicileri artık kaydırma alanını karanlık tutarken gerçek PDF sayfasını beyaz (veya uygulamanın seçtiği herhangi bir renk) bırakabilir
- Davranış değişikliği: PDF sayfasını yeniden renklendirmek için TPdfView.Color ayarlayan uygulamalar bunun yerine PageColor ayarlamalı. Yaygın durum için (temalı bileşen arka planlarında beyaz sayfalar) varsayılan deneyim, kod değişikliği olmadan iyileşir
- Delphi ve Lazarus regresyon paketleri her biri 120 teste, C++Builder paketi 103 teste genişletildi; kapsam: varsayılan değer ve renk gidiş-dönüşü
Version 1.17.0
- TPdfView'e kullanıcı girişi kilitleme anahtarları eklendi; böylece görüntüleyiciyi kiosk, önizleme bölmesi veya salt okunur bağlamlara gömen uygulamalar subclass yazmadan gezinme jestlerini kapatabilir: AllowUserPageChange, yeni PgUp / PgDn / Ctrl+Home / Ctrl+End klavye kısayollarını denetler; ChangePageOnMouseScrolling, yeni tekerlek-yukarı / tekerlek-aşağı sayfa atlamalarını denetler; AllowUserTextSelection, gelecekteki fare sürükleme metin seçimi yolu için rezervedir. Üçü de varsayılan True'dur; mevcut uygulamalar davranış değişikliği olmadan yükseltilebilir
- Fare tekerleğiyle sayfa gezinmesi Ctrl+tekerleği atlar; böylece uygulamalar Ctrl+tekerleği yakınlaştırma için rezerve tutabilir
- Delphi ve Lazarus regresyon paketleri her biri 118 teste, C++Builder paketi 101 teste genişletildi; kapsam: varsayılan değerler ve anahtar gidiş-dönüşü
Version 1.16.2
- Görüntüleyici sayfasının ilişkili TPdf sayfasından farklı olduğu ek açıklama bağlantısı tıklamaları için TPdfView regresyon kapsamı genişletildi; Delphi, Lazarus ve C++Builder genelinde gerçek bir headless fare tıklama yolu kullanılıyor
- Delphi ve Lazarus paketleri artık her biri 114 test, C++Builder ise 99 test çalıştırıyor
Version 1.16.1
- TPdfView bağlantı tıklama yönetimi düzeltildi; otomatik ek açıklama ve web bağlantısı eylemleri, ilişkili TPdf bileşeni başka bir sayfada beklerken bile görüntüleyicinin o an gösterdiği sayfayı kullanıyor
- TPdfThumbnailView, bağlantılı TPdf bileşeni yok edildiğinde asılı kalan Pdf referanslarına karşı sağlamlaştırıldı
- Thumbnail referansı ömrü regresyon kapsamı eklendi; Delphi ve Lazarus paketleri artık her biri 113 test, C++Builder ise 98 test çalıştırıyor
- README, test belgelendirmesi, HTML Help arama / indeks içeriği ve üretilen C++ paket çıktıları, v1.7.0'dan v1.16.0'a kadar olan entegrasyon güncellemeleriyle eşitlendi
Version 1.16.0
- Tek / çift sayfa filtreleme, gri tonlamalı render ve isteğe bağlı 1 piksel hücre kenarlıklarıyla N-up yazdırma (her yaprağa 1 / 2 / 4 / 9 sayfa) üzerine odaklanan yeni bir Delphi PrintDialog demo'su (Demo/Delphi/PrintDialog) eklendi. Önizlemeyi, son dosyaları, yakınlaştırmayı ve ölçeklemeyi zaten kapsayan mevcut PrintPDF demo'sunun bilinçli küçük bir eşi niteliğinde
Version 1.15.0
- Kaydırılabilir bir yan panelde satır başına bir sayfa thumbnail'i çizen, üzerine gelme ve seçim vurgulaması ile tıkla-git gezinmesi sunan yeni TPdfThumbnailView bileşeni (FPdfThumbnail unit'i) eklendi. Son kullanıcılar uzun belgeyi sayfa sayfa gezinebilsin diye bir TPdfView'in yanına oturacak şekilde tasarlandı
- Bileşen, losLab palet sekmesine TPdf ve TPdfView ile birlikte kaydediliyor; kilit özellikler: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor ve OnPageClick olayı
- Delphi ve Lazarus regresyon paketleri her biri 112 teste, C++Builder paketi 97 teste genişletildi; kapsam: varsayılanlar, thumbnail boyutu gidiş-dönüşü, uç değer sınırlama (clamping), renk gidiş-dönüşü ve olay işleyici ataması
Version 1.14.0
- Akış yükleme için TPdf.LoadCustomDocument, işbirlikçi iptal için IPdfCancellationToken ve dosya başına genel + sayfa başına ilerleme çubukları kullanarak çok sayıda PDF dosyasını tek geçişte JPG'ye çevirmeyi gösteren yeni bir Delphi BatchExport demo'su (Demo/Delphi/BatchExport) eklendi. Demo, dosya başına bir TPdf örneği kullanıyor (PDFium'un kendisi thread safe değildir) ve çıkarma başarıyla bitince çıkış klasörünü Explorer'da açıyor
Version 1.13.0
- TPdfView'e üç yeni özellikle asenkron render UI katmanı eklendi: AsyncRendering, LoadingText ve LoadingColor. AsyncRendering True olduğunda tek sayfalık boyama yolu, render edilen sayfanın üzerinde küçük bir “Loading...” göstergesi çizer; böylece uzun render'lar için kendi worker'ını kullanan uygulamalar tutarlı bir görsel ipucu paylaşır
- Varsayılanlar mevcut davranışı korur: AsyncRendering False'tur; böylece opt-in yapmayan uygulamalar görsel değişiklik görmez
- Belgeler, PDFium'un kendisinin thread safe olmadığını netleştiriyor — render'ı gerçekten bir worker'a devretmek, çağıranın worker başına bir TPdf tutmasını gerektirir; yaklaşan batch-export demo'su o deseni gösteriyor
- Delphi ve Lazarus regresyon paketleri her biri 106 teste, C++Builder paketi 93 teste genişletildi; kapsam: varsayılan değerler ve üç özellikli gidiş-dönüş
Version 1.12.0
- TPdfView'e tıklama güdümlü bağlantı yönetimi eklendi. Yeni LinkOptions özelliği, dört PDF bağlantı eylem türü için otomatik davranışı denetler: goto (sayfa atlaması), URI (ShellExecute), launch (ShellExecute) ve gömülü GotoR (rezerve). Varsayılanlar loAutoGoto ve loAutoOpenURI'yi etkin kılar; loAutoLaunch ve loAutoEmbeddedGoto kapalı kalır, böylece yanlış bir tıklama rasgele bir program çalıştıramaz
- Herhangi bir otomatik eylemden önce tetiklenen ve uygulamaların bağlantıyı incelemesine, Handled olarak işaretlemesine veya yönlendirmesine (örneğin bir güvenlik istemine) izin veren OnAnnotationLinkClick ve OnWebLinkClick olayları eklendi
- Bağlantı tıklama algısı yalnızca jest bir sürükleme değil tıklama olduğunda çalışır; taze bir MouseDown çapası kullanılır, böylece kaydırma jestleri mevcut kaydırma yolundan değişmeden akmaya devam eder
- Delphi ve Lazarus regresyon paketleri her biri 102 teste, C++Builder paketi 91 teste genişletildi; kapsam: varsayılan LinkOptions, küme gidiş-dönüşü ve olay işleyici ataması
Version 1.11.0
- TPdfView'e görsel cila eklendi: PageShadowSize, PageShadowColor ve PageBorderColor özellikleri, sayfa dikdörtgeninin altına isteğe bağlı bir düşen gölge ve çevresine bir piksellik kenarlık boyar. Varsayılanlar önceki düz görünümü korur (PageShadowSize = 0; kenarlık varsayılan clBlack ile çizilir ama çağıranlar renkleri değiştirene dek varsayılan beyaz arka plana karışır)
- Gelecekteki artımlı kaydırma animasyonu için opt-in bir bayrak olarak SmoothScroll özelliği eklendi; özellik bugün gidiş-dönüş çalışır ve uygulamaların tercihi kalıcı kılabilmesi için bağlandı, render tarafı ise mevcut anlık kaydırma davranışını kullanmaya devam ediyor
- Delphi ve Lazarus regresyon paketleri her biri 98 teste, C++Builder paketi 89 teste genişletildi; kapsam: varsayılan değerler, özellik gidiş-dönüşü ve negatif gölge boyutu sınırlama (clamp)
Version 1.10.0
- Mevcut TPicture tabanlı AddPicture'ın yanı sıra, dosya yolu veya TBitmap alan yeni TPdf.AddImage ve TPdfView.AddImage aşırı yüklemeleriyle doğrudan görsel ekleme eklendi. AddImage(FileName), VCL veya LCL graphics unit'lerine kayıtlı her biçimi tanır (BMP, PngImage unit'i üzerinden PNG, JPG vb.) ve AddPicture ile aynı hattan geçer; böylece davranış birebir aynıdır
- AddImage(TBitmap), TPicture aracısını atlar; bu, render veya toplu üretim işinden zaten elinde TBitmap tutan çağıranları sadeleştirir
- Delphi ve Lazarus regresyon paketleri her biri 92 teste, C++Builder paketi 84 teste genişletildi; kapsam: bitmap ekleme, sayfa nesnesi sınırları, nil bitmap reddi ve BMP dosya yükleme
Version 1.9.0
- FPdfMatrix unit'indeki yeni TPdfMatrix sınıfıyla üst düzey dönüşüm matrisi desteği eklendi. TPdfMatrix, PDFium'un FS_MATRIX'sini Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew ve Multiply için OO bir API ile sarmalar; FPDFPageObj_SetMatrix ve benzeri PDFium API'lerine verilmeden önce dönüşümleri birleştirmeye uygundur
- TPdfMatrix.Multiply, yeni satır değerlerini hesaplamadan önce altı matris öğesinin anlık görüntüsünü doğru biçimde alır; bu, alternatif Pascal uygulamalarının aynı çağrı içinde önceki öğelerin üzerine yazıp salt ötelemelerin ötesindeki her birleşim için hatalı sonuçlar üretmesine yol açan gizli bir sorunu düzeltir
- Delphi ve Lazarus regresyon paketleri her biri 88 teste, C++Builder paketi 81 teste genişletildi; kapsam: birim matris, sıfırlama, öteleme / ölçekleme / çevirme, çarpma-sonrası birleşim sırası ve Multiply regresyon vakası
Version 1.8.0
- Yeni TPdf.LoadCustomDocument(AStream, AOwnsStream) metodu ve TPdfStreamAdapter yardımcı sınıfıyla isteğe bağlı akış yükleme eklendi; altta PDFium'un FPDF_LoadCustomDocument'ı var. PDFium artık blokları verilen TStream'den yalnızca gerektiğinde okur; böylece çok büyük veya uzak PDF'ler artık önden bir bellek içi kopya gerektirmiyor
- İsteğe bağlı akış sahipliği eklendi: AOwnsStream = True geçirmek, TStream'in ömrünü TPdf'e devreder; UnloadDocument çalıştığında onu serbest bırakır
- Delphi ve Lazarus regresyon paketleri her biri 79 teste, C++Builder paketi 75 teste genişletildi; kapsam: TFileStream üzerinden akış yükleme, sahipli akış temizliği ve dışarıdan sahipli akışın unload'ı atlatabilmesi sözleşmesi
Version 1.7.0
- Yeni FPdfAsync unit'inde iş birlikçi asenkron iptal yapı taşları eklendi; IPdfCancellationToken / IPdfCancellationTokenSource ve yeniden kullanılabilir bir PdfNoCancellationToken singleton'ı açığa çıkarılır; böylece uzun süren render ve dışa aktarma iş akışları UI'dan temiz iptal anlam bilimini destekleyebilir
- Arka plan thread'inde bir worker çalıştırıp TPdfFutureResult<T> zarfını ana thread'e gönderen, başarı, iptal ve başarısızlık durumlarını ayırt eden hafif bir TPdfFuture<T> yardımcısı eklendi
- Delphi ve Lazarus regresyon paketleri her biri 76 teste, C++Builder paketi 73 teste genişletildi; ortak kapsam: iptal durumu, idempotent iptal, geri çağrı dağıtımı ve iptal-sonrası kayıt
Version 1.6.10
- PDF görüntüleyici tercihi yazdırma sayfa aralığına üst düzey TPdf.PrintPageRanges erişimi eklendi; uygulama kodu için 1 tabanlı sayfa aralıkları döndürür
- TPdf.SetFormFieldFlags / SetFormFieldFlagsAt ve eşleşen TPdfView yardımcıları eklendi; böylece uygulamalar AcroForm alan bayraklarını public API üzerinden güncelleyebilir, parola ve çoklu seçim bayrağı kapsamı dahil
- Windows boyutlu FPDF_DWORD, FPDF_FILEACCESS geri çağrıları ve V8 embedder slot alanları için PDFium bağlama ABI kapsamı sağlamlaştırıldı
Version 1.6.9
- Paketle gelen standart ve V8 PDFium DLL'lerinde yeni dışa aktarılan FPDF_RenderPageSkia ve FPDF_FFLDrawSkia API'leri için alt düzey Skia render bağlamaları eklendi
- Public bağlama kapsam denetimleri genişletildi; standart ve V8 DLL yükleme artık mevcut V8/XFA yetenek sondalarının yanında Skia render giriş noktalarını da doğruluyor
Version 1.6.8
- Yeni dışa aktarılan FPDFText_SetPositions API'si üzerinden mevcut metin nesnelerine karakter başına konumlar ayarlamak için TPdf.SetTextPositions ve TPdfSingleArray eklendi
- FPDFText_SetPositions, güncel paketlenmiş PDFium DLL'leri için zorunlu bir bağlamaya yükseltildi; Skia render giriş noktalarının, DLL'ler onları hâlâ dışa aktarmadığı için kullanılamaz kaldığı doğrulandı
- Delphi, C++Builder ve Lazarus regresyon paketleri, metin konumu kapsamıyla her biri 65 teste genişletildi
Version 1.6.7
- Belge JavaScript ad ağacı eylemlerine üst düzey TPdf erişimi eklendi; eylem adları ve betikler JavaScriptAction ve JavaScriptActions üzerinden döndürülür
- Kalıcı ve değişen trailer ID'lerini, PDFium sonlandırıcı baytı olmadan ikili TBytes olarak okuyan TPdf.FileIdentifier eklendi
- Geçerli sayfadaki MediaBox, CropBox, BleedBox, TrimBox ve ArtBox için TPdf.PageBox, GetPageBox ve SetPageBox eklendi
- Güncel paketlenmiş PDFium DLL'lerinin, o dışa aktarımlar bulunmadığı için çalışma zamanında yalnızca Skia render giriş noktalarını kullanılamaz bıraktığı doğrulandı
- Delphi, C++Builder ve Lazarus regresyon paketleri, belge JavaScript, trailer ID ve page-box kapsamıyla her biri 64 teste genişletildi
Version 1.6.6
- Paketle gelen V8 etkin PDFium DLL'i için çalışma zamanı desteği eklendi. Yüklemeden önce EnableV8Engine ayarlamak artık DLLs\Win32 veya DLLs\Win64 ağacından pdfium.v8.dll'yi seçer ve yüklenen DLL sağladığında V8/XFA'ya özgü bağlamaları açığa çıkarır
- V8FeaturesAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags ve FPDF_BStr_*, FPDF_GetRecommendedV8Flags, FPDF_GetArrayBufferAllocatorSharedInstance için alt düzey isteğe bağlı bağlamalar eklendi
- FPDFText_SetPositions isteğe bağlı yapıldı; böylece PDFium Delphi Component, o deneysel text-position setter'ını dışa aktarmayan PDFium DLL'leriyle yüklenmeye devam eder
- Delphi, C++Builder ve Lazarus regresyon paketleri, standart-DLL ve V8-DLL yetenek kapsamıyla her biri 61 teste genişletildi