ข้ามไปยังเนื้อหา

การแก้ไขปัญหา: การตรวจสอบ PDF/A และ PDF/UA ไม่ผ่าน

รายการเหล่านี้ครอบคลุมความล้มเหลวที่เอนจินรายงานขณะรักษาเอกสารให้อยู่ภายในโปรไฟล์ Portable Document Format/Archive (PDF/A) หรือ Portable Document Format/Universal Accessibility (PDF/UA) หมายเลขข้อด้านล่างมาจากซอร์สโค้ดของเอนจินและข้อความข้อยกเว้น หน้านี้ถอดความและสรุปความหมายของข้อเหล่านั้น เอนจินรายงานความล้มเหลวของโปรไฟล์ที่ตรวจพบ แต่ไม่ได้รับรองความสอดคล้องของเอกสาร ให้ใช้ตัวตรวจสอบภายนอกที่มีชุดกฎของตนเองเพื่อให้ได้คำตัดสินความสอดคล้องที่ถือเป็นทางการ

  • อาการ NextPDF\Security\Exception\IncompatiblePdfAModeException พร้อมข้อความที่ระบุว่าห้ามดำเนินการเข้ารหัสลับในโหมด PDF/A
  • สาเหตุที่เป็นไปได้ ไปป์ไลน์เปิดใช้งานโหมด PDF/A และร้องขอการเข้ารหัสลับ เอนจินอ้างถึง International Organization for Standardization (ISO) 19005-{1,2,3,4} §6.1.3: คีย์ Encrypt ต้องไม่ปรากฏในเทรลเลอร์ของไฟล์ PDF/A เอนจินจึงปฏิเสธการใช้งานร่วมกันนี้โดยเด็ดขาด ไม่ว่าลำดับการเรียกจะเป็นอย่างไร
  • หลักฐาน / การวินิจฉัย getContext() คืนค่า pdfa_mode และ encryption_operation การทดสอบเส้นทางความล้มเหลว tests/SecurityScenarios/PdfAEncryptionRefusalTest.php ยืนยันว่าการปฏิเสธจะเกิดขึ้น ไม่ว่าจะเปิดใช้งาน PDF/A ก่อนหรือหลังการเรียกการเข้ารหัสลับ
  • วิธีแก้ไข
  1. ตัดสินใจว่าเอกสารต้องการอะไร: ความสอดคล้องสำหรับการจัดเก็บถาวรหรือการเข้ารหัสลับ
  2. สำหรับเอกสารจัดเก็บถาวร ให้นำการเรียกการเข้ารหัสลับออก
  3. สำหรับเอกสารที่เข้ารหัสลับ ให้นำการเรียกเปิดใช้งาน PDF/A ออก
  4. เรียกใช้ไปป์ไลน์อีกครั้ง

รายการ: ตัวกรองรูปภาพเป็นสิ่งต้องห้ามภายใต้ PDF/A-1

หัวข้อที่มีชื่อว่า “รายการ: ตัวกรองรูปภาพเป็นสิ่งต้องห้ามภายใต้ PDF/A-1”
  • อาการ Pdf14FeatureRejectedException เกิดขึ้นระหว่างการนำเข้ารูปภาพ พร้อมข้อความที่ระบุชื่อ /JPXDecode หรือ /JBIG2Decode และข้อ ISO 19005-1:2005 §6.1.13
  • สาเหตุที่เป็นไปได้ บิลด์ PDF/A-1 นำเข้ารูปภาพที่ใช้ตัวกรองซึ่งเริ่มมีหลังจาก PDF 1.4 PDF/A-1 มุ่งไปที่ชุดคุณลักษณะของ PDF 1.4 ดังนั้น PdfA1FeatureGuard จึงปฏิเสธ Joint Photographic Experts Group (JPEG) 2000 (/JPXDecode) และ JBIG2 (/JBIG2Decode)
  • หลักฐาน / การวินิจฉัย src/Writer/PdfA1FeatureGuard.php มีรายการตัวกรองต้องห้ามและแจ้งข้อที่อ้างถึง การ์ดจะปฏิเสธตัวกรองเหล่านี้เฉพาะภายใต้โปรไฟล์ PDF/A-1 เท่านั้น โปรไฟล์ PDF/A-2 PDF/A-3 และ PDF 2.0 อนุญาตให้ใช้ได้
  • วิธีแก้ไข
  1. เข้ารหัสรูปภาพต้นฉบับใหม่โดยไม่ใช้ JPEG 2000 หรือ JBIG2 ตัวอย่างเช่น บันทึกใหม่เป็น baseline JPEG หรือรูปภาพที่บีบอัดด้วย Flate
  2. หรือเลือกเป้าหมายเป็น PDF/A-2 หรือ PDF/A-3 ซึ่งอนุญาตให้ใช้ตัวกรองเหล่านั้น
  3. เรียกใช้บิลด์อีกครั้ง
  • อาการ บิลด์ PDF/A ล้มเหลวในขั้นตรวจสอบฟอนต์ หรือตัวตรวจสอบภายนอกรายงานว่ามีฟอนต์ที่ไม่ได้ฝัง
  • สาเหตุที่เป็นไปได้ มีการวาดกลิฟด้วยฟอนต์ที่ไม่ได้ฝังโปรแกรมฟอนต์ไว้ สัญญาของตัวจัดการ PDF/A ระบุว่าทุกฟอนต์ต้องฝัง และไม่อนุญาตให้ใช้ฟอนต์ standard-14 โดยไม่ฝัง
  • หลักฐาน / การวินิจฉัย src/Contracts/PdfAManagerInterface.php ประกาศ validateFont(string $fontName, bool $isEmbedded, array $cmapForward) และบันทึกกฎไว้ว่า: ทุกฟอนต์ต้องฝัง และไม่อนุญาตให้ใช้ฟอนต์ standard 14 โดยไม่ฝัง การบังคับใช้จริงมาพร้อมกับ nextpdf/pro
  • วิธีแก้ไข
  1. ระบุฟอนต์ที่ถูกรายงานว่าไม่ได้ฝัง
  2. กำหนดค่าฟอนต์นั้นด้วยไฟล์โปรแกรมที่ฝังได้ แทนการพึ่งพาฟอนต์ standard-14 ที่มีในตัว
  3. สำหรับการทำงานร่วมกันของการแทนที่ Base 14 ให้อ่านรายการ fonts-and-tagging
  4. เรียกใช้บิลด์อีกครั้งและตรวจสอบใหม่
  • อาการ บิลด์ PDF/A ล้มเหลวในขั้นตรวจสอบ JavaScript หรือตัวตรวจสอบภายนอกรายงานแอ็กชัน JavaScript
  • สาเหตุที่เป็นไปได้ เอกสารหรือฟิลด์ฟอร์มมีแอ็กชัน JavaScript สัญญาของตัวจัดการ PDF/A อ้างถึง ISO 19005-4:2020 §6.7.1 ซึ่งห้ามใช้แอ็กชัน JavaScript
  • หลักฐาน / การวินิจฉัย PdfAManagerInterface::validateNoJavaScript() และ validateNoJavaScriptActions() ต่างอ้างถึง §6.7.1 ในด็อกบล็อกของตน
  • วิธีแก้ไข
  1. นำแอ็กชัน JavaScript ออกจากเอกสารหรือฟิลด์ฟอร์ม
  2. หากจำเป็นต้องมีแอ็กชันนั้นเพื่อการทำงาน เอกสารจะไม่สามารถเป็น PDF/A ได้ สร้างเอกสารรูปแบบที่ไม่ใช่ PDF/A สำหรับการใช้งานนั้น
  3. เรียกใช้บิลด์อีกครั้งและตรวจสอบใหม่

รายการ: เอาต์พุตที่กำกับโครงสร้างไม่ประกาศ PDF/UA-2

