Перейти к основному содержимому

Миниатюры ассетов документов (PDF, DOCX, ODF, ...)

Этот функционал позволяет создавать миниатюры изображений практически любого формата документов, таких как doc(x), ppt(x), pdf, xls(x), odt, ods, odp и многих других.

Конечно, вы можете использовать существующие конфигурации миниатюр изображений для создания миниатюр по вашему выбору.

Важно
Пожалуйста, имейте в виду, что обработка эскизов документов выполняется асинхронно в рамках maintenance job, в очереди обмена сообщениями pimcore_asset_update

Примеры
$asset = Asset::getById(123);  
if($asset instanceof Asset\Document) {

// получить миниатюру первой страницы, измененную в соответствии с конфигурацией "myThumbnail"
echo $asset->getImageThumbnail("myThumbnail");


// получить миниатюру для третьей страницы (см. второй параметр), используя динамическую конфигурацию
echo $asset->getImageThumbnail(["width" => 230, "contain" => true], 2);


// получить URL-адрес миниатюр для всех страниц, но не создавать их сразу (см. третий параметр) - затем миниатюры будут созданы по запросу
$thumbnailUrls = [];
for($i=1; $i<=$asset->getPageCount(); $i++) {
$thumbnailUrls[] = $asset->getImageThumbnail("myThumbnail", $i, true);
}

}

Для этой функции требуется Ghostscript и как минимум Gotenberg или LibreOffice должны быть установлены на сервере.

Чтобы создать функцию, генерирующую миниатюру для списка ассетов:

Рекомендуется использовать именованные миниатюры для целей кэширования.

   $list = new Asset\Listing();  
$assets = $list->getAssets();
foreach ($assets as $asset) {
echo match (true) {
$asset instanceof Asset\Image => $asset->getThumbnail('myThumbnail')?->getPath(),
$asset instanceof Asset\Document => $asset->getImageThumbnail('myThumbnail')?->getPath(),
default => '',
};
}

Отключение создания миниатюр для ассетов документов

Если вы хотите полностью отключить создание миниатюр для основных документов, это можно сделать с помощью следующей конфигурации:

pimcore:  
assets:
document:
thumbnails:
enabled: false


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.