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.

  1. 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';
  1. Carregar o arquivo de origem - O helper uploadFile lê o PDF local e o envia para o armazenamento em nuvem usando storageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
  1. 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']
});
  1. 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);
  1. Baixar os resultados - O loop itera sobre splitResult, chamando downloadFile para 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 propriedade pages de SplitOptions para 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 com storageApi.deleteFile conforme 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.

Leia Mais