يصدّر HotXLS مصنفًا أو ورقة عمل واحدة مباشرة إلى PDF/A من Delphi و C++Builder، دون Excel ودون مشغّل طابعة PDF. اضبط UsePDFA واختر ملف تعريف على TXLSPDFExport، فيحمل الملف المُصدَّر ملف تعريف ICC من نوع sRGB مضمّنًا كنية إخراج، وكتلة تعريف pdfaid في بيانات XMP الوصفية الخاصة به، وترويسة إصدار PDF مناسبة لمستوى التوافق
وعادة ما يأتي هذا المتطلب من سياسة الاحتفاظ بالسجلات لا من مطوّر. فالبيانات المالية، ونتائج المختبرات، والملفات التنظيمية، وأي شيء يجب على جهة عامة الاحتفاظ به لعقود، يجب تخزينه بصيغة تُعرض بشكل مطابق بعد خمسين عامًا، وهذا ما وُجد PDF/A، معيار ISO 19005، لضمانه. فجدول البيانات حساب حي؛ أما النسخة المؤرشفة من جدول بيانات فيجب أن تكون صورة ثابتة له
ما الذي يجعل ملف PDF ملفًا أرشيفيًا؟
ثلاثة متطلبات تؤدي معظم العمل. يجب أن يكون الملف مكتفيًا بذاته، بحيث يكون كل خط يستخدمه مضمّنًا ولا يُشار إلى أي مورد خارجي. ويجب أن يكون لونه لا لبس فيه، وهذا يعني نية إخراج تسمّي فضاء الألوان الذي أُعد الملف من أجله. ويجب أن يُعرِّف نفسه، عبر بيانات XMP وصفية تُعلن رقم الجزء ومستوى التوافق
ويوفّر HotXLS الثلاثة جميعًا. فملف تعريف sRGB مُضمَّن ككائن دفق بثلاثة مكونات و DeviceRGB كبديل له، ويُشار إليه من نية إخراج GTS_PDFA1 تسمّي شرطها ومعرّفها كلاهما sRGB IEC61966-2.1. وتحمل حزمة XMP إدخالات جزء pdfaid ومستوى التوافق. وتُجمَّع بايتات ملف التعريف داخل المكتبة بدلاً من تحميلها وقت التشغيل، بحيث لا توجد خطوة نشر ولا احتمال لأن يحوّل ملف مفقود تصديرًا أرشيفيًا إلى تصدير عادي
uses
lxHandleX, lxPDF;
var
Book: TXLSXWorkbook;
Exporter: TXLSPDFExport;
begin
Book := TXLSXWorkbook.Create;
Exporter := TXLSPDFExport.Create;
try
if Book.Open('quarterly-results.xlsx') <> 1 then
Exit;
Exporter.UsePDFA := True;
Exporter.PDFAProfile := xlsPdfA2b; // ISO 19005-2 المستوى B
Exporter.DocumentLanguage := 'en-GB';
Exporter.TagMode := xlsPdfTagsAutomatic;
if Exporter.SaveAsPDF(Book, 'quarterly-results-archive.pdf') <> 1 then
raise Exception.Create('archival export failed');
finally
Exporter.Free;
Book.Free;
end;
end;
أي ملف تعريف عليك اختياره؟
يغطي تعداد ملفات التعريف PDF/A-1 و PDF/A-2 و PDF/A-3، كل منها بصيغة تسهيلية وصيغة أساسية. والفروق العملية أضيق مما توحي به القائمة
يضمن المستوى B، الصيغة الأساسية، أن المظهر البصري قابل لإعادة الإنتاج. ويضيف المستوى A متطلبات بنيوية ودلالية، أبرزها شجرة بنية موسومة وترتيب قراءة محدَّد، بحيث يصبح المستند قابلاً للوصول عبر التقنيات المساعدة. ويُخفف الجزء 2 بعض قيود الجزء 1 ويسمح بدفقات الكائنات و JPEG 2000؛ ويسمح الجزء 3 بالإضافة إلى ذلك بملفات مضمّنة عشوائية، وهذا ما تستخدمه صيغ الفوترة الإلكترونية لحمل XML قابل للقراءة الآلية جنبًا إلى جنب مع الصفحة المقروءة بشريًا
بالنسبة لجدول بيانات مؤرشف، يُعد PDF/A-2b الخيار الافتراضي العملي: فهو مقبول على نطاق واسع لدى الأرشيفات، ولا يتطلب انضباط الوسم الذي يفرضه المستوى A على شبكة من الخلايا، ويسمح بالبُنى المدمجة التي تمنع تصدير مصنف من 200 صفحة من التضخم. اختر الجزء 3 عندما يجب أن يحمل الأرشيف بيانات المصدر أيضًا كمرفق، وهو ما يدعمه المُصدِّر عبر AddAttachment
قاعدة الخطوط التي تُوقع معظم الناس
يجب أن يأتي كل حرف يرسمه ملف PDF/A من خط مضمّن. وهذا هو السبب الأكثر شيوعًا لفشل تصدير سليم في ظاهره عند التحقق، ونمط الفشل خفي: فالملف يبدو صحيحًا على الجهاز الذي أنشأه، لأن ذلك الجهاز يملك الخط مثبّتًا
يُضمِّن HotXLS مجموعات فرعية من نوع TrueType للخطوط التي يستخدمها، لكن مسار الرجوع إلى Base 14 موجود للحالات التي يتعذر فيها حل خط، وخط Base 14 الاحتياطي غير مضمَّن بحكم تعريفه. للمخرجات الأرشيفية، اضبط ملف خط Unicode صريحًا بحيث لا يُسلَك مسار الرجوع إطلاقًا. آلية التجزئة الفرعية وسلسلة الرجوع موصوفة في التجزئة الفرعية لخطوط TrueType؛ والقاعدة العملية هي اختبار التصدير على جهاز لا تُثبَّت عليه خطوط مؤسستك
ما الذي يضمنه المُصدِّر، وما الذي لا يضمنه
الدقة هنا أهم من الثقة الظاهرية. ينتج التصدير جهاز تعريف PDF/A — نية الإخراج، وملف تعريف ICC المضمّن، وبيانات pdfaid الوصفية، وترويسة إصدار مناسبة — ويوجّه النص عبر مسار التضمين. لكنه لا يُشغّل مدقق توافق كامل على مخرجاته الخاصة، فلا يفرض كل حظر في المواصفة، مثل القواعد المتعلقة بالشفافية، وبأنواع حواشٍ توضيحية معينة، وبالمحتوى الاختياري
ونادرًا ما تظهر هذه البُنى في تصدير جدول بيانات، وهذا سبب ارتفاع معدل النجاح العملي. لكن الارتفاع ليس ضمانًا، وبالنسبة لخط أنابيب أرشفة حقيقي، فإن البنية الصحيحة هي التصدير ثم التحقق بأداة مستقلة، مع التعامل مع فشل التحقق كخطأ في خط الأنابيب لا كتحذير. تقسيم مماثل للمسؤولية عن مستندات PDF موصوف في التحقق المسبق من توافق PDF/A
التخطيط جزء من الدقة الأرشيفية
جدول بيانات مؤرشف متوافق تقنيًا لكنه غير قابل للقراءة بصريًا قد فشل في مهمته الفعلية. ويحمل إعداد الصفحة وزنًا في التصدير الأرشيفي أكبر مما يحمله في طباعة يومية، لأن لا أحد سيتمكن من إعادة تدفقه لاحقًا
ثلاثة إعدادات تستحق العناء. فالملاءمة إلى العرض تمنع الفشل الكلاسيكي حيث يصل جدول بعرض 14 عمودًا كسبع صفحات بعمودين لكل منها. وتُبقي صفوف الترويسة المتكررة كل صفحة مقروءة بمعزل عن غيرها. وتستبعد مناطق الطباعة الصريحة الملاحظات العملية التي تقع يمين البيانات الفعلية. المجموعة الكاملة من أدوات التحكم في الطباعة وإعداد الصفحة موضحة في الحماية وإعداد الصفحة والطباعة
// إعداد صفحة جاهز للأرشفة، يُطبَّق قبل التصدير
Sheet := Book.Sheets[0];
Sheet.PageLandscape := True;
Sheet.FitToWidth := 1;
Sheet.FitToHeight := 0; // بعدد الصفحات ارتفاعًا حسب الحاجة
Sheet.SetPrintArea('A1:N480');
Sheet.PrintTitleRows := '$1:$3';
// البيانات الوصفية تنتمي إلى الأرشيف أيضًا
Book.Title := 'Quarterly results 2026 Q2';
Book.Author := 'Finance';
قائمة تحقق قبل تشغيل الدفعة الأولى
تأكد من أن الملف يُعرِّف نفسه: دون فك ضغط أي شيء، افتح ملف PDF فقط في محرر نصوص وابحث عن إدخالات جزء pdfaid ومستوى التوافق ونية الإخراج GTS_PDFA1. تأكد من الخطوط: تحقق من أن كل خط في المستند يُبلَّغ عنه كمضمّن. تأكد من المظهر: قارن الصفحات المُصدَّرة بنسخة مطبوعة، لأن إعداد ملاءمة إلى الصفحة يُصغّر النص بصمت إلى أربع نقاط يكون متوافقًا وعديم الفائدة
ثم شغّل مدقق توافق مستقلاً على عيّنة تمثيلية واحتفظ بالتقرير. فالأرشيفات تطلب على نحو متزايد دليل التحقق، لا الملف فقط، وتوليده وقت التصدير أرخص بكثير من إعادة بنائه بعد سنوات. لمسار التصدير اليومي غير الأرشيفي وخيارات الرسم الخاصة به، راجع تصدير ورقة العمل إلى PDF
يأتي التصدير الأرشيفي وإعداد الصفحة ومحرك الرسم الذي يقف خلفهما في مكتبة واحدة لـ Delphi و C++Builder؛ وتجد قائمة الميزات الكاملة على صفحة مكوّن HotXLS لجداول البيانات في Delphi