Разработчикам часто требуется разбивать большие файлы 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
Понимание процесса помогает адаптировать код к более сложным сценариям.
- Инициализировать клиент API -
new GroupDocsMergerCloud.ApiClient()создает клиент, который хранит ваш App SID и App Key.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
- Загрузить исходный файл - Помощник
uploadFileчитает локальный PDF и отправляет его в облачное хранилище с помощьюstorageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
- Настройте параметры разделения -
new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] })сообщает сервису, какие диапазоны страниц извлекать.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
pages: ['1-2', '3-5']
});
- Отправьте запрос на разбиение -
mergerApi.splitDocument(splitRequest)отправляет запрос и возвращает массив с информацией о каждой сгенерированной части.
const splitResult = await mergerApi.splitDocument(splitRequest);
- Скачать результаты - Цикл проходит по
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 reference для получения дополнительных вариантов.
Настройка этих значений позволяет контролировать размер, имя и метаданные каждого результирующего 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, как показано в примере.Нужна ли платная лицензия для использования функции split в продакшн?
Для использования в продакшн требуется коммерческая лицензия. Посетите страницу продукта для получения информации о ценах и получите временную лицензию со страницы временной лицензии для оценки.
