PHP 中将 HTML 转换为 PNG 是创建缩略图、电子邮件预览和报告的常见需求。 Aspose.HTML Cloud SDK for PHP 提供了一个强大的库,使服务器端转换变得简单直观。在本指南中,您将学习如何设置 SDK、配置转换选项、运行完整的代码示例,以及使用 cURL REST 调用执行相同任务以实现自动化工作流。

PHP 中的 HTML 转 PNG 转换 - 步骤指南

  1. 通过 Composer 安装 SDK: 使用官方 Composer 命令将库添加到您的项目中。
composer require aspose-html-cloud
  1. 配置您的 Aspose Cloud 凭据: 创建一个 Configuration 对象并设置您的 AppSidAppKey
$config = new Configuration();
$config->setAppSid('YOUR_APP_SID');
$config->setAppKey('YOUR_APP_KEY');
  1. 初始化 Convert API:使用配置对象实例化 ConvertApi
$convertApi = new ConvertApi($config);
  1. 设置转换选项:使用 ConvertOptions 定义输出格式、尺寸、质量和背景颜色。
$options = new ConvertOptions();
$options->setOutputFormat('png');
$options->setWidth(1024);
$options->setHeight(0);               // Preserve aspect ratio
$options->setQuality(90);
$options->setBackgroundColor('#FFFFFF');
  1. 执行转换:调用 convertLocal,并提供源 HTML 文件和目标 PNG 路径。
try {
    $convertApi->convertLocal($inputHtmlPath, $outputPngPath, $options);
    echo "Conversion successful: {$outputPngPath}\n";
} catch (Exception $e) {
    echo "Conversion failed: " . $e->getMessage() . "\n";
}

有关详细的类和方法信息,请参阅 API 参考

HTML 转 PNG(PHP)- 完整代码示例

此示例演示如何使用 Aspose.HTML Cloud SDK for PHP 将本地 HTML 文件转换为 PNG 图像。

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

use Aspose\HTML\Cloud\Configuration;
use Aspose\HTML\Cloud\Api\ConvertApi;
use Aspose\HTML\Cloud\Model\ConvertOptions;

// -----------------------------------------------------------------------------
// Configuration – replace with your actual Aspose Cloud credentials
// -----------------------------------------------------------------------------
$config = new Configuration();
$config->setAppSid('YOUR_APP_SID');
$config->setAppKey('YOUR_APP_KEY');

// -----------------------------------------------------------------------------
// Initialize the Convert API
// -----------------------------------------------------------------------------
$convertApi = new ConvertApi($config);

// -----------------------------------------------------------------------------
// Define source HTML and destination PNG paths (generic, adjust as needed)
// -----------------------------------------------------------------------------
$inputHtmlPath  = __DIR__ . '/sample.html';
$outputPngPath  = __DIR__ . '/sample.png';

// -----------------------------------------------------------------------------
// Set conversion options – adjust width/height, quality, and background color
// -----------------------------------------------------------------------------
$options = new ConvertOptions();
$options->setOutputFormat('png');      // Target format
$options->setWidth(1024);              // Desired width (pixels)
$options->setHeight(0);                // Height 0 preserves aspect ratio
$options->setQuality(90);              // PNG compression level (0‑100)
$options->setBackgroundColor('#FFFFFF'); // Optional background for transparent pages

// -----------------------------------------------------------------------------
// Perform the conversion
// -----------------------------------------------------------------------------
try {
    $convertApi->convertLocal($inputHtmlPath, $outputPngPath, $options);
    echo "Conversion successful: {$outputPngPath}\n";
} catch (Exception $e) {
    echo "Conversion failed: " . $e->getMessage() . "\n";
}

// -----------------------------------------------------------------------------
// No explicit cleanup required – SDK handles temporary resources internally
// -----------------------------------------------------------------------------
?>

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新文件路径(sample.htmlsample.png 等)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 和 REST API 将 HTML 转换为 PNG

以下 cURL 命令展示了如何使用 Aspose.HTML Cloud REST API 实现相同的 HTML 转 PNG 转换。

  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. 上传源 HTML 文件 到存储。
curl -X PUT "https://api.aspose.cloud/v4.0/html/storage/file/sample.html" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: text/html" \
     --data-binary "@sample.html"
  1. 请求转换为 PNG
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?format=png&width=1024&quality=90&backgroundColor=%23FFFFFF" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"sample.html","outputPath":"sample.png"}'
  1. 下载生成的 PNG 文件
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/sample.png" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o sample.png

有关完整的参数列表和其他选项,请参阅官方 API 文档

前置条件和 Aspose.HTML Cloud SDK for PHP 的设置

开始之前,请确保您拥有:

  • 已安装 PHP 7.4 或更高版本。
  • 已在开发机器上安装 Composer。
  • 拥有有效的 AppSidAppKey 的 Aspose Cloud 账户。

使用 Composer 安装 SDK:

composer require aspose-html-cloud

您可以从官方发布页面下载最新的包: Aspose.HTML Cloud SDK for PHP Release.

按照步骤部分所示配置您的凭据,然后您就可以开始将 HTML 转换为 PNG。

结论

在 PHP 中使用 Aspose.HTML Cloud SDK for PHP 将 HTML 转换为 PNG 变得轻而易举。该库在服务器端处理渲染、缩放和图像优化,无需 浏览器 或外部工具。按照分步指南操作,您可以在任何 PHP 应用程序中集成高质量的 PNG 生成,无论是用于缩略图创建、电子邮件渲染还是报告生成。请记得为生产环境获取合适的许可证;产品页面上提供了定价详情,您在评估库时可以从 临时许可证页面 获取临时许可证。

FAQs

  • HTML 转 PNG 在 PHP 中如何在没有浏览器的情况下工作?
    Aspose.HTML Cloud SDK for PHP 在服务器上使用其自有渲染引擎渲染 HTML,因此不需要浏览器或无头 Chrome。

  • 我可以控制图像的尺寸和质量吗?
    是的。使用 ConvertOptions 类在调用 Convert API 之前设置宽度、高度、质量(0‑100)和背景颜色。

  • 是否可以批量将多个 HTML 文件转换为 PNG?
    完全可以。遍历文件列表,复用同一个 ConvertApi 实例,并在每次迭代中调整输入和输出路径。

  • 商业项目需要什么许可?
    生产环境需要付费许可证。您可以在产品页面查看定价,并从临时许可证页面获取临时评估许可证。

阅读更多