İçeriğe geç

Sorun giderme bilgi tabanı

Karşılaştığınız hatayı nedeni ve çözümüyle eşleştirmek için bu bilgi tabanını kullanın. Her giriş, varsayıma değil motorun kendi istisna sınıflarına, hata yolu testlerine ve kaynak korumalarına dayanır. Motorun belirli bir hata için kod yolu yoksa bu bilgi tabanı da bir yol uydurmaz.

Bilgi tabanı dört konu sayfası içerir:

  • İmza doğrulama — geçersiz imzalar, eksik zincirler, bilinmeyen iptal durumu ve zaman damgası hataları.
  • PDF/A ve PDF/UA doğrulama — eksik çıktı amacı, etiketlenmemiş içerik, eksik dil ve gömülü yazı tipi hataları dahil olmak üzere Portable Document Format/Archive (PDF/A) ve Portable Document Format/Universal Accessibility (PDF/UA) sorunları.
  • Yazı tipleri ve etiketleme — yazı tipinin bulunamaması, alt küme oluşturma, CJK kapsamı ve yapı ağacı sorunları.
  • Şifreleme ve izinler — şifre çözme hataları ve izin bayrağı sınırı.

Her girişin beş bölümü vardır:

  1. Belirti — gördüğünüz şey: bir istisna sınıfı, bir mesaj parçası veya bir alt akış doğrulayıcısının kararı.
  2. Olası neden — motorun bildirdiği girdi veya yapılandırma koşulu.
  3. Kanıt / tanılama — nedeni nasıl doğrulayacağınız. Bu bölüm, davranışı gösteren tam istisna sınıfını, getContext() alanını veya testi adlandırır; böylece tahmin etmek yerine doğrulayabilirsiniz.
  4. Çözüm — nedeni ortadan kaldırmak için izlenecek sıralı adımlar.
  5. İlgili — bir sonraki okuyacağınız modül başvuru sayfası veya kardeş giriş.

NextPDF hataları dize hata koduyla değil, PHP sınıfıyla tanımlar. İstisna sınıflarında hiçbir NPDF-#### sabiti yer almaz. Hedefli bir yanıta ihtiyaç duyduğunuzda yaprak istisnayı yakalayın ve yapılandırılmış tanılama alanlarını okumak için ContextAwareExceptionInterface::getContext() yöntemini kullanın. Temel tür olarak NextPDF\Exception\NextPdfException öğesini kullanın; güvenlik hataları ayrıca NextPDF\Security\Exception\SecurityException türünü de kullanır.

Tam hiyerarşi ve yakalama sırası kuralları için istisna başvurusuna bakın.

<?php
declare(strict_types=1);
use NextPDF\Exception\NextPdfException;
use NextPDF\Contracts\ContextAwareExceptionInterface;
try {
// ... engine call ...
} catch (NextPdfException $e) {
$context = $e instanceof ContextAwareExceptionInterface
? $e->getContext()
: [];
\error_log($e->getMessage());
// $context carries snake_case primitive fields safe to serialize.
}

Bu bilgi tabanı, motorun hataları nasıl algıladığını ve bildirdiğini kapsar. veraPDF veya callas gibi harici doğrulayıcılardan gelen uygunluk kararlarını kapsamaz; bu araçlar kendi kural kümelerini uygular. Motor, bir belgenin profil içinde kalmasını sağlamak için bir işlemi reddettiğinde, örneğin PDF/A kapsamında şifrelemeyi reddettiğinde, ilgili giriş geçerli hükmü ve bunu uygulayan istisnayı belirtir.

Sözlük: bağlam farkında istisna