Вывод содержимого PDF файла — различия между версиями
Mad grant (обсуждение | вклад) |
Denisov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии | + | '''Актуально для версии 20''' |
− | На многих сайтах может возникнуть потребность в выводе содержимого PDF файла непосредственно на страницу. Это может быть удобно интернет магазинам для вывода, к примеру, инструкции от устройства, которые как правило хранятся в PDF формате. Это позволит посмотреть файл не скачивая его. Вывод содержимого файла на страницу осуществляется кодом: | + | == Задача == |
+ | На многих сайтах может возникнуть потребность в выводе содержимого PDF файла непосредственно на страницу. Это может быть удобно интернет магазинам для вывода, к примеру, инструкции от устройства, которые как правило хранятся в PDF формате. Это позволит посмотреть файл не скачивая его. | ||
+ | |||
+ | == Решение == | ||
+ | Вывод содержимого файла на страницу осуществляется кодом: | ||
<source lang="xml"> | <source lang="xml"> | ||
<object data="http://путь к файлу" type="application/pdf" width="ширина" height="высота"> | <object data="http://путь к файлу" type="application/pdf" width="ширина" height="высота"> |
Текущая версия на 15:24, 31 октября 2019
Актуально для версии 20
Задача
На многих сайтах может возникнуть потребность в выводе содержимого PDF файла непосредственно на страницу. Это может быть удобно интернет магазинам для вывода, к примеру, инструкции от устройства, которые как правило хранятся в PDF формате. Это позволит посмотреть файл не скачивая его.
Решение
Вывод содержимого файла на страницу осуществляется кодом:
<object data="http://путь к файлу" type="application/pdf" width="ширина" height="высота">
alt: <a href="http://путь к файлу"></a>
</object>
Для того чтобы не пришлось вставлять код для каждого товара в отдельности, можно написать нехитрый макрос, который будет выводить содержимое файла хранящегося в поле типа "Файл".
public function pdf_view($field,$width,$height){
$current_page_id = cmsController::getInstance()->getCurrentElementId();
$hierarchy = umiHierarchy::getInstance();
$page = $hierarchy->getElement($current_page_id);
if (!$page instanceof umiHierarchyElement) {
throw new publicException(getLabel('error-page-does-not-exist'));
}
$pdf_source=$page->getValue($field);
$pdf_code="<object data=\"$pdf_source\" type=\"application/pdf\" width=\"$width\" height=\"$height\">alt: <a href=\"$pdf_source\"></a></object>";
return $pdf_code;
}
В качестве первого параметра, макрос будет применять идентификатор поля типа "Файл", в котором находится нужный файл, второй и третий параметр будут задавать ширину и высоту выводимой области. Благодаря атрибуту alt заданному в выводимом коде, в браузерах, которые не поддерживают подобный функционал, будет выводится ссылка на скачивание файла.