Вывод содержимого PDF файла — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 1: Строка 1:
'''Актуально для версии 2.9'''
+
'''Актуально для версии 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 заданному в выводимом коде, в браузерах, которые не поддерживают подобный функционал, будет выводится ссылка на скачивание файла.