Конвертирайте Office Word & PowerPoint в PDF чрез безплатна библиотека Node.js
Отворен код Node.js PDF конвертор API за четене и конвертиране на 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 чрез GitHub
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 улеснява софтуерните разработчици да автоматично идентифицират и обработват само поддържани типове файлове, като елегантно пропускат неподдържаните формати без да генерират грешки. Този интелигентен механизъм за филтриране осигурява гладка работа дори при работа с папки, съдържащи смесени типове файлове.