Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Кнопка для отправки на печать карточки товара, без лишних данных

Просмотров: 2845 Задача: реализовать возможность печати карточки товара, но так что бы в ней не было не нужных данных: шапки и футера сайта, кнопок покупки и прочих данных, не важных на распечатанной странице.
Кнопка для отправки на печать карточки товара, без лишних данных

Кнопка для печати страницы сайта целиком

Что бы отправить страницу сайта на печать, достаточно добавить кнопку вида

<button onclick="window.print();return false;">
	Распечатать
</button>

Но тогда, на печать отправится вся страница сайта, с шапкой футером и прочими данными, которые скорее всего не важны на листе бумаги.

Отправить на печать конкретный div блок

Что бы распечатать только содержимое карточки товара: нужно добавить javascript в подключаемый файл или в файл component_epilog.php

function printDiv(divId) {
    var printContents = document.getElementById(divId).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}

Далее, нужно обвернуть div блок, содержащий информацию отправляемую на печать в id detail_printable_content

<div class="row" id="detail_printable_content">
      ... Здесь верстка вашей карточки товара ...
</div>

В нужном месте карточки товара добавить кнопку:

<button onclick="printDiv('detail_printable_content')">
	Распечатать
</button>

И добавить css стили, которые скроют не нужный контент и модифицируют нужный на медиазапросе с print.

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

Модифицируются табы с описанием и свойствами товарами, так что бы были видны сразу и умещались на одну страницу. И прочие модификации карточки товары, которые уместны для распечатки. Плюс, блок позицианируется в левый верхний угол, что бы не было пустот на странице.

@media print {
  .product-item-detail-slider-controls-block,
  .product-item-detail-slider-right,
  .product-item-detail-slider-left,
  .detail_item_content_buttons,
  .detail_dopactives,
  .detail_item_content_quant,
  .product-item-detail-slider-container,
  .tabs_links,
  .detail_item_content_brand {
    display: none !important;
  }
  .image_for_print {
    display: block;
    width: 300px;
    height: auto;
  }
  .tab_cont {
    display: block !important;
  }
  .detail_item_content_tabs .tab_cont {
    opacity: 1;
    width: 100%;
    height: auto;
    overflow: visible;
  }
  .detail_item_content_tabs_props {
    display: flex;
    flex-wrap: wrap;
    margin-top: 20px !important;
    li {
      width: 50%;
      padding: 5px 0px !important;
    }
  }
  #detail_printable_content {
    position: absolute;
    left: 0;
    top: 0;
    padding: 40px;

  }
}

Это просто пример. Вы можете как угодно модифицировать данные отправляемые на печать, с помощью стилей или сделать отдельный div блок (не рекомендуется) скрытый на сайте но видимый при распечатке страницы.

Как вариант: сделать AJAX запрос к отдельному скрипту, который не выводится на странице, но клик по кнопке передает ID товара на скрипт, тот в свою очередь получает всю нужную (для распечатки) информацию о товаре, через ElementTable

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 250 000 руб. от 4-х недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Интернет-магазин на готовом решении
от 70 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 120 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 100 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс