Windows FDF/XFDF Exchange

مهام ملفات Windows وhpdf_document_execute_json_v1 تنفذان forms.export وforms.import لصيغتي fdf وxfdf بمرمّزات XHTML/CSS الأصلية لـ scalar وrich المحدودة السقف

مهام الملفات

{
  "schemaVersion": 1, "type": "forms.import", "format": "xfdf",
  "input": "source.pdf", "output": "filled.pdf", "password": "owner",
  "formDataInput": "values.xfdf",
  "fonts": {
    "regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
    "italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
  },
  "budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
    "timeMilliseconds": 60000, "resultBytes": 16777216}
}

forms.export تستخدم input وoutput وformat وكلمة سر اختيارية؛ وهي لا تتطلب formDataInput أو fonts; ومهام الملفات تحجز مرشحًا حصريًا بجانب الهدف وتفرغه وتغلقه وتتحقق من JSON نتيجة محدودة السقف ثم تستبدل الهدف ذريًا

الخطوط المفقودة والإدخال المشوه وفشل المصادقة أو السياسة والحدود المستنفدة والنشر الفاشل يحفظون الهدف الكامل القائم؛ والمخرج يجب ألا يعيد استخدام إدخال PDF أو بيانات النموذج، بما يشمل hard link

عائلات الخطوط المسمّاة

forms.import تقبل fontFamilies عند جذر العملية بوصفها مصفوفة من تسمية إلى ست عش؛ وغيابها يحفظ ملف العائلة الأحادية الأصلي وتسمية callback fontFamily

"fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
"fonts": {
  "DejaVu Sans": {
    "regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
    "italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
  },
  "DejaVu Serif Condensed": {
    "regular": "DejaVuSerifCondensed.ttf", "bold": "DejaVuSerifCondensed-Bold.ttf",
    "italic": "DejaVuSerifCondensed-Italic.ttf", "boldItalic": "DejaVuSerifCondensed-BoldItalic.ttf"
  }
}

لمهام الملفات، fonts تحتوي كائنات مفاتيحها التسميات المهيأة الدقيقة؛ وبلا fontFamilies تحفظ كائن مسارات الأنماط المباشر الأصلي؛ واقرأ برامج العائلة/النمط الفعلية فقط، مع كل بايتات الخطوط المنتقاة متشاركةً ميزانية العملية

لـ callbacks V1 على Windows، تتلقى callback الخطوط القائمة كل تسمية UTF-8 مهيأة مقننة ونمطًا منتقى؛ وعائلتان تستخدمان الأنماط الأربعة كلها تجعلان ثمانية طلبات برامج حقيقية دون تغيير سجل callback

حروف تسميات ASCII تقارن بلا حالة أحرف وبقية محارف Unicode تقارن بدقة؛ والتسميات مميزة وغير فارغة وبحد أقصى 128 وحدة UTF-16 code، بلا فراغات محيطة أو محارف تحكم أو ثنائيات surrogate غير مقترنة أو ترقيم اقتباس/فاصل في CSS

أول عائلة مهيأة هي الافتراضية للنص scalar وأنماط rich الموروثة؛ وافتراضيًا تستخدم قوائم font-family في CSS انتقاء أول عائلة معروفة لدى المرمّز الأصلي

‏fallbackFontFamilies=true الاختيارية تحفظ مرشحي font-family المضمّن في CSS المرتبين وتحمّل برامج وجوه/أنماط مهيأة فعلية لـ fallback للمحرف الكامل؛ انظر fallback الخطوط الغنية بالعائلات المقدَّمة على Windows للمرشحين المكتوبين النوع وتحميل callback ونطاق rich فقط

النتيجة المطبقة تبلّغ richXMLProfile بقيمة inline-xhtml-font-families-v1 ومصفوفة fontFamilies المهيأة وكائنات fontFamilyStyles فعلية تحتوي عائلة ونمطًا وبايتات؛ وfontStyles تحفظ نوع مصفوفة كائناتها الأصلية وتلخص عدّادات البايتات بالنمط؛ وfontBytes تعد كل البرامج الفعلية

بلا المصفوفة، richXMLProfile هي inline-xhtml-v1; وforms.fill المختلطة بـ scalar وrich مكتوب النوع الأصلي تستخدم ربط original-typed-runs-v1 المنفصل الموصوف أدناه؛ وامتداد callback الخطوط للمهام الأقدم يبقى عملًا لاحقًا منفصلًا

callbacks C ذات الإصدار على Windows

ضَمِّن hotpdf_abi_form_data.h; واملأ hpdf_form_data_operation_v1 واضبط operation.struct_size إلى حجمها الكامل ومرّر بادئة عمليتها دون تغيير إلى hpdf_document_execute_json_v1

callback الخطوط الاختيارية تتلقى بايتات عائلة UTF-8 ونمطًا بقيمة 0 regular أو 1 bold أو 2 italic أو 3 boldItalic وتعيد جدول قراءة hpdf_io_v1 كاملًا لبرنامج الخط الفعلي؛ وزوّد البرامج الأربعة كلها عندما تستخدم البيانات الغنية الأنماط الأربعة

بيانات scalar تطلب البرنامج regular؛ وfontFamily تقصّر افتراضيًا إلى DejaVu Sans; وcallbacks IO الخطوط المقدَّمة وبيانات المستخدم يجب أن تبقيا صالحتين حتى تعود العملية؛ وحالات callback غير الصفرية لاصقة وتنتقل دون إعادة محاولة fallback

في forms.import، InputIO تزوّد FDF/XFDF ويجب أن يكون الوجهة محمَّلًا مسبقًا؛ وOutputIO تتلقى PDF المرشّح وResultIO تتلقى JSON محدود السقف؛ وforms.export تستخدم سجل V1 الأصلي وتكتب FDF/XFDF إلى OutputIO

