Вопросы и ответы

Если Вы установили DEMO-версию модуля и демонстрационный режим истек, но Вы не успели попробовать модуль в работе, сообщите об этом нам, с указанием адреса сайта и владельца лицензии (как это указано в админке сайта на странице обновлений). В общем случае, для сброса демо-режима нужно выполнить следующие указания:

  1. создать рез. копию сайта, хотя бы базы данных,

  2. деинсталлировать модуль,

  3. стереть данный модуль с сайта (соотв. опция доступна в списке модулей),

  4. выполнить SQL-запрос (в админке на соотв. странице в разделе "Инструменты": Административный раздел - Настройки - Инструменты - SQL-запрос):

    DELETE FROM `b_option` WHERE `MODULE_ID`='webdebug.save2pdf';

  5. сообщить нам (см. выше) для удаления нами упоминаний об использовании демо на Вашем сайте,

  6. повторно установить модуль из Маркетплейс .

Все просто: сначала измените значение параметров в настройках модуля, затем перейдите в настройки сайта, и в секции "Шаблон" (снизу) измените старое значение на новое.
Поле "Имя файла" (используемое при автоматическом именовании файла) разрешает использование следующих макросов:
#SITE_NAME# - имя сайта (берется из настроек текущего сайта),
#SERVER_NAME# - URL сайта (берется из настроек текущего сайта),
#EMAIL# - e-mail по умолчанию (берется из настроек текущего сайта),
#SITE_ID# - ID текущего сайта,
#LANGUAGE_ID# - ID текущего языка,
#SITE_CHARSET# - текущая кодировка,
#TITLE# - заголовок окна браузера,
#PAGE_TITLE# - заголовок страницы (h1),
#USER_ID# - ID пользователя,
#USER_LOGIN# - логин пользователя,
#USER_NAME# - имя пользователя.
Исключения нужны для того, чтобы на некоторых страницах не выводить кнопки сохранения в PDF/DOC.
Исключения задаются регулярными выражениями, по тем же правилам, что и обработка адресов в настройках Битрикс.
Например, можно запретить кнопки сохранения в PDF/DOC для всего раздела /personal/, для этого добавьте строку:
#^/personal/.*?#
На одной строке должно располагаться только одно исключение.

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

<?$APPLICATION->IncludeComponent(
	"webdebug:save2pdf.controls",
	"",
	Array(
		"PDF" => "Y",
		"DOC" => "Y",
		"PRINT" => "Y",
		"NEW_WINDOW" => "N"
	),
false
);?>
При необходимости измените настройки компонента.

На страницах, где это необходимо, можно скрывать контент, который не должен попадать в PDF/DOC/печать, для этого существуют константы WD_PDF_MODE, WD_DOC_MODE, WD_PRINT_MODE, которые, будучи установленными и заданными как true, указывают что вывод страницы идет в соответствующем режиме.

Например, если не нужно в PDF и DOC выводить FLASH-вставку, можно её закрыть, для этого следует проверять константы WD_PDF_MODE и WD_DOC_MODE:

<?if((!defined("WD_PDF_MODE")||WD_PDF_MODE!==true) && (!defined("WD_DOC_MODE")||WD_DOC_MODE!==true)):?>
	<p>Контент, не попадающий в PDF и DOC</p>
<?endif?>
Причина появления данной ошибки в выходном PDF-документе заключается в том, что для сохранения страницы в PDF используется специальный (отдельный) шаблон сайта. Поэтому, если у вас на странице есть компоненты, которые используют шаблоны, размещенные только в папке данного сайта, то при выводе их в другом шаблоне всегда будет выводиться данная ошибка.
Возможные решения:
  1. запретить попадание данной части контента в выводной PDF-файл (с помощью специальных констант, смотрите в других ответах на данной странице),
  2. скопировать шаблон (при поиске которого выдается ошибка) в шаблон "webdebug_save2pdf", либо скопировать/перенести шаблон данного компонента в шаблон сайта по умолчанию (.default).

Подробнее:

Суть проблемы в том, что в шаблоне сайта есть обычно много шаблончиков компонентов, например, для списка новостей, товаров, корзины и т.п. Например, есть используемый в качестве основного шаблон сайта "main", в нем, в числе прочего, шаблон компонента списка новостей (шаблон "my_news" компонента bitrix:news.list). Если на этот сайт установить наш модуль, то вылезает ошибка типа "Cannot find 'my_news' template with page ''", которая говорит о том, что в шаблоне сайта, используемого для формирования PDF, не доступен шаблон "my_news". Поэтому решения следующие:

Первый вариант - в шаблоне сайта webdebug_save2pdf создать папку /components/bitrix/news.list/ и в нее поместить папку с шаблоном my_news, т.е. после этого в системе должен быть файл: /bitrix/templates/webdebug_save2pdf/components/bitrix/news.list/my_news/template.php (и, скорее всего, другие файлы и папки рядом с указанным). Это решение наилучшее, т.к. при прочих преимуществах позволяет поднастроить шаблон именно для PDF, что необходимо в большинстве случаев.

