Los desarrolladores a menudo necesitan dividir archivos PDF grandes en secciones más pequeñas y manejables. Con el GroupDocs.Merger Cloud SDK for Node.JS, dividir un PDF en varias partes se vuelve sencillo, ya que el servicio en la nube se encarga del trabajo pesado mientras usted se concentra en la lógica de su aplicación. Esta guía proporciona un ejemplo completo y funcional, muestra cómo realizar la misma tarea mediante cURL y explica las opciones de configuración que le permiten afinar la operación de división.
Dividir PDF en varios PDF en Node.JS - Ejemplo de código completo
Este ejemplo demuestra cómo dividir un PDF en varios archivos PDF usando 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 ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.
Dividir PDF usando la API REST con cURL
Si prefieres un enfoque puramente REST, la misma operación de división se puede realizar con comandos cURL. Los pasos a continuación muestran cómo obtener un token de acceso, cargar el PDF de origen, ejecutar la división y descargar 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 obtener una lista completa de endpoints y parámetros, consulte la documentación oficial de la API.
Cómo funciona la división de PDF en varios PDF en Node.JS
Comprender el flujo le ayuda a adaptar el código a escenarios más complejos.
- Inicializar el cliente API -
new GroupDocsMergerCloud.ApiClient()crea un cliente que contiene su App SID y App Key.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
- Cargar el archivo de origen - El ayudante
uploadFilelee el PDF local y lo envía al almacenamiento en la nube usandostorageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
- Configurar opciones de división -
new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] })indica al servicio qué rangos de páginas extraer.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
pages: ['1-2', '3-5']
});
- Enviar la solicitud de división -
mergerApi.splitDocument(splitRequest)envía la solicitud y devuelve una matriz con información sobre cada parte generada.
const splitResult = await mergerApi.splitDocument(splitRequest);
- Descargar los resultados - El bucle itera sobre
splitResult, llamando adownloadFilepara cada parte y guardándola localmente.
for (let i = 0; i < splitResult.length; i++) {
const partInfo = splitResult[i];
await downloadFile(partInfo.path, localOutputPath);
}
Para obtener más detalles sobre cada clase y método, consulte la referencia de API.
Requisitos y Configuración
Antes de comenzar, asegúrate de tener lo siguiente:
- Node.js 14 o posterior instalado.
- Una cuenta de GroupDocs Cloud con App SID y App Key válidos.
- Acceso a Internet para llamadas a la API.
Instale el SDK a través de npm y descargue el paquete más reciente:
npm install groupdocs-merger-cloud
También puedes obtener los binarios directamente desde la página de descarga.
Ajuste fino de opciones de división
El objeto SplitOptions ofrece varias propiedades que puedes ajustar:
- pages - Una matriz de rangos de páginas (p. ej.,
['1-2','3-5']). Esta es la configuración principal utilizada en el ejemplo. - outputPath - Carpeta opcional donde se almacenarán los archivos divididos en el almacenamiento en la nube.
- preserveMetadata - Cuando se establece en
true, los metadatos originales del documento se copian a cada parte. Consulte la referencia de API para más opciones.
Ajustar estos valores le permite controlar el tamaño, el nombre y los metadatos de cada PDF resultante.
Conclusión
Dividir un PDF en varios PDF en Node.JS se vuelve sencillo con el GroupDocs.Merger Cloud SDK for Node.JS. El SDK maneja la carga de archivos, la selección de rangos de páginas y la recuperación del resultado, permitiéndote centrarte en integrar la salida en tu flujo de trabajo. Recuerda proteger tu App SID y App Key, y considera usar una licencia comercial para implementaciones en producción. Los detalles de precios están disponibles en la página del producto, y puedes obtener una licencia temporal desde la página de licencia temporal. Con el código, los ejemplos de cURL y los consejos de configuración en esta guía, estás listo para implementar una división de PDF robusta en tus aplicaciones Node.JS.
Preguntas frecuentes
¿Cómo dividir un PDF en varios PDF en Node.JS usando rangos de página personalizados?
Utilice la propiedadpagesdeSplitOptionspara definir cualquier rango que necesite, como['1-3','4-6']. El SDK generará un PDF separado para cada rango.¿Puedo dividir un PDF sin almacenarlo permanentemente en el almacenamiento en la nube?
Sí. Después de cargar el archivo de origen y completar la división, puedes eliminar el archivo original constorageApi.deleteFilecomo se muestra en el ejemplo.¿Necesito una licencia de pago para usar la función de división en producción?
Se requiere una licencia comercial para su uso en producción. Visite la página del producto para consultar precios y obtenga una licencia temporal desde la página de licencia temporal para evaluación.
