Преобразование слайдов PowerPoint в PNG на PHP
О преобразовании PowerPoint в PNG
Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но всё равно очень популярен.
Случай использования: Когда у вас сложное изображение и размер не имеет значения, PNG — лучшее изображение, чем JPEG.
Tip
Возможно, вам стоит ознакомиться с бесплатными конвертерами Aspose PowerPoint в PNG: PPTX to PNG и PPT to PNG. Они являются живой реализацией процесса, описанного на этой странице.Преобразовать PowerPoint в PNG
Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите объект слайда из коллекции Presentation.getSlides() под интерфейсом ISlide.
- Используйте метод ISlide.getImage() чтобы получить миниатюру для каждого слайда.
- Вызовите метод [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/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();
}
}
FAQ
Как я могу экспортировать только конкретную форму (например, диаграмму или изображение), а не весь слайд?
Aspose.Slides поддерживает создание миниатюр для отдельных фигур; вы можете отрисовать форму в PNG‑изображение.
Поддерживается ли параллельное преобразование на сервере?
Да, но не делитесь одним экземпляром презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса.
Каковы ограничения пробной версии при экспорте в PNG?
Режим оценки добавляет водяной знак к создаваемым изображениями и накладывает прочие ограничения, пока не будет применена лицензия.