將 PDF 檔案轉換為 DOCX 格式是構建以文件為中心的應用程式時的常見需求,尤其是當您需要可編輯的 Word 輸出時。 GroupDocs.Conversion Cloud SDK for Node.js 提供了強大的 API,使此任務變得簡單且具可擴展性。在本指南中,您將看到完整的非同步程式碼範例,學習如何使用 cURL REST 呼叫達成相同結果,設定 SDK,並套用最佳實踐建議以確保可靠的轉換。
完整程式碼範例:非同步 PDF 轉換為 DOCX(Node.JS)
此範例示範如何使用 GroupDocs.Conversion Cloud SDK for Node.js 執行非同步的 PDF 轉換為 DOCX。
// PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const path = require('path');
// -------------------- Configuration --------------------
const CLIENT_ID = process.env.GROUPDOCS_CLIENT_ID || 'YOUR_CLIENT_ID';
const CLIENT_SECRET = process.env.GROUPDOCS_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
// Initialize API client
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient = new GroupDocsConversionCloud.ApiClient();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
// -------------------- Conversion Logic --------------------
async function convertPdfToDocx() {
try {
// Input file information (must already be uploaded to GroupDocs Cloud storage)
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf'); // generic path in cloud storage
// DOCX specific conversion options (optional, shown for demonstration)
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true; // keep original PDF layout as much as possible
docxOptions.password = null; // if PDF is password protected, set it here
// Build conversion request
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx'); // result will be stored in cloud storage
convertRequest.options = docxOptions; // attach format‑specific options
// Perform conversion (async)
const conversionResult = await apiInstance.convertDocument(convertRequest);
// conversionResult contains the path of the generated file and other metadata
console.log('Conversion succeeded.');
console.log('Output file path:', conversionResult.path);
console.log('File size (bytes):', conversionResult.size);
} catch (error) {
// Detailed error handling
if (error.response && error.response.body) {
console.error('API error:', error.response.body);
} else {
console.error('Unexpected error:', error.message);
}
}
}
// -------------------- Execution --------------------
(async () => {
// Optional: set a timeout to avoid hanging indefinitely
const timeoutMs = 300000; // 5 minutes
const timeout = setTimeout(() => {
console.error('Conversion timed out after', timeoutMs / 1000, 'seconds');
process.exit(1);
}, timeoutMs);
await convertPdfToDocx();
clearTimeout(timeout);
// Graceful shutdown
process.exit(0);
})();
注意: 此代碼示例演示了核心功能。在將其用於您的項目之前,請確保更新文件路徑(
input.pdf、output.docx等)以匹配實際位置,驗證已安裝所有必需的依賴項,並在開發環境中徹底測試。如果遇到任何問題,請參閱官方文檔或聯繫支援團隊尋求協助。
使用 cURL 和 REST API 轉換文件
您可以透過直接呼叫 GroupDocs.Conversion Cloud REST 端點,在不編寫程式碼的情況下完成相同的 PDF 轉換為 DOCX。以下步驟說明如何取得存取權杖、上傳 PDF、啟動轉換,並下載產生的 DOCX 檔案。
- 驗證並取得存取令牌
將YOUR_CLIENT_ID和YOUR_CLIENT_SECRET替換為您的憑證。
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type":"client_credentials",
"client_id":"YOUR_CLIENT_ID",
"client_secret":"YOUR_CLIENT_SECRET"
}'
回應中包含 access_token,您將在後續呼叫中使用它。
- 上傳來源 PDF
curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary @./local/input.pdf
- 執行轉換
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format":"docx",
"fileInfo":{"filePath":"input.pdf"},
"outputPath":"output.docx",
"options":{"preserveOriginalFormatting":true}
}'
回應返回生成的 DOCX 檔案的路徑。
- 下載已轉換的 DOCX
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o ./local/output.docx
有關請求有效負載和其他選項的更多詳細資訊,請參閱官方 API 文檔。
在 Node.JS 中拆解 PDF 到 DOCX 的轉換
以下是非同步程式碼範例關鍵部分的簡要說明。
- 匯入並設定用戶端
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
ConversionApi 類別(API 參考)是所有轉換操作的入口點。
- 設定驗證憑證
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
JWT 認證確保每個對雲服務的請求都受到保護。
- 準備輸入檔案資訊
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');
FileInfo 告訴 API PDF 檔案在 GroupDocs Cloud 儲存空間中的位置。
- 配置 DOCX 特定選項
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;
DocxConvertOptions 讓您保留原始佈局,並在需要時處理密碼。
- 建立並發送轉換請求
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx');
convertRequest.options = docxOptions;
const conversionResult = await apiInstance.convertDocument(convertRequest);
convertDocument 方法執行實際的轉換,並返回諸如輸出路徑和檔案大小等中繼資料。
安裝與設定 GroupDocs.Conversion Cloud SDK for Node.JS
- 安裝套件
npm install groupdocs-conversion-cloud
此套件可從公共 npm 註冊表取得。請參閱 下載頁面 以了解版本詳細資訊。
先決條件
- Node.js 12 或更高版本。
- 具有客戶端 ID 和客戶端密鑰的 GroupDocs Cloud 帳戶。
在您的專案中初始化 SDK (摘自完整範例)
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
如果您使用區域端點,請調整 basePath。
高效文件轉換的最佳實踐
- 重用 API 客戶端 而不是為每次轉換都建立新實例;這樣可以減少驗證開銷。
- 啟用串流上傳 以處理大型 PDF,避免將整個檔案載入記憶體。
- 設定合理的逾時時間(例如 5 分鐘),以防止工作卡住,同時仍允許複雜文件完成。
- 僅在需要時保留原始格式;停用此功能可加速僅含文字的簡單 PDF 轉換。
- 監控 API 使用限制 於您的 GroupDocs 帳戶儀表板中,以避免批次操作期間被限速。
結論
GroupDocs.Conversion Cloud SDK for Node.js 讓 PDF 轉換為 DOCX 變得簡單,無論您偏好功能完整的函式庫或使用 cURL 直接呼叫 REST。遵循非同步程式碼範例、正確配置客戶端,並套用上述效能提示,即可將可靠的文件轉換整合到任何 Node.JS 服務中。請記得為生產環境取得適當的授權;產品頁面提供價格資訊,亦可從臨時授權頁面 取得臨時授權以供評估。
常見問題
PDF 轉 DOCX 在 Node.JS 中如何處理複雜版面?
SDK 預設會嘗試保留原始格式。您可以在DocxConvertOptions中切換preserveOriginalFormatting以在保真度與速度之間取得平衡。請參閱 API 參考 了解所有選項。PDF 轉 DOCX 轉換的檔案大小限制是什麼?
雲端服務對免費帳戶接受的檔案上限為 200 MB;較大的檔案需要升級方案。上傳採用串流方式,因此您伺服器的記憶體使用量保持在低水平。我可以在單個請求中將多個 PDF 轉換為 DOCX 嗎?
API 每個請求僅處理一個文檔,但您可以在 Node.JS 中遍歷文件列表,並行執行轉換,同時遵守您帳戶的併發限制。是否有辦法在本機測試轉換而不需要付費授權?
是的,您可以從臨時授權頁面申請臨時評估授權。此授權提供完整功能以供開發與測試。
