PDF 转换为 DOCX 文档在 PHP 中是一个常见需求,当您需要从只读 PDF 获取可编辑的 Word 文件时。 GroupDocs.Conversion Cloud SDK for PHP 提供了一个强大的库,能够高精度地完成此任务。在本教程中,您将设置该库,逐步浏览详细的代码示例,并了解如何使用 cURL 调用 REST API 进行云部署。完成后,您将能够将 PDF 转换为 DOCX 并集成到您自己的 PHP 应用程序中。

开始之前:先决条件和安装

要遵循本指南,您需要:

  • PHP 7.4 或更高版本已安装在您的开发机器或服务器上。
  • 用于依赖管理的 Composer。
  • 一个 GroupDocs Cloud 账户(client ID 和 client secret)——您可以在 GroupDocs 门户上创建。
  • 足够的磁盘空间用于源 PDF 和生成的 DOCX 文件。

使用 Composer 安装库:

composer require groupdocs-conversion-cloud

下载最新的包或在 GitHub 上查看源代码: 下载链接。安装完成后,您即可开始编码。

PDF 转 DOCX 文档转换(PHP)- 逐步构建

下面是一个简明的演练,展示了每个关键操作。完整的源代码稍后将在 完整的 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 流水线中用于 PHP 中的 PDF 转 DOCX 转换 CLI 工具。有关更多详细信息,请参阅 API 参考

结论

在 PHP 中使用 GroupDocs.Conversion Cloud SDK for PHP 进行 PDF 转 DOCX 转换非常简单。您已经学习了如何设置库、执行一步步的转换以及通过 REST 调用实现相同功能。该库同时支持基于云的部署和本地部署,为微服务架构或传统服务器安装提供了灵活性。请记得在产品页面查看定价选项,并在投入生产前从临时许可证页面获取临时许可证。祝编码愉快!

常见问题

如何在本地 PHP 环境中实现 PDF 转 DOCX 文档转换?
在您自己的服务器上部署库,配置客户端 ID 和密钥,然后在本地运行转换代码。认证后无需任何外部网络流量。

提升大 PDF 转换速度的最佳方法是什么?
复用单个 ConversionApi 实例,增加 PHP 的内存限制,并通过在 ConvertOptions 中设置适当的选项来启用流式传输。这可以减少开销并提升 PHP 中的 PDF 转 DOCX 转换性能.

我可以在 Docker 容器中用于微服务吗?
是的。在 Dockerfile 中包含 Composer 安装步骤,复制您的 PHP 脚本,并公开一个调用转换逻辑的端点。这将创建一个可移植的 PHP 中的 PDF 转 DOCX 转换微服务

是否有 Composer 包提供此功能?
该库通过 Composer 分发。使用 composer require groupdocs-conversion-cloud 安装,并通过 composer.json 管理更新。

阅读更多