将 DOCX 文件转换为 Markdown 是开发者常见的需求,因为他们希望拥有轻量级、适合版本控制的文档。 Aspose.HTML Cloud SDK for PHP 使您只需几次 API 调用即可在 PHP 中执行此 DOCX 到 MD 的转换。在本指南中,我们将逐步介绍所需的设置,演示完整的代码示例,并展示如何微调输出以获得干净的 Markdown。您还将看到如何使用 cURL 通过 REST 调用相同的转换,以适应云原生场景。
将 DOCX 转换为 MD 的 PHP 步骤
- 获取访问令牌 - 使用您的 Aspose Cloud 客户端 ID 和密钥,通过 OAuth 端点请求临时访问令牌。
- 上传源 DOCX - 可以使用
UploadFile方法将文件上传到 Aspose 存储,或提供可公开访问的 URL。 - 创建转换请求 - 构建
ConvertDocumentRequest对象,将format设置为md,并可选地指定转换选项。 - 执行转换 - 调用 HtmlApi 类的
ConvertDocument方法(API 参考)。 - 下载 Markdown - 从响应流中获取生成的
.md文件,并将其本地保存或进一步处理。
PHP 中的 DOCX 转 MD 转换脚本 - 完整代码示例
以下脚本展示了使用 Aspose.HTML Cloud SDK for PHP 的完整端到端转换。
<?php
require 'vendor/autoload.php';
use Aspose\HTML\Cloud\Sdk\Api\HtmlApi;
use Aspose\HTML\Cloud\Sdk\Configuration;
use Aspose\HTML\Cloud\Sdk\Model\ConvertDocumentRequest;
// ---------------------------------------------------------------------
// 1. Configure SDK with your client credentials
// ---------------------------------------------------------------------
$config = new Configuration();
$config->setClientId('YOUR_CLIENT_ID');
$config->setClientSecret('YOUR_CLIENT_SECRET');
// ---------------------------------------------------------------------
// 2. Initialize HtmlApi
// ---------------------------------------------------------------------
$htmlApi = new HtmlApi($config);
// ---------------------------------------------------------------------
// 3. Prepare conversion request
// ---------------------------------------------------------------------
$inputFile = 'sample.docx'; // Path to your DOCX file
$outputFormat = 'md'; // Target format
$request = new ConvertDocumentRequest($inputFile, $outputFormat);
// ---------------------------------------------------------------------
// 4. Perform conversion
// ---------------------------------------------------------------------
try {
$response = $htmlApi->convertDocument($request);
$markdown = $response->getBody()->getContents();
// -----------------------------------------------------------------
// 5. Save the Markdown output
// -----------------------------------------------------------------
file_put_contents('output.md', $markdown);
echo "Conversion successful. Markdown saved to output.md\n";
} catch (Exception $e) {
echo "Error during conversion: " . $e->getMessage() . "\n";
}
?>
注意: 此代码示例演示了核心功能。在项目中使用之前,请确保更新文件路径(
sample.docx、output.md),验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。
使用 cURL 的基于云的 DOCX 转 Markdown 转换(通过 REST API)
您可以在不使用 SDK 的情况下,通过直接调用 Aspose.HTML Cloud REST 端点来实现相同的结果。
- 认证并获取访问令牌
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- 上传源文件 (如果未使用公共 URL)
curl -X PUT "https://api.aspose.cloud/v4.0/html/storage/file/sample.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
--data-binary "@sample.docx"
- 执行转换
curl -X POST "https://api.aspose.cloud/v4.0/html/convert/md" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputPath":"sample.docx","outputPath":"output.md"}'
- 下载 Markdown 输出
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.md" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" -o output.md
有关请求参数的更多详细信息,请参阅官方 API 文档。
在 PHP 中的安装和设置
- 通过 Composer 安装 SDK
composer require aspose-html-cloud - 下载最新发布 如果您更喜欢手动安装: Download package。
- 配置您的凭据 - 在
Configuration对象中设置client_id和client_secret(参见代码示例)。 - 通过运行简单的
php -r "echo phpinfo();"脚本来验证安装,以确保自动加载器工作正常。 - 为测试应用临时许可证:访问temporary license page并按照说明操作。
DOCX to MD Conversion in PHP with Aspose.HTML
Aspose.HTML 提供基于云的转换引擎,能够完整理解 DOCX 规范,包括复杂的布局、表格和嵌入的图像。通过将文档发送到该服务,您可以将处理工作卸载到可伸缩的后端,从而消除对笨重本地库的需求。
Aspose.HTML 功能
- 高保真渲染 - 在转换为 Markdown 时保留样式、表格和图像。
- 多种输出格式 - 支持 HTML、PDF、PNG、JPEG 和 Markdown (MD)。
- 云原生架构 - 自动扩展,并可通过 HTTPS 在防火墙后工作。
- 丰富的 API - 通过 REST 和 SDK 提供对转换选项的细粒度控制。
配置转换选项以获得最佳的 Markdown 输出
ConvertDocumentRequest 允许您微调 Markdown 结果:
| Option | Description |
|---|---|
preserveTableStructure |
保持表格行和列完整(默认:true)。 |
includeImages |
将图像嵌入为 base64 字符串或保持为外部文件。 |
headingLevelOffset |
调整标题级别以匹配文档层次结构。 |
removeStyles |
去除内联 CSS 以获得更清晰的纯文本输出。 |
在调用 convertDocument 之前,通过请求模型设置这些选项。
优化转换性能
- 批量处理多个文件 - 上传多个 DOCX 文件并在单个 API 调用中进行转换,以减少往返延迟。
- 重用访问令牌 - 令牌有效期为一小时;请缓存它们,而不是为每个文件请求新的令牌。
- 压缩输入文件 - 更小的负载可加快上传和处理速度。
- 并行请求 - 对于大批量工作负载,请在遵守服务速率限制的前提下发起并发转换请求。
DOCX 转 MD 转换的最佳实践
- Validate Input - 确保 DOCX 文件在上传前未损坏。
- Sanitize Markdown - 转换后,运行 linter 以修复任何格式异常。
- Store Results Securely - 将生成的
.md文件保存到受版本控制的仓库中。 - Monitor API Usage - 通过 Aspose Cloud 仪表板跟踪请求计数和响应时间,以避免限流。
结论
通过利用 Aspose.HTML Cloud SDK for PHP,您可以使用最少的代码可靠地将 DOCX 文件转换为 Markdown。该 SDK 处理复杂布局,保留关键格式,并提供可配置选项以获得干净的 MD 输出。对于生产部署,请从 Aspose 商店购买完整许可证;也可以通过 临时许可证页面 获取用于评估的临时许可证。将提供的代码示例集成到您的工作流中,享受在 PHP 应用程序中无缝的文档转换。
常见问题
在转换过程中如何处理大型 DOCX 文件?
首先将文件上传到 Aspose 存储,然后触发转换。云服务能够高效处理大型文件,您可以通过 API 监控进度。
我可以在一次请求中将多个 DOCX 文件转换为 Markdown 吗?
是的。使用批量转换端点或使用 SDK 循环处理文件,复用相同的访问令牌以提升性能。
如果我需要将图像内联而不是外部文件怎么办?
将 includeImages 选项设置为 true,并选择 embedImages 模式。SDK 将把图像作为 base64 字符串直接嵌入到 Markdown 中。
SDK 是否兼容 PHP 8.x?
Aspose.HTML Cloud SDK for PHP 支持 PHP 7.4 及更高版本,包括 PHP 8.x。确保已启用所需的扩展(cURL、JSON)。