Об’єднання кількох документів PDF у один файл є поширеною вимогою під час створення робочих процесів з документами або генерації звітів. GroupDocs.Merger Cloud SDK for Node.js спрощує злиття PDF у Node.JS без необхідності працювати з низькорівневими структурами PDF. У цьому посібнику ви дізнаєтеся про налаштування, покрокову реалізацію, повний приклад коду, еквівалентні виклики cURL та поради щодо продуктивності для великих або зашифрованих PDF.

Перед початком: вимоги та встановлення

Перш ніж розпочати, переконайтеся, що у вас є наступне:

  • Node.js 14 або новіша версія, встановлена на вашій машині розробки.
  • Активний обліковий запис GroupDocs Cloud з client ID та client secret.
  • Доступ до PDF‑файлів, які ви хочете об’єднати, збережених у сховищі GroupDocs Cloud.

Встановіть SDK за допомогою npm та завантажте останній пакет:

npm install groupdocs-merger-cloud

Ви також можете отримати SDK з офіційної сторінки релізу: Завантажити SDK. Після встановлення ви готові розпочати кодування.

Покрокове керівництво з об’єднання PDF у Node.JS

Крок 1: Встановіть SDK та імпортуйте необхідні класи

Спочатку імпортуйте класи, які вам знадобляться для об’єднання PDF‑файлів.

const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");

Цей імпорт дає вам доступ до ядра API, об’єктів конфігурації та дескрипторів файлів.

Крок 2: Налаштуйте ваші облікові дані GroupDocs

Створіть об’єкт конфігурації з вашими обліковими даними клієнта.

const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

Надання правильних облікових даних дозволяє бібліотеці автентифікувати ваші запити.

Крок 3: Визначте PDF‑файли для об’єднання

Перерахуйте PDF‑документи, які ви хочете об’єднати. Цей крок підготовлює вас до ефективного злиття PDF у Node.JS.

const filesToMerge = [
    new FileInfo({ filePath: "input1.pdf" }),
    new FileInfo({ filePath: "input2.pdf" })
];

Кожен FileInfo вказує на файл, що зберігається у вашому сховищі GroupDocs Cloud.

Крок 4: Встановити параметри злиття

Налаштуйте місце виведення та прикріпіть список файлів до запиту на злиття.

const mergeOptions = new MergeOptions();
mergeOptions.fileInfos = filesToMerge;
mergeOptions.outputPath = "merged_output.pdf";

Ці налаштування керують тим, як ви об’єднуєте PDF у Node.JS та куди буде збережено результат.

Крок 5: Виконати операцію злиття

Створіть екземпляр API, викличте метод merge і обробіть відповідь.

const mergeApi = new MergeApi(config);

try {
    const result = await mergeApi.mergeDocuments(mergeOptions);
    console.log("Merge completed. Output file stored at:", result.path);
} catch (error) {
    console.error("Error during PDF merge:", error);
}

Асинхронний виклик повертає шлях до об’єднаного документа, якщо операція успішна.

Повний приклад реалізації злиття PDF у Node.JS

Наступний код демонструє повний робочий процес від налаштування до обробки результату.

const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");

// Configure the SDK (replace with your actual credentials)
const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

async function mergePdfFiles() {
    // Initialize the Merge API
    const mergeApi = new MergeApi(config);

// Define the PDF files to be merged (must exist in GroupDocs Cloud storage)
    const filesToMerge = [
        new FileInfo({ filePath: "input1.pdf" }),
        new FileInfo({ filePath: "input2.pdf" })
    ];

// Set merge options
    const mergeOptions = new MergeOptions();
    mergeOptions.fileInfos = filesToMerge;
    mergeOptions.outputPath = "merged_output.pdf";

try {
        // Perform the merge operation
        const result = await mergeApi.mergeDocuments(mergeOptions);
        console.log("Merge completed. Output file stored at:", result.path);
    } catch (error) {
        console.error("Error during PDF merge:", error);
    }
}

// Execute the merge
mergePdfFiles();

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або до команди підтримки за допомогою.

Об’єднання PDF за допомогою REST API та cURL

Якщо ви віддаєте перевагу чистому підходу REST, ту ж операцію можна виконати за допомогою команд cURL.

Спочатку отримайте токен доступу:

curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET","grant_type":"client_credentials"}'

Завантажте вихідні PDF‑файли у ваше сховище (замініть YOUR_ACCESS_TOKEN на токен з попереднього кроку):

curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input1.pdf"

Повторіть завантаження input2.pdf. Потім запитайте операцію злиття:

curl -X POST "https://api.groupdocs.cloud/v2.0/merger/merge" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfos": [
               {"filePath":"input1.pdf"},
               {"filePath":"input2.pdf"}
           ],
           "outputPath":"merged_output.pdf"
         }'

Нарешті завантажте об’єднаний файл:

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=merged_output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o merged_output.pdf

Для повного списку кінцевих точок та параметрів перегляньте API reference.

Налаштування параметрів злиття

SDK надає кілька параметрів, які дозволяють точно налаштувати процес злиття:

  • outputPath - Шлях призначення для об’єднаного PDF. Налаштуйте його, щоб контролювати, де зберігається результат.
  • fileInfos - Масив об’єктів FileInfo, які визначають вихідні PDF‑файли та їх порядок.

Ви також можете встановити додаткові властивості, такі як pages для об’єднання конкретних діапазонів сторінок або password для зашифрованих PDF. Дивіться офіційну документацію для повного списку налаштовуваних полів.

Врахування продуктивності при об’єднанні PDF

При об’єднанні великих або багатьох PDF‑файлів дотримуйтесь цих порад:

  • Використовуйте async/await щоб уникнути блокування циклу подій, особливо для великих документів.
  • Пакетні завантаження: завантажуйте вихідні PDF-файли паралельно перед викликом злиття, щоб зменшити загальну затримку.
  • Потокова обробка: для надзвичайно великих PDF-файлів розгляньте можливість зберігання проміжних результатів у хмарному сховищі та злиття їх у менших частинах.
  • Зашифровані PDF: надайте паролі в об’єктах FileInfo; обробка зашифрованих файлів додає накладні витрати, тому зливайте їх після розшифрування, коли це можливо.

Застосування цих практик допомагає ефективно об’єднувати PDF у Node.JS, мінімізуючи споживання пам’яті.

Питання, які у вас можуть виникнути

  • Як об’єднати PDF-файли в Node.JS за допомогою GroupDocs?
    Використовуйте GroupDocs.Merger Cloud SDK for Node.js для створення екземпляра MergeApi, налаштуйте MergeOptions з вашими вихідними PDF і викличте mergeDocuments. Повний приклад коду в цьому посібнику демонструє процес.

  • Чи можу я об’єднати зашифровані PDF‑файли в Node.JS?
    Так, SDK підтримує об’єднання зашифрованих PDF. Вкажіть правильні паролі у об’єктах FileInfo перед викликом mergeDocuments. Дивіться офіційну документацію для деталей.

  • Які варіанти ліцензування доступні для GroupDocs.Merger?
    GroupDocs пропонує гнучкі цінові плани. Для тестування ви можете запросити тимчасову ліцензію, щоб оцінити бібліотеку перед придбанням повної підписки.

  • Де можна знайти більше прикладів та підтримку?
    Додаткові зразки доступні у репозиторій GitHub. Для отримання допомоги відвідайте форум підтримки.

Додаткова література