مكتبة Node.js لتحويل مستندات Office إلى PDF أو HTML
مكتبة Node.js مفتوحة المصدر رائدة تمكّن مطوري البرمجيات من قراءة وتحويل مستندات Office إلى PDF، HTML، JPEG، PNG وغيرها من الصيغ عبر واجهة برمجة تطبيقات مجانية.
ما هو Awesome-Unoconv؟
مكتبة Awesome-Unoconv هي غلاف قوي ومفتوح المصدر صُمم لتعزيز قدرات أداة unoconv الشهيرة، التي تسهل التحويل السلس لصيغ الملفات باستخدام مجموعة LibreOffice. صُممت لتبسيط التفاعل مع unoconv، وتوفر هذه المكتبة واجهة برمجة تطبيقات برمجية لأتمتة مهام تحويل المستندات بأقل جهد. تشمل المكتبة العديد من المميزات المهمة، مثل تحويل ملفات Office إلى PDF، تحويل DOCX إلى HTML، تحويل مستند مخصص إلى PDF أو HTML، تحويل المستند إلى buffer، تحويل المستندات عبر الويب، وغيرها الكثير. وهي تتضمن دعمًا مدمجًا للتحويلات غير المتزامنة، مما يتيح لك إجراء تحويلات متعددة في نفس الوقت دون حجب تطبيقك.
تقدم مكتبة Awesome-Unoconv واجهة برمجة تطبيقات بديهية وموثقة جيدًا لمعالجة تحويل المستندات داخل تطبيقات Node.js، مما يسمح لمطوري البرمجيات بدمج تحويل الصيغ القوي في مشاريعهم بسهولة. تدعم مجموعة واسعة من صيغ المستندات، بما في ذلك DOC، DOCX، ODT، XLSX، PPTX، PDF، HTML، PNG، JPEG، وغيرها. هذه المرونة تجعلها خيارًا مثاليًا للمشاريع التي تتطلب تحويل صيغ الملفات. توفر المكتبة مجموعة من خيارات التحويل، مما يسمح لك بتخصيص عملية التحويل لتناسب احتياجاتك الخاصة مثل تحديد صيغة الإخراج، الخط، والتخطيط. تشمل المكتبة آليات قوية للتعامل مع الأخطاء، مما يضمن بقاء تطبيقك مستقرًا ومستجيبًا حتى في حالة حدوث أخطاء في التحويل. بدعمها لتعدد الصيغ، تمكّن المطورين من بناء تطبيقات متعددة الوظائف، مثل محولات الملفات، أدوات التقارير الآلية، والمزيد. بشكل عام، هي خيار مثالي للمشاريع التي تتطلب تحويل ملفات سلس.
البدء مع Awesome-Unoconv
لتثبيت Awesome-Unoconv، يمكنك استخدام npm، مدير الحزم للـ JavaScript. يرجى استخدام الأوامر التالية لتثبيت ناجح.
تثبيت مكتبة Awesome-Unoconv عبر npm
$ npm install awesome-unoconv تحويل مستندات Office إلى PDF داخل Node.js
توفر مكتبة Awesome-Unoconv وظائف كاملة لتحويل المستندات برمجيًا مثل PDF، DOCX، ODT، XLSX، والصيغ الشائعة للصور مثل JPEG و PNG وغيرها. الميزة الأساسية للمكتبة هي بساطتها في تحويل مجموعة واسعة من صيغ المستندات. المثال التالي يوضح كيف يمكن للمطورين تحميل وتحويل مستند Word DOCX إلى صيغة PDF داخل تطبيقات Node.js.
كيفية تحويل مستند Word إلى PDF عبر مكتبة Node.js؟
const path = require('path');
const unoconv = require('awesome-unoconv');
const sourceFilePath = path.resolve('./myDoc.docx');
const outputFilePath = path.resolve('./myDoc.pdf'); // or 'myDoc.html'
unoconv
.convert(inputPath, { output: outputPath, format: 'pdf' }) // or format: 'html'
.then(result => {
console.log(result); // return outputFilePath
})
.catch(err => {
console.log(err);
});
تحويل المستندات القابلة للتخصيص في Node.js
تجعل مكتبة Awesome-Unoconv المفتوحة المصدر من السهل على المطورين تحميل وتحويل مختلف مستندات Office داخل تطبيقات Node.js. يمكن للمطورين تحديد خيارات تحويل متقدمة، مثل نطاقات الصفحات، جودة الصورة، ودقة الإخراج، لتخصيص النتيجة حسب المتطلبات. المثال التالي يوضح كيف يمكن للمطورين تصدير صفحات محددة من PDF إلى PNG بدقة مخصصة.
كيفية تحويل صفحات محددة من PDF إلى PNG داخل تطبيقات Node.js؟
unoconv.convert('document.pdf', 'png', { startPage: 1, endPage: 5, resolution: 300 }, (error, result) => {
if (error) {
console.error('Failed to convert:', error);
} else {
console.log('High-resolution PNGs generated.');
}
});
تحويل دفعة من المستندات في Node.js
مع مكتبة Awesome-Unoconv، يمكن للمطورين إجراء تحويلات دفعية للمستندات بسهولة. هذه الميزة مفيدة عند التعامل مع مجموعات كبيرة من المستندات التي تحتاج إلى تحويل إلى صيغ مختلفة. تدعم المكتبة تحويل ملفات متعددة في عملية واحدة، مما يوفر الوقت والجهد. ببضع أسطر من الشيفرة، يمكن للمطورين تحويل ملفات متعددة دفعة واحدة. إليكم مثالًا يوضح تحويل ملفات متعددة دفعة واحدة، مبسطًا مهام معالجة المستندات على نطاق واسع.
كيفية تحويل ملفات متعددة إلى PDF داخل تطبيقات Node.js؟
const files = ['doc1.docx', 'doc2.odt', 'doc3.txt'];
files.forEach((file) => {
unoconv.convert(file, 'pdf', (error, result) => {
if (error) {
console.error(`Error converting ${file}:`, error);
} else {
const outputName = file.replace(/\.[^/.]+$/, '.pdf');
require('fs').writeFileSync(outputName, result);
console.log(`${file} converted to PDF.`);
}
});
});