Генерация HTML в PNG с помощью PHP — распространённая задача для создания миниатюр, предварительных просмотров писем и отчетов. Aspose.HTML Cloud SDK for PHP предоставляет мощную библиотеку, упрощающую сервер‑сайд конвертацию. В этом руководстве вы узнаете, как настроить SDK, сконфигурировать параметры конвертации, запустить полный пример кода и выполнить ту же задачу с помощью cURL REST‑запросов для автоматизированных рабочих процессов.

Преобразование HTML в PNG в PHP - Пошаговое руководство

  1. Установите SDK через Composer: Используйте официальную команду Composer, чтобы добавить библиотеку в ваш проект.
composer require aspose-html-cloud
  1. Настройте свои учетные данные Aspose Cloud: Создайте объект Configuration и задайте свои AppSid и AppKey.
$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 — полный пример кода

Этот пример демонстрирует, как преобразовать локальный HTML‑файл в изображение PNG с использованием Aspose.HTML Cloud SDK for PHP.

<?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 и т.д.), чтобы они соответствовали реальному расположению ваших файлов, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.

Преобразование HTML в PNG с помощью cURL и REST API

Следующие команды cURL показывают, как выполнить ту же конверсию HTML в PNG с использованием Aspose.HTML Cloud REST API.

  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 установлен на вашей машине разработки.
  • Учётная запись Aspose Cloud с действительными AppSid и AppKey.

Установите SDK с помощью Composer:

composer require aspose-html-cloud

Вы можете загрузить последнюю версию пакета со страницы официального релиза: Aspose.HTML Cloud SDK for PHP Release.

Настройте свои учетные данные, как показано в разделе шагов, и вы будете готовы начать преобразование HTML в PNG.

Заключение

Преобразование HTML в PNG в PHP становится простым с помощью Aspose.HTML Cloud SDK for PHP. Библиотека обрабатывает рендеринг, масштабирование и оптимизацию изображений на стороне сервера, устраняя необходимость в браузере или внешних инструментах. Следуя пошаговому руководству, вы можете интегрировать генерацию PNG высокого качества в любое PHP‑приложение, будь то создание миниатюр, рендеринг электронных писем или генерация отчетов. Не забудьте получить соответствующую лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а временную лицензию можно получить со страницы временной лицензии во время оценки библиотеки.

Часто задаваемые вопросы

  • Как работает HTML в PNG в PHP без браузера?
    Aspose.HTML Cloud SDK for PHP рендерит HTML, используя собственный движок рендеринга на сервере, поэтому браузер или безголовый Chrome не требуются.

  • Могу ли я управлять размерами и качеством изображения?
    Да. Используйте класс ConvertOptions, чтобы задать ширину, высоту, качество (0‑100) и цвет фона перед вызовом Convert API.

  • Можно ли пакетно конвертировать несколько HTML‑файлов в PNG?
    Конечно. Пройдите по списку файлов, повторно используйте тот же экземпляр ConvertApi и скорректируйте пути входных и выходных файлов для каждой итерации.

  • Какое лицензирование требуется для коммерческих проектов?
    Для продакшн‑использования требуется платная лицензия. Вы можете посмотреть цены на странице продукта и получить временную оценочную лицензию со страницы временной лицензии.

Читать далее