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

Розділення PDF на кілька PDF у Node.JS — повний приклад коду

Цей приклад демонструє, як розбити PDF на кілька PDF‑файлів за допомогою GroupDocs.Merger Cloud SDK for Node.JS.

const fs = require('fs');
const path = require('path');
const GroupDocsMergerCloud = require('@groupdocs/merger-cloud');

// ---------- Set up API credentials ----------
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';

// ---------- Initialize API instances ----------
const mergerApi = new GroupDocsMergerCloud.MergerApi(client);
const storageApi = new GroupDocsMergerCloud.StorageApi(client);

// ---------- Helper to upload a local file to cloud storage ----------
async function uploadFile(localPath, cloudPath) {
    const fileData = fs.readFileSync(localPath);
    const uploadRequest = new GroupDocsMergerCloud.UploadFileRequest({
        path: cloudPath,
        file: fileData
    });
    await storageApi.uploadFile(uploadRequest);
}

// ---------- Helper to download a cloud file to local storage ----------
async function downloadFile(cloudPath, localPath) {
    const downloadRequest = new GroupDocsMergerCloud.DownloadFileRequest({ path: cloudPath });
    const response = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localPath, response);
}

// ---------- Main execution ----------
(async () => {
    try {
        // 1. Upload source PDF to cloud storage
        const localInputPdf = path.resolve(__dirname, 'input.pdf');          // local source PDF
        const cloudInputPdf = 'input/input.pdf';                            // cloud path
        await uploadFile(localInputPdf, cloudInputPdf);
        console.log('Uploaded PDF to cloud storage.');

// 2. Configure split options (example: split into two parts: pages 1‑2 and 3‑5)
        const splitOptions = new GroupDocsMergerCloud.SplitOptions({
            pages: ['1-2', '3-5']                                            // page ranges to split
        });

// 3. Build split request
        const splitRequest = new GroupDocsMergerCloud.SplitDocumentRequest({
            fileInfo: new GroupDocsMergerCloud.FileInfo({ filePath: cloudInputPdf }),
            options: splitOptions
        });

// 4. Execute split operation
        const splitResult = await mergerApi.splitDocument(splitRequest);
        console.log(`Split operation completed. ${splitResult.length} parts generated.`);

// 5. Download each split part and save locally
        for (let i = 0; i < splitResult.length; i++) {
            const partInfo = splitResult[i];
            const localOutputPath = path.resolve(__dirname, `output_part_${i + 1}.pdf`);
            await downloadFile(partInfo.path, localOutputPath);
            console.log(`Saved split part ${i + 1} to ${localOutputPath}`);
        }

// 6. (Optional) Clean up cloud storage – delete uploaded source file
        const deleteRequest = new GroupDocsMergerCloud.DeleteFileRequest({ path: cloudInputPdf });
        await storageApi.deleteFile(deleteRequest);
        console.log('Cleaned up source file from cloud storage.');
    } catch (error) {
        console.error('Error during PDF split process:', error);
    }
})();

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

Розділення PDF за допомогою REST API та cURL

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

# 1. Get an access token (replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET)
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
# 2. Upload the source PDF (replace YOUR_ACCESS_TOKEN and adjust paths)
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/pdf" \
     --data-binary @./input.pdf
# 3. Execute the split operation (pages 1-2 and 3-5)
curl -X POST "https://api.groupdocs.cloud/v2.0/merger/split" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "options": { "pages": ["1-2","3-5"] }
         }'
# 4. Download each generated part (example for part 1)
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output_part_1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o ./output_part_1.pdf

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

Як працює розділення PDF на кілька PDF у Node.JS

Розуміння процесу допомагає адаптувати код до більш складних сценаріїв.

  1. Ініціалізуйте клієнт API - new GroupDocsMergerCloud.ApiClient() створює клієнт, який зберігає ваш App SID та App Key.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
  1. Завантажте вихідний файл - Допоміжна функція uploadFile читає локальний PDF і надсилає його в хмарне сховище за допомогою storageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
  1. Налаштуйте параметри розділення - new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] }) повідомляє сервісу, які діапазони сторінок слід витягнути.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
    pages: ['1-2', '3-5']
});
  1. Надішліть запит на розділення - mergerApi.splitDocument(splitRequest) надсилає запит і повертає масив з інформацією про кожну згенеровану частину.
const splitResult = await mergerApi.splitDocument(splitRequest);
  1. Завантажити результати - Цикл перебирає splitResult, викликаючи downloadFile для кожної частини та зберігаючи її локально.
for (let i = 0; i < splitResult.length; i++) {
    const partInfo = splitResult[i];
    await downloadFile(partInfo.path, localOutputPath);
}

Для докладнішої інформації про кожен клас і метод зверніться до API довідка.

Вимоги та налаштування

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

  • Node.js 14 або новіша версія встановлені.
  • Обліковий запис GroupDocs Cloud з дійсним App SID та App Key.
  • Доступ до інтернету для викликів API.

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

npm install groupdocs-merger-cloud

Ви також можете завантажити бінарні файли безпосередньо зі сторінки завантаження.

Тонке налаштування параметрів розділення

Об’єкт SplitOptions пропонує кілька властивостей, які ви можете налаштувати:

  • pages - Масив діапазонів сторінок (наприклад, ['1-2','3-5']). Це основне налаштування, використане у прикладі.
  • outputPath - Необов’язкова папка, у якій розділені файли будуть зберігатися в хмарному сховищі.
  • preserveMetadata - Якщо встановлено true, метадані оригінального документа копіюються в кожну частину. Дивіться довідка API для отримання додаткових параметрів.

Налаштування цих значень дозволяє вам контролювати розмір, назву та метадані кожного створеного PDF.

Висновок

Розділення PDF на кілька PDF у Node.JS стає простим завдяки GroupDocs.Merger Cloud SDK for Node.JS. SDK обробляє завантаження файлів, вибір діапазону сторінок та отримання результату, дозволяючи вам зосередитися на інтеграції вихідних даних у ваш робочий процес. Не забудьте захистити ваш App SID і App Key і розгляньте можливість використання комерційної ліцензії для продакшн‑розгортань. Деталі ціноутворення доступні на сторінці продукту, а тимчасову ліцензію можна отримати на сторінці тимчасової ліцензії. З кодом, прикладами cURL та порадами щодо налаштування в цьому посібнику ви готові впроваджувати надійне розділення PDF у ваших Node.JS застосунках.

Питання та відповіді

  • Як розділити PDF на кілька PDF у Node.JS, використовуючи власні діапазони сторінок?
    Використайте властивість pages об’єкта SplitOptions, щоб визначити будь‑який потрібний діапазон, наприклад ['1-3','4-6']. SDK створить окремий PDF для кожного діапазону.

  • Чи можу я розділити PDF без постійного зберігання у хмарному сховищі?
    Так. Після завантаження вихідного файлу та завершення розділення ви можете видалити оригінальний файл за допомогою storageApi.deleteFile, як показано у прикладі.

  • Чи потрібна платна ліцензія для використання функції розділення у продакшн?
    Для використання у продакшн потрібна комерційна ліцензія. Відвідайте сторінку продукту для отримання цін і отримайте тимчасову ліцензію зі сторінки тимчасової ліцензії для оцінки.

Читати далі