Второй вариант - перенести шаблон указанного компонента из шаблона сайта "main" в шаблон сайта ".default" - тогда он будет доступен во всех шаблонах сайтов.
Если Вам нужно добавить в выходной файл свою информацию (напр., телефон и другие контактные данные, логотип, шапку или подвал страницы), для этого отредактируйте шаблон сайта "webdebug_save2pdf". При этом учитывайте, что в Вашем распоряжении константы, указывающие в каком режиме работает текущая страница (генерация PDF, генерация DOC, версия для печати), подробности - в других ответах на данной странице.

Пример реализации контента, который «скрывается» от PDF и DOC:

<?if((!defined("WD_PDF_MODE")||WD_PDF_MODE!==true) && (!defined("WD_DOC_MODE")||WD_DOC_MODE!==true)):?>
	<p>Параграф, который не сохраняется в PDF.<p>
	<?$APPLICATION->IncludeComponent("bitrix:catalog.section","",array());?>
<?endif?>
Проблема в модуле. Так получается потому что ссылки компонента webdebug:save2pdf.controls перенаправляют на URL без первоначальных параметров. Приносим извинения за ошибку с нашей стороны.
Указанная проблема решена в обновлении 1.0.4. После обновления обязательно нужно учесть тот факт, что если на Вашем сайте для указанного компонента используется встроенный шаблон (т.е. в настройках этого компонента указано, что шаблон - "Встроенный"), то ручной доработки не требуется. В противном случае следует отредактировать шаблон компонента и сделать три замены в атрибутах ссылок:

href="?<?=$arResult["GET_VARS"]["PRINT"]?>=Y"
заменить на
href="<?=$arResult["PRINT_URL"]?>"

href="?<?=$arResult["GET_VARS"]["EXPORT"]?>=Y&<?=$arResult["GET_VARS"]["DOC"]?>=Y"
заменить на
href="<?=$arResult["DOC_URL"]?>"

href="?<?=$arResult["GET_VARS"]["EXPORT"]?>=Y&<?=$arResult["GET_VARS"]["PDF"]?>=Y"
заменить на
href="<?=$arResult["PDF_URL"]?>"

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

define("WD_SAVE2PDF_TITLE", "my page title");

Имейте ввиду, что кириллические символы (символы русского языка) корректно сохраняются пока только для DOC-файлов.

Да, можно, это доступно в модуле, начиная с версии 2.0.0. Небольшой пример:

$HTML = "Текст для сохранения в PDF!";
CModule::IncludeModule('webdebug.save2pdf');
WD_Save2PDF::SaveHTMLToPDF($HTML, 'file.pdf');

Да, можно. Но имейте ввиду, что очередное обновление перезапишет шаблон на шаблон по умолчанию, т.е. все изменения будут потеряны.

Чтобы избежать этого, создайте копию шаблона «webdebug_save2pdf», и в нем делайте все нужные правки. В настройках сайта не забудьте указать, что для условия wd_export=Y должен отображаться скопированный шаблон.
Чтобы изменить параметры выходного PDF-документа, необходимо создать обработчик следующего содержания:
AddEventHandler('webdebug.save2pdf','OnBeforePDFGenerate','PDFChangeOrientation');
function PDFChangeOrientation(&$arParams) {
        $arParams['PDF_PAGE_ORIENTATION'] = 'L';
}
в файл:
/bitrix/php_interface/init.php

Просмотреть массив изменяемых параметров можно с помощью следующего кода:
CModule::IncludeModule('webdebug.save2pdf');
$arParams = WD_Save2PDF::GetParams();
print '<pre>'.print_r($arParams,true).'</pre>';
Учтите, что большинство указанных параметров применимо только к PDF-библиотеке TCPDF (см. настройки нашего модуля у себя на сайте).

В таком случае вариантов проблем может быть несколько:
  1. проблема с кодировкой - в HTML для создания PDF не должно быть символов в разных кодировках,
  2. слишком сложный контент, или слишком много данных - попробуйте упростить HTML для преобразования в PDF, используя отдельные шаблоны компонентов для шаблона сайта «webdebug.save2pdf», который и используется для сохранения в PDF,
  3. проблема с папкой «cache» - если ее нет, создайте ее в /bitrix/modules/webdebug.save2pdf/include/tcpdf_******[звездочки - указание версии, может быть, например, tcpdf_6_0_099]/cache/. Если она есть - проверьте права доступа к ней.

Для того, чтобы в PDF добавить разрыв страницы, попробуйте в HTML использовать конструкцию:

<p style="page-break-before:always">&emsp;</p>






По всем вопросам обращайтесь по нашим контактным данным:

Наверх