تبدیل Office Word و PowerPoint به PDF با استفاده از کتابخانه رایگان Node.js
API تبدیل PDF منبع باز Node.js برای خواندن و تبدیل فایلهای Office Word و PowerPoint به PDF با پشتیبانی از تبدیل دستهای اسناد.
Files2PDF چیست؟
در دنیای مدیریت اسناد، تبدیل فایلها به PDF یک ضرورت روزانه است. چه در حال بایگانی ارائههای قدیمی باشید و چه در حال نهاییسازی قراردادها، نیاز به یک فرمت ثابت و غیرقابل ویرایش جهانی است. اما انجام این کار به صورت دستی برای صدها فایل یک کابوس است. اینجاست که Files2Pdf وارد میشود — یک بستهٔ سبک و قدرتمند Node.js که برای خودکارسازی دقیق این فرآیند طراحی شده است. ویژگیهای مهمی در این کتابخانه وجود دارد، از جمله پردازش دستهای/بچ اسناد، کار با فرمتهای متعدد سند، دو حالت استفاده، مدیریت هوشمند خطا، خودکارسازی پوشهها، و غیره.
Files2Pdf یک بستهٔ سبک Node.js است که تبدیل اسناد اداری—بهویژه فایلهای Microsoft Word و PowerPoint—به فرمت PDF را ساده میکند. برخلاف راهحلهای پیچیدهٔ سازمانی که نیاز به پیکربندیهای سنگین دارند، Files2Pdf بر انجام یک کار بهطور استثنایی خوب تمرکز دارد: پردازش کل پوشههای اسناد و تولید PDFهای تمیز و آماده برای اشتراکگذاری. این کتابخانه بهصورت خودکار فایلهای پشتیبانیشده در دایرکتوری شما را شناسایی کرده و فایلهای ناسازگار را نادیده میگیرد، بهطوری که از بروز کرش یا خطا در کارهای دستهای جلوگیری میکند.
شروع کار با 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 بهصورت یکپارچه هر دو فرمت قدیمی و مدرن مایکروسافت آفیس را مدیریت میکند. این بسته از فایلهای پاورپوینت در فرمتهای .ppt و .pptx و همچنین اسناد ورد در فرمتهای .doc و .docx پشتیبانی میکند. این پشتیبانی جامع از فرمتها اطمینان میدهد که اسناد ایجاد شده در نسخههای مختلف مایکروسافت آفیس سازگار باشند. مثال کد زیر نشان میدهد چگونه میتوان از یک سیستم نظارت بر فایلها برای ایجاد یک سیستم تبدیل خودکار اسناد استفاده کرد که یک پوشه را برای فایلهای جدید نظارت کرده و بهصورت خودکار آنها را تبدیل میکند.
چگونه یک سیستم نظارت بر فایلها برای تبدیل فایلهای جدید بارگذاریشده به یک پوشه در 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 کار را برای توسعهدهندگان نرمافزار آسان میکند تا بهصورت خودکار فقط انواع فایلهای پشتیبانیشده را شناسایی و پردازش کنند و بهنحوی ملایم فرمتهای پشتیبانینشده را بدون ایجاد خطا عبور دهند. این مکانیزم فیلتر هوشمند اطمینان میدهد که حتی هنگام کار با پوشههایی که حاوی انواع مختلف فایل هستند، عملیات بهصورت روان ادامه یابد.