在構建文檔工作流或生成報告時,將多個 PDF 文檔合併為單個文件是一個常見需求。 GroupDocs.Merger Cloud SDK for Node.js 讓在 Node.JS 中合併 PDF 變得簡單,無需處理底層 PDF 結構。本指南將帶您了解設置、逐步實現、完整代碼示例、等效的 cURL 調用以及針對大型或加密 PDF 的性能技巧。
開始之前:先決條件與安裝
在開始之前,請確保您具備以下條件:
- Node.js 14 或更高版本已安裝在您的開發機器上。
- 具有客戶端 ID 和客戶端密鑰的有效 GroupDocs Cloud 帳戶。
- 訪問您想要合併的 PDF 文件,這些文件存儲在 GroupDocs Cloud 存儲中。
通過 npm 安裝 SDK 並下載最新的套件:
npm install groupdocs-merger-cloud
您也可以從官方發行頁面取得 SDK:Download SDK。安裝完成後,您即可開始編寫程式碼。
在 Node.JS 中合併 PDF 的逐步指南
第一步:安裝 SDK 並匯入所需類別
首先,匯入合併 PDF 所需的類別。
const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");
此匯入讓您可以存取核心 API、設定物件和檔案描述子。
步驟 2:設定您的 GroupDocs 憑證
使用您的客戶端憑證建立配置對象。
const config = new Configuration({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET"
});
提供正確的憑證可讓庫驗證您的請求。
第 3 步:定義要合併的 PDF 檔案
列出您想要合併的 PDF 文件。此步驟可讓您在 Node.JS 中有效地合併 PDF。
const filesToMerge = [
new FileInfo({ filePath: "input1.pdf" }),
new FileInfo({ filePath: "input2.pdf" })
];
每個 FileInfo 都指向存儲在您的 GroupDocs Cloud 存儲中的文件。
步驟 4:設定合併選項
配置輸出位置並將檔案清單附加到合併請求。
const mergeOptions = new MergeOptions();
mergeOptions.fileInfos = filesToMerge;
mergeOptions.outputPath = "merged_output.pdf";
這些設定控制您在 Node.JS 中合併 PDF 的方式以及結果將保存的位置。
步驟 5:執行合併操作
建立 API 實例,呼叫 merge 方法,並處理回應。
const mergeApi = new MergeApi(config);
try {
const result = await mergeApi.mergeDocuments(mergeOptions);
console.log("Merge completed. Output file stored at:", result.path);
} catch (error) {
console.error("Error during PDF merge:", error);
}
如果操作成功,異步調用會返回合併文檔的路徑。
完整的 PDF 合併實作範例(Node.JS)
以下程式碼示範了從配置到結果處理的完整工作流程。
const { MergeApi, MergeOptions, FileInfo, Configuration } = require("@groupdocs/merger-cloud");
// Configure the SDK (replace with your actual credentials)
const config = new Configuration({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET"
});
async function mergePdfFiles() {
// Initialize the Merge API
const mergeApi = new MergeApi(config);
// Define the PDF files to be merged (must exist in GroupDocs Cloud storage)
const filesToMerge = [
new FileInfo({ filePath: "input1.pdf" }),
new FileInfo({ filePath: "input2.pdf" })
];
// Set merge options
const mergeOptions = new MergeOptions();
mergeOptions.fileInfos = filesToMerge;
mergeOptions.outputPath = "merged_output.pdf";
try {
// Perform the merge operation
const result = await mergeApi.mergeDocuments(mergeOptions);
console.log("Merge completed. Output file stored at:", result.path);
} catch (error) {
console.error("Error during PDF merge:", error);
}
}
// Execute the merge
mergePdfFiles();
注意: 此代碼示例演示了核心功能。在將其用於您的項目之前,請確保更新所有文件路徑和配置值以匹配實際環境,驗證所有必需的依賴項已正確安裝,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文檔或聯繫支援團隊尋求協助。
使用 cURL 透過 REST API 合併 PDF
如果您偏好純粹的 REST 方法,則可以使用 cURL 命令執行相同的操作。
首先,取得存取令牌:
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET","grant_type":"client_credentials"}'
將來源 PDF 上傳至您的儲存空間(將 YOUR_ACCESS_TOKEN 替換為上一步的令牌):
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input1.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/local/path/input1.pdf"
再次上傳 input2.pdf。然後請求合併操作:
curl -X POST "https://api.groupdocs.cloud/v2.0/merger/merge" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fileInfos": [
{"filePath":"input1.pdf"},
{"filePath":"input2.pdf"}
],
"outputPath":"merged_output.pdf"
}'
最後,下載合併後的檔案:
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=merged_output.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o merged_output.pdf
欲取得完整的端點與參數清單,請參閱 API 參考。
配置合併選項
SDK 提供了多個選項,讓您可以微調合併過程:
- outputPath - 合併 PDF 的目標路徑。調整此設定以控制結果的存儲位置。
- fileInfos -
FileInfo物件的陣列,用於定義來源 PDF 及其順序。
您還可以設置其他屬性,例如 pages 以合併特定的頁面範圍,或 password 用於加密的 PDF。請參閱官方文檔以獲取可配置欄位的完整列表。
合併 PDF 時的效能考量
合併大量或許多 PDF 檔案時,請記住以下提示:
- 使用 async/await 以避免阻塞事件循環,尤其是對於大型文檔。
- 批量上傳:在調用合併之前並行上傳源 PDF,以降低整體延遲。
- 流式處理:對於極大的 PDF,考慮將中間結果存儲在雲端存儲中,並以較小的塊進行合併。
- 加密 PDF:在
FileInfo物件中提供密碼;處理加密文件會增加開銷,盡可能在解密後再進行合併。
應用這些做法可幫助您在 Node.JS 中高效合併 PDF,同時將記憶體消耗降至最低。
您可能有的問題
如何在 Node.JS 中使用 GroupDocs 合併 PDF 檔案?
使用 GroupDocs.Merger Cloud SDK for Node.js 來建立MergeApi實例,使用您的來源 PDF 配置MergeOptions,並呼叫mergeDocuments。本指南中的完整程式碼範例展示了此過程。我可以在 Node.JS 中合併加密的 PDF 文件嗎?
是的,SDK 支援合併加密的 PDF。請在呼叫mergeDocuments之前,在FileInfo物件中提供正確的密碼。詳情請參閱 官方文件。GroupDocs.Merger 的授權選項有哪些?
GroupDocs 提供彈性的定價方案。為了測試,您可以請求一個臨時授權,以在購買完整訂閱之前評估該庫。我可以在哪裡找到更多範例和支援?
其他範例可在 GitHub repository 上取得。若需協助,請造訪 support forum。
