在 PHP 中将 HTML 转换为 PNG 是创建缩略图、电子邮件预览和报告的常见需求。 Aspose.HTML Cloud SDK for PHP 提供了一个强大的库,使服务器端转换变得简单直观。在本指南中,您将学习如何设置 SDK、配置转换选项、运行完整的代码示例,以及使用 cURL REST 调用执行相同任务以实现自动化工作流。
PHP 中的 HTML 转 PNG 转换 - 步骤指南
- 通过 Composer 安装 SDK: 使用官方 Composer 命令将库添加到您的项目中。
composer require aspose-html-cloud
- 配置您的 Aspose Cloud 凭据: 创建一个
Configuration对象并设置您的AppSid和AppKey。
$config = new Configuration();
$config->setAppSid('YOUR_APP_SID');
$config->setAppKey('YOUR_APP_KEY');
- 初始化 Convert API:使用配置对象实例化
ConvertApi。
$convertApi = new ConvertApi($config);
- 设置转换选项:使用
ConvertOptions定义输出格式、尺寸、质量和背景颜色。
$options = new ConvertOptions();
$options->setOutputFormat('png');
$options->setWidth(1024);
$options->setHeight(0); // Preserve aspect ratio
$options->setQuality(90);
$options->setBackgroundColor('#FFFFFF');
- 执行转换:调用
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.html、sample.png等)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。
使用 cURL 和 REST API 将 HTML 转换为 PNG
以下 cURL 命令展示了如何使用 Aspose.HTML Cloud REST API 实现相同的 HTML 转 PNG 转换。
- 获取访问令牌(将占位符替换为您的客户端凭据)。
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"
- 上传源 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"
- 请求转换为 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"}'
- 下载生成的 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。
- 拥有有效的
AppSid和AppKey的 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实例,并在每次迭代中调整输入和输出路径。 -
商业项目需要什么许可?
生产环境需要付费许可证。您可以在产品页面查看定价,并从临时许可证页面获取临时评估许可证。