Lewati ke konten

Basis pengetahuan untuk pemecahan masalah

Gunakan basis pengetahuan ini untuk memetakan kegagalan yang Anda temui ke penyebab dan penyelesaiannya. Setiap entri bersumber dari kelas eksepsi mesin itu sendiri, pengujian jalur kegagalan, dan guard di kode sumber, bukan spekulasi. Jika mesin tidak memiliki jalur kode untuk suatu kegagalan, basis pengetahuan ini tidak akan mengada-adakannya.

Basis pengetahuan ini mencakup empat halaman topik berikut:

  • Validasi tanda tangan — tanda tangan yang tidak valid, rantai yang tidak lengkap, pencabutan yang tidak diketahui, dan kegagalan stempel waktu.
  • Validasi PDF/A dan PDF/UA — masalah Portable Document Format/Archive (PDF/A) dan Portable Document Format/Universal Accessibility (PDF/UA), termasuk output intent yang hilang, konten tanpa penandaan, bahasa yang hilang, dan kegagalan fon tertanam.
  • Fon dan penandaan — fon yang tidak ditemukan, subsetting, cakupan CJK, dan masalah pohon struktur.
  • Enkripsi dan izin — kegagalan dekripsi dan batasan flag izin.

Setiap entri memiliki lima bagian:

  1. Gejala — apa yang Anda lihat: kelas eksepsi, potongan pesan, atau putusan validator hilir.
  2. Kemungkinan penyebab — kondisi masukan atau konfigurasi yang dilaporkan mesin.
  3. Bukti / diagnosis — cara memastikan penyebabnya. Bagian ini menyebut kelas eksepsi yang tepat, bidang getContext(), atau pengujian yang menunjukkan perilakunya, sehingga Anda dapat memverifikasinya alih-alih menebak.
  4. Penyelesaian — langkah-langkah berurutan untuk menghilangkan penyebabnya.
  5. Terkait — halaman referensi modul atau entri sejenis untuk dibaca berikutnya.

Mengidentifikasi kegagalan berdasarkan jenis eksepsi

Bagian berjudul “Mengidentifikasi kegagalan berdasarkan jenis eksepsi”

NextPDF mengidentifikasi kesalahan berdasarkan kelas PHP-nya, bukan berdasarkan kode kesalahan berupa string. Tidak ada konstanta NPDF-#### di dalam kelas eksepsi. Tangkap eksepsi daun ketika Anda memerlukan respons yang terarah, dan baca ContextAwareExceptionInterface::getContext() untuk mendapatkan bidang diagnostik terstruktur. Gunakan NextPDF\Exception\NextPdfException sebagai tipe dasar; kegagalan keamanan juga menggunakan NextPDF\Security\Exception\SecurityException.

Untuk hierarki lengkap dan aturan urutan penangkapan, lihat referensi eksepsi.

<?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.
}

Basis pengetahuan ini mencakup cara mesin mendeteksi dan melaporkan kegagalan. Basis ini tidak mencakup putusan kesesuaian dari validator eksternal, seperti veraPDF atau callas; alat-alat tersebut menerapkan kumpulan aturan masing-masing. Saat mesin menolak suatu operasi agar dokumen tetap berada dalam profil tertentu, seperti menolak enkripsi di bawah PDF/A, entri terkait mengutip klausul yang mengaturnya dan eksepsi yang menegakkannya.

Glosarium: eksepsi sadar konteks