Conversion

Conversion

تغطي هذه الصفحة تحويل ملف PDF إلى صيغ أخرى وتحويل مستند نحو توافق PDF/A. يوفّر Document طريقة To*() واحدة لكل صيغة إخراج للمستند بأكمله؛ وتوجد نفس الطرق على Page لتصيير صفحة واحدة.


التصيير إلى صيغ مستندات أخرى

Document.ToHtml()، Document.ToDocx()، وDocument.ToMarkdown() يصدرون كل صفحة؛ Page.ToSvg() وPage.ToImage() يصدرون صفحة واحدة إلى سلسلة SVG مستقلة أو بايتات PNG. كلٌ منها يقبل خياراته الخاصة — mode على DocxOptions (‘flow’ يعيد تدفق المحتوى، ’textbox’ يحافظ على هندسة كل صفحة) وimages على MarkdownExportOptions (‘inline’ يضم بيانات الصور كـ URI، ’external’ يكتب ملفات منفصلة إلى imageDir).

const doc = Document.OpenFile('in.pdf');
const svg = doc.Pages[0].ToSvg();               // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml();                      // standalone semantic HTML, all pages
const md = doc.ToMarkdown();                    // GFM Markdown, all pages
const docx = doc.ToDocx();                      // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' });  // .docx keeping each page's own geometry

ImageOptions (لـ Page.ToImage()) يقبل أيضًا format، quality، scale، width / height صريحة، وbackground (‘white’ أو ’transparent’).


التحويل نحو PDF/A

Document.ConvertToPdfA() يحاول تصحيح مستند نحو PDF/A level (‘b’ أو ‘u’) ويعيد التحقق منه، معيدًا ConversionReport يحتوي على applied (إجراءات التصحيح التي تم اتخاذها)، unresolved (المشكلات التي لم يتمكن من إصلاحها)، وpassed. شغّله على نسخة — على سبيل المثال نسخة تم إنشاؤها باستخدام Document.ExtractPages() — حتى لا يتم تعديل المستند الحي العامل أبدًا بواسطة التحويل.

// ExtractPages gives an independent copy; ConvertToPdfA never touches the original.
const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');

console.log(`applied ${conversion.applied.length} action(s), `
  + `${conversion.unresolved.length} unresolved, `
  + `result: ${conversion.passed ? 'passes' : 'still fails'} PDF/A-2b`);
copy.WriteTo('output-pdfa.pdf');

تنسيقات التصدير الأخرى

بالإضافة إلى HTML، Markdown، DOCX، SVG، و PNG، تقوم المكتبة أيضًا بتصدير TIFF (TiffExportOptions، encodeTiff()) واستيراد/تصدير قيم الحقول AcroForm في FDF و XFDF (exportFdfFile()، exportXfdfFile()، importFdfFile()، importXfdfFile()) — وهذا مفيد لتبادل بيانات النماذج المملوءة بشكل منفصل عن ملف PDF نفسه.


نصائح وأفضل الممارسات

  • قم بتشغيل Document.ConvertToPdfA() على نسخة (على سبيل المثال من Document.ExtractPages())، ولا تشغّله أبدًا على المستند الأصلي الذي لا يزال عليك حفظه دون تحويل.
  • تحقق من ConversionReport.unresolved حتى عندما يكون passed true لمستوى تحقق أقل صرامة — بعض إجراءات الإصلاح لا تُحل بالكامل إلا عند مستوى أكثر صرامة.
  • استخدم mode: 'textbox' على DocxOptions عندما يحتاج ناتج DOCX إلى الحفاظ على الهندسة البصرية الدقيقة لكل صفحة؛ واستخدم الوضع الافتراضي 'flow' عندما يجب أن يعاد تدفق النص كما هو في مستند معالجة كلمات عادي.
  • مرّر images: 'external' وimageDir على MarkdownExportOptions للمستندات الكبيرة، بدلاً من عناوين URI للبيانات المضمنة الافتراضية، للحفاظ على صغر حجم ملف Markdown نفسه.

المشكلات الشائعة

المشكلةالسببالإصلاح
لا يزال ConvertToPdfA() يُبلغ عن passed: falseليس كل المشكلات التي تُدرجها ConversionReport.unresolved يمكن إصلاحها تلقائيًا (مثل الخطوط المدمجة المفقودة أو /OutputIntent المفقود)عالج قواعد unresolved المحددة يدويًا، ثم أعد تشغيل ConvertToPdfA()
تم تعديل المستند الحي بشكل غير متوقع بعد محاولة تحويل PDF/Aتم استدعاء ConvertToPdfA() مباشرةً على المستند العامل بدلاً من نسخةاستدعِه على نسخة تم إنشاؤها باستخدام Document.ExtractPages()
تصدير Markdown ينتج ملفًا ضخمًا واحدًاالـ images: 'inline' الافتراضي يضمّن كل صورة كـ URI للبياناتمرّر { images: 'external', imageDir: '...' } لكتابة الصور كملفات منفصلة
إخراج DOCX يفقد تخطيط الصفحة الأصليالـ mode: 'flow' الافتراضي يعيد تدفق المحتوى مثل معالج الكلماتمرّر { mode: 'textbox' } للحفاظ على هندسة كل صفحة على حدة

FAQ

ما هي الصيغ التي يمكن تحويل ملف PDF إليها؟

HTML، Markdown، و DOCX للمستند بالكامل (Document.ToHtml() / ToMarkdown() / ToDocx())؛ SVG و PNG لكل صفحة (Page.ToSvg() / Page.ToImage())؛ بالإضافة إلى تصدير TIFF و FDF/XFDF كبيانات نموذج.

هل تحويل إلى PDF/A يغيّر المستند الأصلي الخاص بي؟

فقط إذا استدعيت ConvertToPdfA() عليه مباشرة. استدعِه على نسخة — على سبيل المثال doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — للحفاظ على المستند الأصلي دون تحويل.

كيف أعرف ما إذا كان تحويل PDF/A قد نجح فعليًا؟

تحقق من ConversionReport.passed. تُظهر applied ما تم إصلاحه في التحويل، وتُظهر unresolved ما لم يتمكن من إصلاحه — افحص unresolved حتى عندما يكون passed true.

هل يمكنني تصدير قيم حقول النموذج المملوءة فقط، دون ملف PDF نفسه؟

نعم — exportFdfFile() و exportXfdfFile() يكتبون القيم الحالية لحقل AcroForm إلى ملف FDF أو XFDF منفصل; importFdfFile() / importXfdfFile() يقرؤونها مرة أخرى إلى مستند.


API Reference ملخص

فئة/طريقةوصف
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()تحويل كل صفحة إلى تنسيق مستند آخر
Page.ToSvg() / Page.ToImage()تحويل صفحة واحدة إلى SVG أو PNG
DocxOptions / MarkdownExportOptions / ImageOptionsخيارات العرض حسب الصيغة
Document.ConvertToPdfA()إصلاح المستند نحو مستوى PDF/A وإعادة التحقق
ConversionReportنتيجة التحويل: applied, unresolved, passed
TiffExportOptions / encodeTiff()تصدير إلى TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()تصدير أو استيراد قيم حقول AcroForm كـ FDF/XFDF

انظر أيضاً

 العربية