Конвертировать слайды PowerPoint в PNG в PHP
О конвертации PowerPoint в PNG
Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но он всё ещё очень популярен.
Случай использования: Если у вас сложное изображение и размер не имеет значения, PNG — лучший формат изображения, чем JPEG.
Tip
Вы можете ознакомиться с бесплатными конвертерами PowerPoint в PNG от Aspose: PPTX to PNG и PPT to PNG. Это живой пример процесса, описанного на этой странице.Конвертация PowerPoint в PNG
Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите объект слайда из коллекции Presentation.getSlides() класса Slide.
- Вызовите метод Slide.getImage(), чтобы получить миниатюру каждого слайда.
- Используйте метод IImage.save(String formatName, int imageFormat) для сохранения миниатюры слайда в формате PNG.
Этот PHP‑код демонстрирует, как преобразовать презентацию PowerPoint в PNG:
$pres = new Presentation("pres.pptx");
try {
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage();
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Конвертация PowerPoint в PNG с пользовательскими размерами
Если вы хотите получить PNG‑файлы определённого масштаба, можете установить значения desiredX и desiredY, которые определяют размеры получаемой миниатюры.
Этот код демонстрирует описанную операцию:
$pres = new Presentation("pres.pptx");
try {
$scaleX = 2.0;
$scaleY = 2.0;
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage($scaleX, $scaleY);
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Конвертация PowerPoint в PNG с пользовательским размером
Если вы хотите получить PNG‑файлы определённого размера, можете передать желаемые параметры width и height для ImageSize.
Этот код показывает, как конвертировать PowerPoint в PNG, задав размер изображений:
$pres = new Presentation("pres.pptx");
try {
$size = new Java("java.awt.Dimension", 960, 720);
for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
$slide = $pres->getSlides()->get_Item($index);
$slideImage = $slide->getImage($size);
try {
$slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
} finally {
if (!java_is_null($slideImage)) {
$slideImage->dispose();
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Вопросы и ответы
Как экспортировать только определённую форму (например, диаграмму или изображение), а не весь слайд?
Aspose.Slides поддерживает создание миниатюр отдельных фигур; вы можете отрисовать форму в PNG‑изображение.
Поддерживается ли параллельная конвертация на сервере?
Да, но не следует делить один экземпляр презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса.
Каковы ограничения пробной версии при экспорте в PNG?
В режиме оценки к выходным изображениям добавляется водяной знак и применяются другие ограничения, пока не будет применена лицензия.