İçeriğe geç

Sorun giderme: PDF/A ve PDF/UA doğrulama hataları

Bu 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.

  • 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: Encrypt anahtarı 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_mode ve encryption_operation döndürür. Hata yolu testi tests/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.
    1. Belgenin hangisine ihtiyaç duyduğuna karar verin: arşiv uygunluğu veya şifreleme.
    2. Bir arşiv belgesi için şifreleme çağrısını kaldırın.
    3. Şifreli bir belge için PDF/A etkinleştirme çağrısını kaldırın.
    4. İş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, /JPXDecode veya /JBIG2Decode filtresini ve ISO 19005-1:2005 §6.1.13 maddesini 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.
    1. 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.
    2. Alternatif olarak, bu filtrelere izin veren PDF/A-2 veya PDF/A-3 profilini hedefleyin.
    3. 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 uygulama nextpdf/pro içinde sağlanır.
  • Çözüm.
    1. Gömülü olmadığı bildirilen yazı tipini belirleyin.
    2. 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.
    3. İlgili Base 14 değiştirme etkileşimi hakkında bilgi için yazı tipleri ve etiketleme kaydını okuyun.
    4. 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() ve validateNoJavaScriptActions(), belge bloklarında §6.7.1 maddesini gösterir.
  • Çözüm.
    1. JavaScript eylemini belgeden veya form alanından kaldırın.
    2. Eylem, davranış için gerekliyse, belge PDF/A olamaz. Bu kullanım için PDF/A olmayan bir sürüm üretin.
    3. Derlemeyi yeniden çalıştırın ve yeniden doğrulayın.
  • İlgili. Uygunluk başvurusu.
  • 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.
    1. İçeriğin etiketleme yolu üzerinden üretildiğini doğrulayın; böylece yapı ağacı boş kalmak yerine doldurulur.
    2. İşaretlenmiş içerik dizilerinin yapı öğelerine eşlendiğini doğrulayın.
    3. 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 Lang değ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 etiketleri src/Accessibility/Bcp47Validator.php aracılığıyla doğrulanır; geçersiz bir etiket src/Accessibility/InvalidBcp47TagException.php oluşturur.
  • Çözüm.
    1. Belge düzeyindeki dili geçerli bir Best Current Practice (BCP) 47 etiketi olarak ayarlayın; örneğin, en-US veya zh-Hant-TW.
    2. Bir bölüm farklı bir dildeyse, dili o yapı öğesinde ayarlayın.
    3. Derlemeyi yeniden çalıştırın ve yeniden doğrulayın.
  • İlgili. Yazı tipleri ve etiketleme.
  • 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/pro iç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.

Sözlük: çıktı amacı · yapı ağacı