Os desenvolvedores frequentemente precisam dividir arquivos PDF grandes em seções menores e mais manejáveis. Com o GroupDocs.Merger Cloud SDK for Node.JS, dividir um PDF em várias partes torna‑se simples, pois o serviço em nuvem cuida do processamento pesado enquanto você se concentra na lógica da sua aplicação. Este guia fornece um exemplo completo em funcionamento, mostra como executar a mesma tarefa via cURL e explica as opções de configuração que permitem ajustar finamente a operação de divisão.
Dividir PDF em Vários PDFs no Node.JS - Exemplo de Código Completo
Este exemplo demonstra como dividir um PDF em vários arquivos PDF usando o 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);
}
})();
Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Dividir PDF usando API REST com cURL
Se você preferir uma abordagem puramente REST, a mesma operação de divisão pode ser realizada com comandos cURL. As etapas abaixo mostram como obter um token de acesso, enviar o PDF de origem, executar a divisão e baixar cada parte.
# 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
Para obter uma lista completa de endpoints e parâmetros, veja a documentação oficial da API.
Como dividir PDF em vários PDFs no Node.JS funciona
Compreender o fluxo ajuda a adaptar o código a cenários mais complexos.
- Inicializar o cliente da API -
new GroupDocsMergerCloud.ApiClient()cria um cliente que contém seu App SID e App Key.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
- Carregar o arquivo de origem - O helper
uploadFilelê o PDF local e o envia para o armazenamento em nuvem usandostorageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
- Configurar opções de divisão -
new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] })informa ao serviço quais intervalos de páginas extrair.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
pages: ['1-2', '3-5']
});
- Enviar a solicitação de divisão -
mergerApi.splitDocument(splitRequest)envia a solicitação e retorna um array com informações sobre cada parte gerada.
const splitResult = await mergerApi.splitDocument(splitRequest);
- Baixar os resultados - O loop itera sobre
splitResult, chamandodownloadFilepara cada parte e salvando‑a localmente.
for (let i = 0; i < splitResult.length; i++) {
const partInfo = splitResult[i];
await downloadFile(partInfo.path, localOutputPath);
}
Para obter detalhes mais aprofundados sobre cada classe e método, consulte a referência da API.
Pré-requisitos e Configuração
Antes de começar, certifique‑se de que você tem o seguinte:
- Node.js 14 ou posterior instalado.
- Uma conta do GroupDocs Cloud com App SID e App Key válidos.
- Acesso à internet para chamadas de API.
Instale o SDK via npm e faça o download do pacote mais recente:
npm install groupdocs-merger-cloud
Você também pode obter os binários diretamente da página de download.
Ajuste fino das Split Options
O objeto SplitOptions oferece várias propriedades que você pode ajustar:
- pages - Uma matriz de intervalos de páginas (por exemplo,
['1-2','3-5']). Esta é a configuração principal usada no exemplo. - outputPath - Pasta opcional onde os arquivos divididos serão armazenados no armazenamento em nuvem.
- preserveMetadata - Quando definido como
true, os metadados originais do documento são copiados para cada parte. Consulte a API reference para mais opções.
Ajustar esses valores permite controlar o tamanho, o nome e os metadados de cada PDF resultante.
Conclusão
Dividir PDF em vários PDFs no Node.JS torna‑se simples com o GroupDocs.Merger Cloud SDK for Node.JS. O SDK lida com o upload de arquivos, seleção de intervalo de páginas e recuperação do resultado, permitindo que você se concentre na integração da saída ao seu fluxo de trabalho. Lembre‑se de proteger seu App SID e App Key, e considere usar uma licença comercial para implantações em produção. Detalhes de preços estão disponíveis na página do produto, e você pode obter uma licença temporária na página de licença temporária. Com o código, exemplos de cURL e dicas de configuração neste guia, você está pronto para implementar a divisão robusta de PDFs em suas aplicações Node.JS.
FAQs
Como faço para dividir um PDF em vários PDFs no Node.JS usando intervalos de páginas personalizados?
Use a propriedadepagesdeSplitOptionspara definir qualquer intervalo que precisar, como['1-3','4-6']. O SDK gerará um PDF separado para cada intervalo.Posso dividir um PDF sem armazená-lo permanentemente no armazenamento em nuvem?
Sim. Depois de fazer o upload do arquivo de origem e concluir a divisão, você pode excluir o arquivo original comstorageApi.deleteFileconforme mostrado no exemplo.Preciso de uma licença paga para usar o recurso de divisão em produção?
É necessária uma licença comercial para uso em produção. Visite a página do produto para preços e obtenha uma licença temporária na página de licença temporária para avaliação.
