PHP 中將 PDF 轉換為 DOCX 文件是當您需要從只讀 PDF 獲取可編輯的 Word 檔案時的常見需求。 GroupDocs.Conversion Cloud SDK for PHP 提供了一個強大的庫,能夠高精度地處理此任務。在本教程中,您將設置該庫,通過詳細的代碼示例,並了解如何使用 cURL 調用 REST API 以進行雲部署。完成後,您將能夠將 PDF 轉換為 DOCX,並將其整合到您自己的 PHP 應用程序中。

開始之前:先決條件與安裝

要遵循本指南,您需要:

  • PHP 7.4 或更高版本已安裝在您的開發機或伺服器上。
  • 用於相依性管理的 Composer。
  • 一個 GroupDocs Cloud 帳戶 (client ID and client secret) - 您可以在 GroupDocs portal 上建立。
  • 足夠的磁碟空間以容納來源 PDF 和產生的 DOCX 檔案。

使用 Composer 安裝庫:

composer require groupdocs-conversion-cloud

下載最新套件或在 GitHub 上檢視原始碼:Download URL。安裝完成後,即可開始編寫程式碼。

在 PHP 中將 PDF 轉換為 DOCX 文檔 - 逐步構建

以下是一個簡明的操作說明,展示了每個必要的步驟。完整的源代碼稍後會在 完整的 PHP 實現,用於將文檔轉換為 DOCX 部分出現。

步驟 1:載入來源 PDF

建立一個 ConversionApi 實例,並指向您想要轉換的 PDF。

use GroupDocs\Conversion\Configuration;
use GroupDocs\Conversion\Api\ConversionApi;

$config = new Configuration('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');
$api = new ConversionApi($config);
$sourcePath = 'input.pdf';

步驟 2:初始化轉換設定

定義輸出格式和目標路徑。ConvertOptions 類別讓您微調大型 PDF 的記憶體限制,從而提升 PDF 轉換為 DOCX 在 PHP 中的效能

use GroupDocs\Conversion\Model\ConvertOptions;

$options = new ConvertOptions();
$options->setFilePath($sourcePath);
$options->setOutputPath('output.docx');
$options->setFormat('docx');
// Optional: $options->setMemoryLimit(1024); // in MB

步驟 3:執行轉換

將請求發送到雲服務。此單一 API 呼叫執行繁重的工作。

use GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest;

$request = new ConvertDocumentRequest($options);
$api->convertDocument($request);

步驟 4:檢索結果

已轉換的 DOCX 檔案已儲存至您指定的路徑。您現在可以將其提供給使用者,或將其儲存以供稍後處理。

echo "Conversion completed. DOCX saved to output.docx";

第5步:清理資源

如果在迴圈中執行大量轉換,請釋放 API 實例。重複使用相同的實例對於 在 PHP 中的 PDF 到 DOCX 轉換微服務 更有效率。

unset($api);

完整的 PHP 實作,用於將文件轉換為 DOCX

以下程式碼將所有步驟整合為一個可執行的腳本。

<?php
require 'vendor/autoload.php';

use GroupDocs\Conversion\Configuration;
use GroupDocs\Conversion\Api\ConversionApi;
use GroupDocs\Conversion\Model\ConvertOptions;
use GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest;

// ==== Configuration ====
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$config = new Configuration($clientId, $clientSecret);
$api = new ConversionApi($config);

// ==== Input / Output ====
$sourcePath = __DIR__ . '/input.pdf';
$outputPath = __DIR__ . '/output.docx';

// ==== Conversion Options ====
$options = new ConvertOptions();
$options->setFilePath($sourcePath);
$options->setOutputPath($outputPath);
$options->setFormat('docx');
// Example of performance tuning
$options->setMemoryLimit(1024); // 1 GB

// ==== Convert ====
$request = new ConvertDocumentRequest($options);
try {
    $api->convertDocument($request);
    echo "PDF successfully converted to DOCX. File saved at: $outputPath\n";
} catch (Exception $e) {
    echo "Conversion failed: " . $e->getMessage() . "\n";
}

// ==== Cleanup ====
unset($api);
?>

注意: 此程式碼範例展示了核心功能。在您的專案中使用之前,請確保更新檔案路徑(input.pdfoutput.docx 等)以符合實際檔案位置,驗證所有必要的相依項已正確安裝,並在開發環境中徹底測試。如遇到任何問題,請參閱官方文件或前往支援論壇尋求協助。

使用 cURL 通過 REST API 執行文件轉換

如果您更喜歡直接與服務互動,以下 cURL 命令說明了完整的工作流程。

1. 驗證並取得存取令牌

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. 上傳來源 PDF

curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/input.pdf"

3. 請求 PDF 轉換為 DOCX

curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert?outputFormat=docx&outputPath=/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"filePath":"/input.pdf"}'

4. 下載已轉換的 DOCX

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/download?path=/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.docx

這些指令可以包裝在簡單的 PHP 腳本中,或用於 CI 管道,以實現 PDF 轉 DOCX 的 PHP CLI 工具。欲了解更多細節,請參閱 API 參考

結論

在 PHP 中整合 PDF 轉換為 DOCX 相當簡單,只需使用 GroupDocs.Conversion Cloud SDK for PHP。您已學會如何設定庫、執行逐步轉換,並透過 REST 呼叫呼叫相同功能。此庫同時支援雲端部署與本地部署情境,為微服務架構或傳統伺服器安裝提供彈性。請記得在產品頁面檢視定價選項,並在投入生產前從臨時授權頁面取得臨時授權。祝開發愉快!

常見問題

如何在本地的 PHP 環境中實現 PDF 轉 DOCX 文檔轉換?
在您自己的伺服器上部署庫,配置客戶端 ID 和密鑰,並在本地運行轉換代碼。驗證後不需要任何外部網路流量。

什麼是提升大型 PDF 轉換速度的最佳方法?
Reuse a single ConversionApi instance, increase PHP’s memory limit, and enable streaming by setting appropriate options in ConvertOptions. This reduces overhead and boosts PDF to DOCX Conversion Performance in PHP.

我可以在 Docker 容器中將此庫用於微服務嗎?
是的。將 Composer 安裝步驟加入到您的 Dockerfile,複製您的 PHP 腳本,並暴露一個調用轉換邏輯的端點。這樣即可建立一個可移植的 PDF 到 DOCX 轉換微服務(PHP).

是否有此功能的 Composer 套件?
此函式庫透過 Composer 發佈。使用 composer require groupdocs-conversion-cloud 進行安裝,並透過您的 composer.json 管理更新。

閱讀更多