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