GetPDFUADiagnosticsA

PDF/UA & Accessibility

الوصف

الحرف المُلحق A يُشير إلى نقطة دخول ANSI (char) في DLL؛ بينما تكشف واجهة ActiveX/COM الشكل Unicode فقط. السلوك مطابق لـ GetPDFUADiagnostics وتُفسَّر وسائط السلاسل النصية باستخدام صفحة الرموز الحالية لـ SetAnsiMode

يعيد قائمة مفصولة بأسطر جديدة بمشكلات التوافق المحتملة مع PDF/UA-1 (ISO 14289-1) التي عُثر عليها في المستند الحالي. يحتوي كل سطر على رمز مشكلة يتبعه نقطتان ووصف مفهوم للبشر. يعيد سلسلة فارغة عند عدم اكتشاف أي مشكلات

Syntax

Delphi

Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;

DLL

const char * DLGetPDFUADiagnosticsA(int InstanceID);

Issue codes

PDF-VERSION-LOWإصدار PDF للمستند (كما سُجل في ترويسة الملف) أقل من 1.7. يُعرَّف PDF/UA-1 على أساس ISO 32000-1:2008‏ (PDF 1.7). استدعِ SetPDFUAMode لرفع الإصدار تلقائيًا إلى 1.7
MARKED-FALSEقيمة MarkInfo/Marked غير مضبوطة على true؛ المستند ليس PDF موسومًا
LANG-MISSINGمدخل /Lang في كتالوج المستند غائب أو فارغ. يتطلب ISO 14289-1 §7.3 إعلانًا عن لغة طبيعية
DISPLAYDOCTITLE-FALSEقيمة ViewerPreferences/DisplayDocTitle ليست true. مطلوبة وفق ISO 14289-1 §7.1 حتى يُعرض عنوان المستند في شريط العنوان
DOCINFO-TITLE-MISSINGمدخل /Title في قاموس معلومات المستند غائب أو فارغ. يتطلب PDF/UA-1 عنوان مستند حتى تتمكن تقنيات المساعدة من الإعلان عنه عند فتح المستند. وهذا الفحص مكمّل لـ DISPLAYDOCTITLE-FALSE: يتحقق ذلك الفحص من ظهور العنوان في العارض؛ ويتحقق هذا الفحص من وجود قيمة العنوان نفسها. استدعِ SetInformation بالمفتاح Title لضبطه
XMP-NO-PDFUAIDلا يتضمن تدفق البيانات الوصفية XMP مدخل pdfuaid:part. مطلوب وفق ISO 14289-1 §7.2
ANNOT-NO-CONTENTS:Nتعليقات توضيحية غير معفاة بعدد N (باستثناء الأنواع الفرعية Widget وPrinterMark وTrapNet) تنقصها مدخلة Contents. مطلوبة وفق ISO 14289-1 §7.18.1
EMBED-NO-AFR:Nملفات مضمّنة بعدد N تنقصها مدخلة AFRelationship في قاموس مواصفة الملف الخاص بها. مطلوبة وفق ISO 14289-1 §7.11
FIGURE-NO-ALT:Nعناصر بنية Figure أو Formula بعدد N بلا قيمة نص Alt. يتطلب ISO 14289-1 §7.5 وISO 32000-1 §14.9.3 أوصافًا بديلة للأشكال الرسومية والصيغ الرياضية معًا
HEADING-LEVEL-SKIP:Nعُثر على قفزات في مستوى العناوين بعدد N بترتيب المستند (مثل H1 يليه فورًا H3 متجاوزًا H2). يتطلب ISO 14289-1 §7.1 ومعيار WCAG 2.x Success Criterion 1.3.1 أن تتداخل العناوين دون فجوات
STRUCT-UNCLOSED:Nعناصر بنية بعدد N ما تزال مفتوحة لأن EndTag لم يُستدعَ بالعدد الصحيح من المرات. وستكون هذه العناصر ناقصة من جذر شجرة البنية
TABLE-TH-NO-SCOPE:Nعناصر بنية TH‏ (خلية رأس جدول) بعدد N بلا خاصية Scope. يعرّف ISO 32000-1 §14.8.4.3.4 Table 337 خاصية Scope‏ (Row أو Column أو Both) بأنها الخاصية التي تصف خلايا البيانات التي ينطبق عليها كل خلية رأس. وبدونها لا تستطيع تقنيات المساعدة ربط الرؤوس بخلايا البيانات بشكل موثوق في الجداول المعقدة أو متعددة الرؤوس. استدعِ SetStructElemScope (أو AddTagAttribute مع Owner='Table' وName='Scope') فورًا بعد وسم كل عنصر TH
FORM-NO-TOOLTIP:Nحقول نماذج تفاعلية (تعليقات Widget التوضيحية) بعدد N تنقصها مدخلة TU‏ (تلميح أداة / اسم يسهل الوصول إليه). يتطلب ISO 14289-1 §7.18.4 أن تحمل جميع حقول النماذج التفاعلية مدخلة TU حتى تتمكن تقنيات المساعدة من الإعلان عن غرض الحقل للمستخدم. وـ /TU هي الاسم الذي تقرؤه قارئات الشاشة بصوت مسموع؛ وهي تختلف عن /T‏ (اسم الحقل الجزئي المستخدم برمجيًا). اضبط قيمة TU عند إنشاء حقول النماذج أو تحميلها
LIST-STRUCT:Nعناصر بنية LI أو LBody بعدد N تظهر خارج أبيها المطلوب. يتطلب ISO 32000-1 §14.8.4.4 أن يكون LI ابنًا مباشرًا لـ L‏ (قائمة) وLBody ابنًا مباشرًا لـ LI‏ (عنصر قائمة). ويمنع التداخل الخاطئ للقوائم تقنيات المساعدة من التنقل في القوائم بشكل صحيح. افحص تسلسل استدعاءات BeginTag / EndTag لجميع العناصر المتعلقة بالقوائم
ROLEMAP-UNMAPPED:Nأنواع عناصر بنية مخصصة بعدد N تظهر في المستند بلا مدخل في قاموس /RoleMap. يتطلب ISO 14289-1 §7.1 وISO 32000-1 §14.7.3 أن يُطابَق كل نوع بنية غير قياسي بنوع PDF قياسي حتى تتمكن تقنيات المساعدة من تحديد كيفية التعامل مع العنصر. استدعِ AddRoleMap لكل نوع مخصص قبل الحفظ. ويسرد وصف المشكلة أسماء الأنواع غير المطابقة
SUSPECTS-TRUEقيمة MarkInfo/Suspects مضبوطة على true. يتطلب ISO 14289-1 §7.1 أن تكون قيمة Suspects‏ false في الملفات المدّاعية الامتثال لـ PDF/UA. وتعني القيمة true أن الوسم معروف بأنه يحتوي أخطاء. استدعِ SetMarkInfo بعد وسم المستند بالكامل لإعادة Suspects إلى false
ROLEMAP-STANDARD-REMAP:Nأنواع بنية قياسية بعدد N تظهر كمفتاح "custom" في /RoleMap وستُعاد مطابقتها عند الحفظ. يحظر ISO 14289-1 §7.1 إعادة مطابقة الوسوم القياسية المعرفة في ISO 32000-1 §14.8.4‏ (P وH1..H6 وFigure وTable وهكذا). ويسرد سطر التفاصيل أسماء الوسوم القياسية المخالفة. أزل استدعاءات AddRoleMap المتأثرة
DC-TITLE-MISSINGتكون قيمة dc:title في Dublin Core لتدفق بيانات XMP الوصفية مفقودة أو فارغة. يقتضي ISO 14289-1 §7.1 أن يحتوي تدفق Metadata على إدخال dc:title يعرّف المستند بوضوح. هذا الفحص مستقل عن DOCINFO-TITLE-MISSING الذي يفحص إدخال /Info /Title فقط. استدعِ SetPDFUAMode لنسخ عنوان /Info إلى حزمة XMP
TRAPNET-ANNOT:Nعُثر على تعليقات توضيحية TrapNet بعدد N على صفحات المستند. يحظر ISO 14289-1 §7.18.2 صراحةً وجود TrapNet في الملفات الممتثلة لـ PDF/UA-1. أزل التعليقات التوضيحية المخالفة قبل الحفظ
ANNOT-PAGE-NO-TABS-S:Nصفحات بعدد N تحمل تعليقًا توضيحيًا واحدًا أو أكثر لكن قاموس صفحتها لا يضبط /Tabs /S. يتطلب ISO 14289-1 §7.18.3 أن يتبع ترتيب التبويب في هذه الصفحات شجرة البنية، ويُشار لذلك بـ /Tabs /S. اضبط /Tabs /S في قاموس الصفحة لكل صفحة تحوي تعليقات توضيحية
ENCRYPT-NO-ACCESSالمستند مشفر ووضع PDFUAMode نشط، لكن البت 10 من مفتاح الأذونات /P للتشفير (القناع $200، استخراج إمكانية الوصول) غير مضبوط. يتطلب ISO 14289-1 §7.16 من كل ملف مشفر ممتثل السماح باستخراج إمكانية الوصول. عندما يُضبط PDFUAMode قبل استدعاء Encrypt يُفرض تفعيل البت تلقائيًا. وعندما يكون ترتيب الاستدعاءين معكوسًا يكون قاموس التشفير جاهزًا بقيمة /P القديمة — استدعِ Encrypt مجددًا ليُعاد إصدار القاموس
FIRST-HEADING-NOT-H1أول عنصر عنوان بترتيب المستند ليس H1‏ (حارس العنوان شديد البنية يُحسب أيضًا كمستوى 1). يتطلب ISO 14289-1 §7.4.2 أن يكون أول وسم عنوان في مستند غير شديد البنية هو H1. ويسمي سطر التفاصيل المستوى المخالف
WIDGET-NO-STRUCTPARENT:Nتعليقات Widget التوضيحية بعدد N تنقصها مدخلات /StructParent. يتطلب ISO 14289-1 §7.18.4 أن تتداخل تعليقات Widget التوضيحية داخل وسم بنية Form؛ وبدون /StructParent يتعذر الوصول إلى الـ Widget من شجرة البنية إطلاقًا. يُبلغ سطر التفاصيل عن العدد. هذا فحص جزئي — لم يُنفذ بعد التحقق الكامل من أن /S للأب الذي تم حله هو Form
LIST-NO-NUMBERING:Nعناصر بنية L‏ (قائمة) بعدد N تنقصها خاصية ListNumbering. يتطلب ISO 14289-1 §7.6 من كل وسم L أن يعلن نمط ترقيمه عبر هذه الخاصية (القيم الصالحة وفق ISO 32000-1 Table 347 هي None وDisc وCircle وSquare وDecimal وUpperRoman وLowerRoman وUpperAlpha وLowerAlpha). استدعِ SetStructElemListNumbering بعد فتح كل وسم L
MULTIPLE-H-CHILDREN:Nعقد في شجرة البنية بعدد N تحوي أكثر من ابن H‏ (عنوان عام) مباشر. يحظر ISO 14289-1 §7.4.4 ذلك — قسّم القسم الأب أو استبدل وسوم H بتسلسلات مرقمة H1..H6

