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.pdf、output.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 管理更新。
