2017-01-20 3 views
0

У меня есть этот код в шаблоне Smarty, который генерирует ссылки на файлы (которые будут в формате PDF):Создание эскизов изображений для PDF в Smarty

{foreach from=$attachments_data item="file"} 
     <p class="attachment__item">   
     {$file.description} ({$file.filename}, {$file.filesize|formatfilesize nofilter}) [<a class="attachment__a cm-no-ajax" href="{"attachments.getfile?attachment_id=`$file.attachment_id`"|fn_url}">{__("download")}</a>] 
     </p> 
    {/foreach} 

я нашел в другом вопросе способ использования PHP для генерации Предварительный просмотр изображения из PDF.

<?php 
$im = new imagick('file.pdf[0]'); 
$im->setImageFormat('jpg'); 
header('Content-Type: image/jpeg'); 
echo $im; 
?> 

Есть ли способ, которым я могу преобразовать этот PHP в Smarty для работы с файлом шаблона CS-Cart? или есть ли другой способ сделать это?

+0

Просто обработайте URL-адрес PHP, который генерирует ваше изображение, как и обычный URL-адрес изображения, который вы использовали бы в теге . – Scuzzy

+0

@Scuzzy Я не думаю, что вы понимаете вопрос. Мне нужен эквивалент Smarty этого скрипта PHP. – user500665

+0

Нет, я понимаю, но вы не использовали бы «smarty» для возврата вашего бинарного изображения/jpeg-содержимого. Вы либо сгенерировали бы их в PHP, а затем записывали их в папку для статического чтения или динамически отображали из PHP-скрипта. – Scuzzy

ответ

1

Мое предпочтение было бы кэшировать их в папку для временной точки статического чтения, однако, вы можете сделать это по требованию с той частью PHP вы предоставили довольно легко

ПОЖАЛУЙСТА РЕАЛИЗАЦИЮ Better File System Security

pdf_to_image.php

<?php 

// you must create better file system security than this 
$filename = 'directory_with_pdfs' . DIRECTORY_SEPERATOR . basename($_GET['filename']); 
if(file_exists($filename) === true) 
{ 
    $im = new imagick($filename . '[0]'); 
    $im->setImageFormat('jpg'); 
    header('Content-Type: image/jpeg'); 
    header('Content-Disposition: attachment; filename="'.basename($filename).'"'); 
    echo $im; 
} 
else 
{ 
    http_response_code(404); 
} 

Smarty Синтаксис

{foreach from=$attachments_data item="file"} 
    <img src="pdf_to_image.php?filename={$file.filename|urlencode}"> 
{/foreach} 
+0

Ах, ладно, спасибо за пример. Когда я пытаюсь это сделать, img src остается pdf_to_image.php ... – user500665

+0

Я не могу помочь дальше этого простого подхода, что я рекомендую, создает общедоступный каталог с доступом для записи и создает миниатюры jpg, так как ваш скрипт если они не существуют, а затем ссылаются на эти URL через ваш смарт-шаблон. – Scuzzy

Смежные вопросы