หัวข้อที่มีชื่อว่า “รายการ: เอาต์พุตที่กำกับโครงสร้างไม่ประกาศ PDF/UA-2”
  • อาการ เอกสารที่สร้างโดยเปิดใช้งานการกำกับโครงสร้างไม่ได้รับการระบุเป็น PDF/UA-2 หรือไม่มีการประกาศ PDF/UA-2
  • สาเหตุที่เป็นไปได้ structure tree ว่างเปล่า เอนจินไม่ประกาศ PDF/UA-2 สำหรับเอกสารที่ไม่มีโครงสร้างที่กำกับไว้ เนื่องจาก structure tree ที่ว่างเปล่าไม่เป็นไปตามโปรไฟล์
  • หลักฐาน / การวินิจฉัย การทดสอบเส้นทางความล้มเหลว tests/Integration/Accessibility/EmptyTaggedPdfDoesNotAdvertisePdfUa2Test.php ยืนยันว่าเอกสารที่กำกับโครงสร้างแต่ว่างเปล่าจะไม่ประกาศ PDF/UA-2 นี่เป็นพฤติกรรมที่เอนจินบันทึกไว้ ไม่ใช่ข้อบกพร่อง
  • วิธีแก้ไข
  1. ยืนยันว่ามีการส่งออกเนื้อหาผ่านเส้นทางการกำกับโครงสร้าง เพื่อให้ structure tree มีข้อมูลและไม่ว่างเปล่า
  2. ตรวจสอบว่าลำดับ marked-content แมปไปยังองค์ประกอบโครงสร้าง
  3. เรียกใช้บิลด์อีกครั้งและตรวจสอบสถานะ PDF/UA-2 ใหม่

รายการ: PDF/UA-2 ล้มเหลวเนื่องจากภาษาที่ขาดหายไปหรือไม่ถูกต้อง

หัวข้อที่มีชื่อว่า “รายการ: PDF/UA-2 ล้มเหลวเนื่องจากภาษาที่ขาดหายไปหรือไม่ถูกต้อง”
  • อาการ การตรวจสอบ PDF/UA-2 ล้มเหลวเนื่องจากรายการภาษาขาดหายไปหรือไม่ใช่แท็กที่ถูกต้อง
  • สาเหตุที่เป็นไปได้ เอกสารหรือองค์ประกอบโครงสร้างขาดภาษาที่ถูกต้อง PDF/UA-2 กำหนดให้ประกาศภาษาธรรมชาติ ค่า Lang ที่ขาดหายไปหรือมีรูปแบบไม่ถูกต้องจะไม่ผ่านการตรวจสอบแบบเข้มงวด
  • หลักฐาน / การวินิจฉัย การทดสอบเส้นทางความล้มเหลว tests/Unit/Conformance/PdfUa2Section844LangStrictTest.php ทดสอบข้อกำหนดด้านภาษาแบบเข้มงวด แท็กภาษาจะได้รับการตรวจสอบผ่าน src/Accessibility/Bcp47Validator.php แท็กที่ไม่ถูกต้องจะทำให้เกิด src/Accessibility/InvalidBcp47TagException.php
  • วิธีแก้ไข
  1. กำหนดภาษาระดับเอกสารเป็นแท็ก Best Current Practice (BCP) 47 ที่ถูกต้อง ตัวอย่างเช่น en-US หรือ zh-Hant-TW
  2. ในกรณีที่ข้อความช่วงหนึ่งเป็นภาษาที่แตกต่างกัน ให้กำหนดภาษาบนองค์ประกอบโครงสร้างนั้น
  3. เรียกใช้บิลด์อีกครั้งและตรวจสอบใหม่
  • การปฏิเสธ PDF/A และ PDF/UA ที่อธิบายไว้ที่นี่เกิดขึ้นภายในเอนจิน การปฏิเสธเหล่านี้แยกจากคำตัดสินของตัวตรวจสอบภายนอกและไม่ได้แทนที่คำตัดสินนั้น ให้เรียกใช้ตัวตรวจสอบ เช่น veraPDF เพื่อให้ได้ผลลัพธ์ที่ถือเป็นทางการ
  • ตัวเขียนอ็อบเจกต์ที่จำเป็นของ PDF/A แบบเป็นรูปธรรม (สตรีมเมตาดาตา Extensible Metadata Platform (XMP) output intent พร้อมโปรไฟล์ International Color Consortium (ICC)) จะถูก resolve ในขณะรันไทม์จาก nextpdf/pro เมื่อติดตั้งเฉพาะแพ็กเกจ core อ็อบเจกต์เหล่านั้นจะไม่ถูกส่งออก บิลด์ที่ใช้ core เพียงอย่างเดียวไม่ใช่ตัวสร้าง PDF/A ที่สมบูรณ์
  • การปฏิเสธการเข้ารหัสลับเป็นแบบเด็ดขาดและไม่ขึ้นกับลำดับ แม้เปิดใช้งาน PDF/A หลังการเรียกการเข้ารหัสลับก็ยังทำให้เกิดการปฏิเสธ

อภิธานศัพท์: output intent · structure tree