‏hpdf_document_load_from_io على Windows تنسخ الإدخال كاملًا إلى مصدر مملوك غير قابل للتغيير قبل العودة؛ ولا استبدال أو إلحاق المستدعي يمكنه تغيير المراجعة المحمَّلة النشطة أو مخرج بيانات النموذج اللاحق لديها

المصادر المملوكة تستخدم مقبضًا تزامنيًا منفصلًا للقراءات العشوائية الخلفية كي لا يُزيح الـ prefetch مؤشر النشر التسلسلي؛ والمستند المرشّح يحرر قراءه الخلفية قبل إهلاك مصدره

السياق النشط يتغيّر فقط بعد نجاح كلا callbackي المخرجات والنتيجة واجتياز فحص الإلغاء النهائي؛ وفشل callback أو الإلغاء يهلك المرشّح ويحفظ المستند السابق ومصدره المملوك

callback ربما استلمت بايتات مرشح قبل فشل callback لاحق؛ وعلى المستدعين إرسال وجهة مخرجاتهم الخاصة فقط بعد عودة دالة التنفيذ بقيمة HPDF_STATUS_OK

تخطيطات سجل V1 الأصلية والرموز المصدَّرة دون تغيير؛ وهذا الامتداد على Windows منفصل عن امتداد callback المنشور لدى Linux الأصلي

نقاط الدخول المرتبطة هي معالج مهام الملفات وhpdf_document_execute_json_v1; وسجل callback المهام الأقدم HPDFDocRunJob وExecuteLoadedOperation العامة لا يقتنعان امتداد خطوط في هذه المرحلة؛ ويمكن لاستدعي Pascal استخدام صنف المعاملة الصريح

الحقول والنص الغني والسياسة

القيم المدعومة تشمل أسماء نص Unicode متداخلة وأسماء تصدير checkbox وradio ومصفوفات multiselect وقيم قراءة فقط دون تغيير؛ و/V و/RV وموارد AP الحقيقية تُحفظ معًا؛ والحقول المجهولة وقيود الحقول الإلزامية تفشل المعاملة

التبادل الغني يستخدم ملف XHTML/CSS المحدود السقف الموثق وخطوط أنماط مقدَّمة حقيقية؛ وهو لا يدّعي HTML اعتباطيًا أو كل CSS أو دعم rich XML غير مقيد

تحديثات AES R5/R6 الموقَّعة تحفظ البادئة الأصلية كاملةً ومعاملات التشفير ومعرّف التشفير الدائم وتوقيع CMS القائم؛ والاستيرادات الغائبة التغيير بـ scalar أو rich مطابقة بالبايتات للمراجعة المُرسَلة الحالية

سلامة CMS القائمة وربط موقّع ESS تُصادق قبل تحديثات النماذج الموقَّعة؛ وتعبئة P2/P3 مسموحة فقط داخل قيودها الفعلية؛ وP1 وأقفال FieldMDP وحقول القراءة فقط المتغيّرة ترفض النشر

signaturePolicy تقبل requireCAdES وrequireTimestamp وrequireAdobeRevocationInfo وrequireTimestampRevocation منطقية؛ وtrustedCAFile وtimestampCAFile وtimestampCRLFile وrevocationCAFile يجب أن تكون سلاسل بلا NUL وتنتقي ثقة مستدعي صريحة للفحوص المطلوبة

خيارات callback بلغة C تحدد سقفًا أيضًا للأدلة الموقَّعة عبر maxEvidenceBytes وmaxEvidenceObjects; والتحقق من الثقة مميز عن فحص سلامة التوقيع الافتراضي

formData يمكنها خفض maxBytes وmaxFields وmaxObjects وmaxDepth وmaxValues وmaxValueCodeUnits وmaxTotalCodeUnits; وهذه الأعداد الصحيحة الموجبة الدقيقة تُقص إضافيًا بالسعة العاملة؛ وobjectCount وpageCount في الميزانية تحدّدان سقف مستندات المرشح

budget.timeMilliseconds تضبط موعد العملية النهائي؛ وcallbacks C على Windows تقبل أيضًا elapsedMilliseconds بوصفها حدًا إضافيًا أضيق؛ والإلغاء يُستقصى أثناء تهيئة الرسم البياني الحالي وفك النموذج وقراءة الخطوط وفحوص CMS وتحميل المرشّح والنشر

القدرات تبلّغ الصيغ والأنماط الفعلية والإدخال غير القابل للتغيير وسلوك callback transactional؛ وتبادل XFDF للتعليقات المُخطط منفذ منفصلًا، بينما ملفات FDF المضمّنة وأفعال أوسع ومستندات FDF تزايديّة تبقى غير منفذة

مواضع مرتبطة

التعبئة المختلطة scalar وrich مكتوبة النوع الأصلية تستخدم دورة حياة المرشّح المصادق عليها على Windows نفسها عبر مهام الملفات وexecute-json-v1

صنف المعاملة, تهيئة الرسم البياني الحالي, بيانات النماذج الأصلية

أوراق الأنماط الداخلية تطبق محددات محدودة السقف وأهمية ونوعية وترتيب مصدر على قيم rich المستوردة الفعلية والمظاهر المحفوظة؛ والاستيرادات المكافئة المتكررة والنشر الفاشل يحفظون ضمانات المعاملة القائمة

richTextResources يمدّ CSS مرتبطًا ومستوردًا لمهام ملفات Windows الفعلية وimports execute-json-v1، مستخدمًا المعاملة وارتباطات الخطوط القائمة