開發人員常常需要將大型 PDF 檔案拆分為較小、更易於管理的部分。使用 GroupDocs.Merger Cloud SDK for Node.JS,將 PDF 拆分為多個部分變得簡單,因為雲服務負責繁重的工作,而您只需專注於應用程式邏輯。本指南提供完整的可運行範例,展示如何透過 cURL 執行相同的任務,並說明可讓您微調拆分操作的配置選項。
在 Node.JS 中將 PDF 拆分為多個 PDF - 完整程式碼範例
此範例示範如何使用 GroupDocs.Merger Cloud SDK for Node.JS 將 PDF 拆分為多個 PDF 檔案。
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);
}
})();
注意: 此代碼示例演示了核心功能。在將其用於您的項目之前,請確保更新所有文件路徑和配置值以匹配實際環境,驗證所有必需的依賴項已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文檔或聯繫支援團隊尋求協助。
使用 cURL 的 REST API 拆分 PDF
如果您更喜歡純粹的 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 文件。
Node.JS 中拆分 PDF 為多個 PDF 的工作原理
了解流程有助於您將代碼適應於更複雜的情況。
- 初始化 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 或更高版本。
- 具備有效 App SID 和 App Key 的 GroupDocs Cloud 帳戶。
- 需要能夠連接互聯網以進行 API 呼叫。
通過 npm 安裝 SDK 並下載最新的套件:
npm install groupdocs-merger-cloud
您也可以直接從下載頁面取得二進位檔。
微調拆分選項
SplitOptions 物件提供了多個可調整的屬性:
- pages - 一個頁面範圍的陣列(例如
['1-2','3-5'])。這是範例中使用的核心設定。 - outputPath - 可選的資料夾,用於在雲端儲存中存放分割後的檔案。
- preserveMetadata - 設為
true時,會將原始文件的中繼資料複製到每個部分。請參閱 API reference 以獲取更多選項。
調整這些值可讓您控制每個生成的 PDF 的大小、命名和元資料。
結論
在 Node.JS 中將 PDF 拆分為多個 PDF 變得簡單,使用 GroupDocs.Merger Cloud SDK for Node.JS。該 SDK 處理檔案上傳、頁面範圍選擇以及結果檢索,讓您專注於將輸出整合到工作流程中。請記得保護您的 App SID 和 App Key,並考慮在生產部署中使用商業授權。產品頁面提供價格細節,您也可以從 臨時授權頁面 獲取臨時授權。有了本指南中的程式碼、cURL 範例和配置技巧,您即可在 Node.JS 應用程式中實作穩健的 PDF 拆分功能。
常見問題
如何在 Node.JS 中使用自訂頁面範圍將 PDF 分割成多個 PDF?
使用SplitOptions的pages屬性來定義所需的任何範圍,例如['1-3','4-6']。SDK 會為每個範圍生成單獨的 PDF。我可以在不將 PDF 永久存儲在雲端儲存的情況下分割它嗎?
是的。上傳來源檔案並完成分割後,您可以使用storageApi.deleteFile刪除原始檔案,如範例所示。我需要付費授權才能在生產環境中使用 split 功能嗎?
生產環境使用需要商業授權。請訪問產品頁面了解價格,並從臨時授權頁面獲取臨時授權以進行評估。