قيمة الإرجاع

ستُنشأ قائمة ملفات جديدة أثناء الدمج تحتوي نتيجة عملية الدمج لكل عنصر من عناصر قائمة الملفات المحددة. وستحمل قائمة الملفات الجديدة الاسم نفسه الذي تحمله قائمة الملفات الأصلية مع إلحاق الكلمة Result. مثلًا إذا كانت قائمة الملفات الأصلية تسمى "MyFiles" فستُسمى قائمة الملفات الجديدة "MyFilesResult". ولن تحتوي قائمة الملفات الجديدة على أسماء ملفات، بل ستحتوي على وصف نصي لحالة الملف المطابق أثناء عملية الدمج

ملاحظات

صُممت هذه الدالة كمساعد تشخيصي للمطورين. تفحص الحالة الحالية للمستند في الذاكرة وتُبلغ عن مشكلات قد تسبب فشل التحقق من PDF/UA-1. استدعها بعد تحميل مستند أو بنائه لتحديد المشكلات قبل الحفظ

عندما يكون SetPDFUAMode نشطًا ويُحفظ المستند، تُصحح عدة مشكلات (ANNOT-NO-CONTENTS وEMBED-NO-AFR) تلقائيًا أثناء الحفظ. ويُبلغ GetPDFUADiagnostics عن الحالة قبل الحفظ؛ وتُسرد المشكلات التي ستُصحح تلقائيًا عند الحفظ ما دامت موجودة قبل الحفظ

لا تعدل هذه الدالة المستند

مثال

var
  Diag: WideString;
begin
  PDFlib.SetPDFUAMode('en-US');
  // ... build document
  Diag := PDFlib.GetPDFUADiagnostics;
  if Diag <> '' then
    ShowMessage('PDF/UA issues found:'#10 + Diag);
end;

انظر أيضا

SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship