DOCX 文件转换为 Markdown 是开发者常见的需求,因为他们希望拥有轻量级、适合版本控制的文档。 Aspose.HTML Cloud SDK for PHP 使您只需几次 API 调用即可在 PHP 中执行此 DOCX 到 MD 的转换。在本指南中,我们将逐步介绍所需的设置,演示完整的代码示例,并展示如何微调输出以获得干净的 Markdown。您还将看到如何使用 cURL 通过 REST 调用相同的转换,以适应云原生场景。

将 DOCX 转换为 MD 的 PHP 步骤

  1. 获取访问令牌 - 使用您的 Aspose Cloud 客户端 ID 和密钥,通过 OAuth 端点请求临时访问令牌。
  2. 上传源 DOCX - 可以使用 UploadFile 方法将文件上传到 Aspose 存储,或提供可公开访问的 URL。
  3. 创建转换请求 - 构建 ConvertDocumentRequest 对象,将 format 设置为 md,并可选地指定转换选项。
  4. 执行转换 - 调用 HtmlApi 类的 ConvertDocument 方法(API 参考)。
  5. 下载 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.docxoutput.md),验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 的基于云的 DOCX 转 Markdown 转换(通过 REST API)

您可以在不使用 SDK 的情况下,通过直接调用 Aspose.HTML Cloud REST 端点来实现相同的结果。

  1. 认证并获取访问令牌
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"
  1. 上传源文件 (如果未使用公共 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"
  1. 执行转换
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"}'
  1. 下载 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 中的安装和设置

  1. 通过 Composer 安装 SDK
    composer require aspose-html-cloud
    
  2. 下载最新发布 如果您更喜欢手动安装: Download package
  3. 配置您的凭据 - 在 Configuration 对象中设置 client_idclient_secret(参见代码示例)。
  4. 通过运行简单的 php -r "echo phpinfo();" 脚本来验证安装,以确保自动加载器工作正常。
  5. 为测试应用临时许可证:访问temporary license page并按照说明操作。

DOCX to MD Conversion in PHP with Aspose.HTML

Aspose.HTML 提供基于云的转换引擎,能够完整理解 DOCX 规范,包括复杂的布局、表格和嵌入的图像。通过将文档发送到该服务,您可以将处理工作卸载到可伸缩的后端,从而消除对笨重本地库的需求。

Aspose.HTML 功能

  • 高保真渲染 - 在转换为 Markdown 时保留样式、表格和图像。
  • 多种输出格式 - 支持 HTMLPDFPNGJPEG 和 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)。

阅读更多