Миниатюры ассетов документов (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
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.