Создание версии для печати

Версия для печати с использованием @media

Макет сайта содержит лишнюю информацию — навигационные элементы, рекламные блоки, неправильные цвета и т.п. Стилизовать макет для печатной версии можно с использованием правила @media. Внесите следующие правила в конец CSS-стилей макета:

@media print {
    .hidden-print { display: none }
    * { background:#FFF !important; color:#000 !important }
    @page { margin: 1cm }
    img { max-width: 100% !important }
    a[href^=http]:after { content:" <" attr(href) "> " }
}

Для блоков, которые должны быть скрыты, укажите дополнительный класс hidden-print, например:

<div class="myclass hidden-print">
контент блока
</div>

Версия для печати на отдельной странице

Создайте отдельный макет, внесите в его код:

<!DOCTYPE HTML>
<html>
<head>
<title><?php Core_Page::instance()->showTitle()?></title>
<meta name="description" content="<?php Core_Page::instance()->showDescription()?>" />
<meta name="keywords" content="<?php Core_Page::instance()->showKeywords()?>" />
<meta content="text/html; charset=<?php echo SITE_CODING?>" http-equiv="Content-Type" />
<?php Core_Page::instance()->showCss()?>
</head>
<body>
    <?php
    Core_Page::instance()->execute();
    ?>
    <script type="text/javascript">
    window.print();
    </script>
</body>
</html>

и CSS:

body {
    background: #FFF;
    font-family: "Times New Roman", Georgia, Serif;
}

В самое начало макета, для которого требуется сделать выводе версии для печати, добавьте код:

<?php
// Проверяем, если нажали ссылку "Печать"
if(Core_Array::getGet('action') && Core_Array::getGet('action') == "print")
{
    /* Устанавливаем макет для текущей страницы.
    Значение 10 замените на ID макета, созданного выше */
    Core_Entity::factory('Template', 10)->execute();
    
    // Вывод версии для печати закончен
    return;
}
?>

В макете добавьте кнопку для печати:

<a href="./?action=print">Версия для печати</a>

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.