Sorun giderme: PDF/A ve PDF/UA doğrulama hataları
Kapsam
“Kapsam” başlıklı bölümBu kayıtlar, motorun bir belgeyi Portable Document Format/Archive (PDF/A) veya Portable Document Format/Universal Accessibility (PDF/UA) profili içinde tutmaya çalışırken ürettiği hataları kapsar. Aşağıdaki madde numaraları motorun kaynak kodundan ve istisna iletilerinden gelir; bu sayfa bunları yeniden ifade eder. Motor, algıladığı profil hatalarını bildirir; belge uygunluğunu sertifikalandırmaz. Yetkili uygunluk kararı için kendi kural kümesine sahip harici bir doğrulayıcı kullanın.
Kayıt: PDF/A altında şifreleme reddedilir
“Kayıt: PDF/A altında şifreleme reddedilir” başlıklı bölüm- Belirti.
NextPDF\Security\Exception\IncompatiblePdfAModeException, PDF/A modunda şifreleme işleminin yasak olduğunu belirten bir iletiyle oluşur. - Olası neden. İşlem hattı bir PDF/A modunu etkinleştirip şifreleme istedi. Motor, International Organization for Standardization (ISO) 19005-{1,2,3,4} §6.1.3 maddesini gösterir:
Encryptanahtarı bir PDF/A dosyasının fragmanında bulunmamalıdır. Motor, çağrı sırasından bağımsız olarak bu birleşimi kesin olarak reddeder. - Kanıt / tanı.
getContext(),pdfa_modeveencryption_operationdöndürür. Hata yolu testitests/SecurityScenarios/PdfAEncryptionRefusalTest.php, PDF/A’yı şifreleme çağrısından önce veya sonra etkinleştirmenizden bağımsız olarak reddin tetiklendiğini doğrular. - Çözüm.
- Belgenin hangisine ihtiyaç duyduğuna karar verin: arşiv uygunluğu veya şifreleme.
- Bir arşiv belgesi için şifreleme çağrısını kaldırın.
- Şifreli bir belge için PDF/A etkinleştirme çağrısını kaldırın.
- İşlem hattını yeniden çalıştırın.
- İlgili. Şifreleme ve izinler.
Kayıt: PDF/A-1 altında görüntü filtresi yasaktır
“Kayıt: PDF/A-1 altında görüntü filtresi yasaktır” başlıklı bölüm- Belirti. Görüntü içe alınırken
Pdf14FeatureRejectedException; ileti,/JPXDecodeveya/JBIG2Decodefiltresini veISO 19005-1:2005 §6.1.13maddesini belirtir. - Olası neden. Bir PDF/A-1 derlemesi, PDF 1.4’ten sonra eklenmiş bir filtre kullanan bir görüntüyü içe aldı. PDF/A-1, PDF 1.4 özellik kümesini hedefler; bu nedenle
PdfA1FeatureGuard, Joint Photographic Experts Group (JPEG) 2000 (/JPXDecode) ve JBIG2 (/JBIG2Decode) filtrelerini reddeder. - Kanıt / tanı.
src/Writer/PdfA1FeatureGuard.php, yasak filtre listesini içerir ve iletide adı geçen maddeyi üretir. Koruyucu bu filtreleri yalnızca PDF/A-1 profili altında reddeder; PDF/A-2, PDF/A-3 ve PDF 2.0 profili bunlara izin verir. - Çözüm.
- Kaynak görüntüyü JPEG 2000 veya JBIG2 olmadan yeniden kodlayın. Örneğin, görüntüyü temel bir JPEG veya Flate ile sıkıştırılmış bir görüntü olarak yeniden kaydedin.
- Alternatif olarak, bu filtrelere izin veren PDF/A-2 veya PDF/A-3 profilini hedefleyin.
- Derlemeyi yeniden çalıştırın.
- İlgili. Uygunluk başvurusu.
Kayıt: PDF/A altında bir yazı tipi gömülü değil
“Kayıt: PDF/A altında bir yazı tipi gömülü değil” başlıklı bölüm- Belirti. Bir PDF/A derlemesi yazı tipi doğrulamasında başarısız olur veya harici bir doğrulayıcı gömülü olmayan bir yazı tipi bildirir.
- Olası neden. Bir glif, yazı tipi programı gömülü olmayan bir yazı tipiyle çizildi. PDF/A yöneticisi sözleşmesi, her yazı tipinin gömülü olması gerektiğini ve standart 14 yazı tiplerinin hiçbirine gömülmeden izin verilmediğini belirtir.
- Kanıt / tanı.
src/Contracts/PdfAManagerInterface.php,validateFont(string $fontName, bool $isEmbedded, array $cmapForward)yöntemini bildirir ve kuralı belgeler: her yazı tipi gömülü olmalıdır ve standart 14 yazı tiplerinin hiçbirine gömülmeden izin verilmez. Somut uygulamanextpdf/proiçinde sağlanır. - Çözüm.
- Gömülü olmadığı bildirilen yazı tipini belirleyin.
- Yerleşik bir standart 14 yazı tipi yüzüne güvenmek yerine, o yazı tipini gömülebilir bir program dosyasıyla yapılandırın.
- İlgili Base 14 değiştirme etkileşimi hakkında bilgi için yazı tipleri ve etiketleme kaydını okuyun.
- Derlemeyi yeniden çalıştırın ve yeniden doğrulayın.
- İlgili. Yazı tipleri ve etiketleme.
Kayıt: JavaScript mevcut ve PDF/A doğrulaması başarısız oluyor
“Kayıt: JavaScript mevcut ve PDF/A doğrulaması başarısız oluyor” başlıklı bölüm- Belirti. Bir PDF/A derlemesi JavaScript doğrulamasında başarısız olur veya harici bir doğrulayıcı bir JavaScript eylemi bildirir.
- Olası neden. Belge veya bir form alanı bir JavaScript eylemi içeriyor. PDF/A yöneticisi sözleşmesi, JavaScript eylemlerini yasaklayan ISO 19005-4:2020 §6.7.1 maddesini gösterir.
- Kanıt / tanı.
PdfAManagerInterface::validateNoJavaScript()vevalidateNoJavaScriptActions(), belge bloklarında §6.7.1 maddesini gösterir. - Çözüm.
- JavaScript eylemini belgeden veya form alanından kaldırın.
- Eylem, davranış için gerekliyse, belge PDF/A olamaz. Bu kullanım için PDF/A olmayan bir sürüm üretin.
- Derlemeyi yeniden çalıştırın ve yeniden doğrulayın.
- İlgili. Uygunluk başvurusu.
Kayıt: etiketli çıktı PDF/UA-2’yi bildirmiyor
“Kayıt: etiketli çıktı PDF/UA-2’yi bildirmiyor” başlıklı bölüm- Belirti. Etiketleme etkinleştirilerek derlenen bir belge PDF/UA-2 olarak tanınmaz veya PDF/UA-2 beyanı eksiktir.
- Olası neden. Yapı ağacı boş. Motor, etiketli yapısı olmayan bir belge için PDF/UA-2’yi bildirmez, çünkü boş bir yapı ağacı profili karşılamaz.
- Kanıt / tanı. Hata yolu testi
tests/Integration/Accessibility/EmptyTaggedPdfDoesNotAdvertisePdfUa2Test.php, boş bir etiketli belgenin PDF/UA-2’yi bildirmediğini doğrular. Bu, bir kusur değil, belgelenmiş motor davranışıdır. - Çözüm.
- İçeriğin etiketleme yolu üzerinden üretildiğini doğrulayın; böylece yapı ağacı boş kalmak yerine doldurulur.
- İşaretlenmiş içerik dizilerinin yapı öğelerine eşlendiğini doğrulayın.
- Derlemeyi yeniden çalıştırın ve PDF/UA-2 durumunu yeniden denetleyin.
- İlgili. Yazı tipleri ve etiketleme.
Kayıt: PDF/UA-2 eksik veya geçersiz dil nedeniyle başarısız oluyor
“Kayıt: PDF/UA-2 eksik veya geçersiz dil nedeniyle başarısız oluyor” başlıklı bölüm- Belirti. Bir dil girdisi eksik olduğu veya geçerli bir etiket olmadığı için bir PDF/UA-2 denetimi başarısız olur.
- Olası neden. Belge veya bir yapı öğesi geçerli bir dil bildiriminden yoksun. PDF/UA-2 bir doğal dil bildirimi gerektirir; eksik veya hatalı biçimlendirilmiş bir
Langdeğeri katı denetimde başarısız olur. - Kanıt / tanı. Hata yolu testi
tests/Unit/Conformance/PdfUa2Section844LangStrictTest.php, katı dil gereksinimini sınar. Dil etiketlerisrc/Accessibility/Bcp47Validator.phparacılığıyla doğrulanır; geçersiz bir etiketsrc/Accessibility/InvalidBcp47TagException.phpoluşturur. - Çözüm.
- Belge düzeyindeki dili geçerli bir Best Current Practice (BCP) 47 etiketi olarak ayarlayın; örneğin,
en-USveyazh-Hant-TW. - Bir bölüm farklı bir dildeyse, dili o yapı öğesinde ayarlayın.
- Derlemeyi yeniden çalıştırın ve yeniden doğrulayın.
- Belge düzeyindeki dili geçerli bir Best Current Practice (BCP) 47 etiketi olarak ayarlayın; örneğin,
- İlgili. Yazı tipleri ve etiketleme.
Uç durumlar ve dikkat edilmesi gerekenler
“Uç durumlar ve dikkat edilmesi gerekenler” başlıklı bölüm- Burada açıklanan PDF/A ve PDF/UA retleri motor içinde üretilir. Bu retler harici bir doğrulayıcının kararından bağımsızdır ve onun yerini almaz. Yetkili sonuç için veraPDF gibi bir doğrulayıcı çalıştırın.
- PDF/A için gerekli nesneleri yazan somut bileşen (Extensible Metadata Platform (XMP) meta veri akışı, International Color Consortium (ICC) profili içeren çıktı amacı) çalışma zamanında
nextpdf/proiçinden çözümlenir. Yalnızca core paketi kuruluyken bu nesneler üretilmez; yalnızca core ile yapılan bir derleme, tam bir PDF/A üreticisi değildir. - Şifreleme reddi kesin ve çağrı sırasından bağımsızdır; PDF/A’yı şifreleme çağrısından sonra etkinleştirmek yine de reddi tetikler.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölümSözlük: çıktı amacı · yapı ağacı