1. Товары
  2.   PDF
  3.   Node.js
  4.   Files2PDF
 
  

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

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

 Русский