Конвертировать 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 без проблем работает как со старыми, так и с современными форматами 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 упрощает разработчикам программного обеспечения автоматическое определение и обработку только поддерживаемых типов файлов, аккуратно пропуская неподдерживаемые форматы без возникновения ошибок. Этот интеллектуальный механизм фильтрации обеспечивает плавную работу даже при работе с папками, содержащими смешанные типы файлов.