تحويل Office Word و PowerPoint إلى PDF عبر مكتبة Node.js مجانية

واجهة برمجة تطبيقات محول PDF مفتوح المصدر لـ Node.js لقراءة وتحويل ملفات Office Word و PowerPoint إلى PDF مع دعم تحويل دفعة من المستندات.

ما هو Files2PDF؟

في عالم إدارة المستندات، تحويل الملفات إلى PDF هو ضرورة يومية. سواء كنت تقوم بأرشفة عروض تقديمية قديمة أو إتمام العقود، فإن الحاجة إلى تنسيق ثابت غير قابل للتعديل هي حاجة عالمية. ومع ذلك، فإن القيام بذلك يدويًا لمئات الملفات يشكل كابوسًا. هنا يأتي Files2Pdf—حزمة Node.js خفيفة الوزن وقوية صممت لأتمتة هذه العملية بالذات. هناك عدة ميزات مهمة في المكتبة، مثل معالجة المستندات بالجملة/الدفعات، العمل مع صيغ مستندات متعددة، وضعا الاستخدام المزدوج، معالجة الأخطاء بذكاء، أتمتة الدلائل، وغيرها.

Files2Pdf هو حزمة Node.js خفيفة الوزن تُبسّط تحويل مستندات المكتب — وبشكل خاص ملفات Microsoft Word وPowerPoint — إلى صيغة PDF. على عكس حلول المؤسسات المعقدة التي تتطلب إعدادات ثقيلة، يركّز Files2Pdf على شيء واحد يتم إتقانه بشكل استثنائي: معالجة مجلدات كاملة من المستندات وإنتاج ملفات PDF نظيفة وجاهزة للمشاركة. المكتبة تتعرف تلقائيًا على الملفات المدعومة في الدليل الخاص بك وتتخطى غير المتوافقة، مما يمنع حدوث تعطل أو أخطاء أثناء وظائف الدفعة.

Previous Next

البدء مع Files2Pdf

أفضل طريقة لتثبيت وحدة Files2PDF هي عبر npm، يرجى استخدام الأمر التالي لتثبيت الـ API.

تثبيت مكتبة Files2PDF عبر npm

npm install files2pdf

تثبيت مكتبة Files2PDF عبر GibHub

git clone "https://github.com/An4s0/Files2Pdf.git" 

إمكانية المعالجة الدفعية

تتضمن مكتبة Files2PDF مفتوحة المصدر ميزات متعددة لتحويل عدة ملفات إلى مستندات PDF في آن واحد. إحدى الميزات البارزة هي قدرتها على معالجة مجلدات كاملة من المستندات في عملية واحدة. بدلاً من تحويل الملفات واحدة تلو الأخرى، يمكنك توجيه Files2PDF إلى دليل يحتوي على مستندات متعددة، وستقوم بتحويل كل ملف مدعوم إلى صيغة PDF بشكل منهجي.

كيف يمكن تحويل مستندات متعددة إلى ملفات PDF داخل تطبيقات Node.js؟

const { processFolder } = require('files2pdf');
const path = require('path');
const fs = require('fs').promises;

async function convertDocuments(inputPath, outputPath) {
  try {
    // Verify input folder exists
    await fs.access(inputPath);
    
    console.log(`Starting conversion process...`);
    console.log(`Input folder: ${inputPath}`);
    console.log(`Output folder: ${outputPath}`);
    
    // Process all files in the folder
    await processFolder(inputPath, outputPath);
    
    console.log('Conversion completed successfully!');
    return { success: true, message: 'All documents converted' };
  } catch (error) {
    console.error('Conversion failed:', error.message);
    return { success: false, error: error.message };
  }
}

// Usage example
const inputDir = path.resolve(__dirname, 'documents');
const outputDir = path.resolve(__dirname, 'pdfs');

convertDocuments(inputDir, outputDir)
  .then(result => {
    if (result.success) {
      console.log('Success:', result.message);
    } else {
      console.log('Failed:', result.error);
    }
  });

دعم صيغ متعددة

يتعامل Files2PDF مع صيغ Microsoft Office القديمة والحديثة بسلاسة. تدعم الحزمة ملفات PowerPoint بصيغ .ppt و .pptx، بالإضافة إلى مستندات Word بصيغ .doc و .docx. يضمن هذا الدعم الشامل للتنسيقات التوافق مع المستندات التي تم إنشاؤها عبر إصدارات مختلفة من Microsoft Office. يوضح مثال الشيفرة التالي كيف يمكن تطبيق نظام مراقبة الملفات لإنشاء نظام تحويل مستندات تلقائي يراقب دليلًا للملفات الجديدة ويحولها تلقائيًا.

كيف تنشئ نظام مراقبة ملفات لتحويل الملفات الجديدة التي تم تحميلها إلى دليل في Node.js؟

const { processFolder } = require('files2pdf');
const chokidar = require('chokidar');
const path = require('path');
const fs = require('fs').promises;

class DocumentConverter {
  constructor(watchDir, outputDir) {
    this.watchDir = path.resolve(watchDir);
    this.outputDir = path.resolve(outputDir);
    this.processing = new Set();
  }

  async initialize() {
    // Ensure output directory exists
    await fs.mkdir(this.outputDir, { recursive: true });
    
    // Set up file watcher
    const watcher = chokidar.watch(this.watchDir, {
      ignored: /(^|[\/\\])\../, // ignore dotfiles
      persistent: true,
      ignoreInitial: false
    });

    watcher.on('add', async (filePath) => {
      await this.handleNewFile(filePath);
    });

    console.log(`Watching ${this.watchDir} for new documents...`);
  }

  async handleNewFile(filePath) {
    const ext = path.extname(filePath).toLowerCase();
    const supportedFormats = ['.ppt', '.pptx', '.doc', '.docx'];

    if (!supportedFormats.includes(ext)) {
      return; // Skip unsupported files
    }

    if (this.processing.has(filePath)) {
      return; // Already processing this file
    }

    this.processing.add(filePath);
    console.log(`New file detected: ${path.basename(filePath)}`);

    try {
      await processFolder(path.dirname(filePath), this.outputDir);
      console.log(`Successfully converted: ${path.basename(filePath)}`);
    } catch (error) {
      console.error(`Error converting ${path.basename(filePath)}:`, error.message);
    } finally {
      this.processing.delete(filePath);
    }
  }
}

// Initialize the converter
const converter = new DocumentConverter('./watched-folder', './converted-pdfs');
converter.initialize();

حجم الصفحة والاتجاه القابل للتخصيص

النهج الواحد لا يناسب جميع ملفات PDF. قد تكون لقطة الشاشة أفضل في الوضع الأفقي، بينما يكون المستند النصي أفضل في الوضع العمودي. يتيح لك Files2PDF تحديد حجم الصفحة (مثل A4 أو Letter) والاتجاه (عمودي أو أفقي) لكامل ملف PDF الناتج، مما يضمن عرض المحتوى بشكل صحيح.

تصفية الملفات الذكية

تسهل مكتبة Files2PDF المفتوحة المصدر على مطوري البرمجيات التعرف تلقائيًا على أنواع الملفات المدعومة ومعالجتها، متجاوزةً الصيغ غير المدعومة دون إلقاء أخطاء. يضمن هذا الآلية الذكية للفلترة تشغيلًا سلسًا حتى عند التعامل مع مجلدات تحتوي على أنواع ملفات مختلطة.

 عربي