Умная печать

Возможности Webix позволяют напечатать виджет (или часть его интерфейса). Для этого предусмотрено специальное API.

Убедитесь, что файл webix.css включает нужные медиа запросы, или хотя бы media:print.

<link rel="stylesheet" href="../../codebase/webix.css" type="text/css">

Основные принципы

Метод print() позволяет печатать виджеты и доступен для всех компонентов Webix.

Метод может принимать следующие параметры:

  • view (object|id) - экземпляр или id виджета, который нужно напечатать
  • options (object) - набор параметров печати.
// экземпляр виджета
webix.print($$("datatable1")); 
// id виджета
webix.print("datatable1");

Related sample:  Datatable

Параметры печати

Вы можете легко настроить печать. Для этого нужно передать методу print() объект с соответствующими настройками в качестве второго параметра.
Помимо общих настроек для всех виджетов, существуют также отдельные настройки для компонентов данных.

Общие настройки для всех компонентов

  • paper (string) - размер бумаги. Возможные значения хранятся в массиве webix.env.printSizes. Значение по умолчанию - "a4". Если в массиве printSizes нет объекта с id: "a4", будет использован первый объект в массиве.

  • mode (string) - ориентация страницы. Возможные значения:

    • "portrait" (по умолчанию)
    • "landscape"
  • margin (number, object) - отступы страницы. Возможные значения:
    • number - задает одинаковый отступ для всех сторон
    • object - можно задать отдельный отступ для каждой из сторон:
      • top
      • right
      • bottom
      • left
  • docHeader (string) - заголовок на первой странице документа с виджетом (независимо от заголовка печати в браузере)
  • docFooter (string) - футер на последней странице документа с виджетом (независимо от заголовка печати в браузере).
webix.print($$("mytable"), {mode: "landscape"});

Related sample:  Wide Datatable

Расширенные настройки для компонентов данных

Для всех компонентов данных

  • scroll (boolean) - если установлено значение true, то напечатается только видимая часть виджета (а не весь компонент). По умолчанию false.

Related sample:  Dataview

Настройки для DataTable, DataView и X-List

  • fit (string) - определяет содержимое страницы. Возможные значения:
    • "page" (по умолчанию) - печатается только та часть виджета, которая помещается на страницу
    • "data" - все данные виджета подстраиваются под ширину страницы.

Related sample:  Horizontal List

Настройки для DataTable и SpreadSheet

  • header (boolean) - включает заголовок виджета datatable (если он есть). Возможные значения:

    • true (по умолчанию для datatable)
    • false (по умолчанию для spreadsheet)
  • skiprows (boolean) - пропускает пустые ряды в datatable. По умолчанию false

  • borderless (boolean) - убирает границы ячеек в datatable. По умолчанию false
  • trim - (boolean) - убирает пустые ряды и столбцы по краям виджета datatable. Возможные значения:
    • true (по умолчанию для spreadsheet)
    • false (по умолчанию для datatable).
  • data (string) - определяет данные, которые нужно напечатать. Возможные значения:
    • "selection" - выбранные данные текущего листа

Настройки только для DataTable

  • footer (boolean) - отображает футер виджета datatable (если он есть). По умолчанию true.

Настройки только для SpreadSheet

  • sheets (boolean|array|string) - определяет, какие листы печатать. Возможными значениями являются:
    • boolean - если true, напечатаюся все листы
    • array - массив с ID листов для печати
    • string - ID листа для печати
  • sheetnames (boolean) - отображает название листов для каждой таблицы. По умолчанию true.
  • external - (boolean) - если true, печатает данные дополнительных компонентов

У SpreadSheet есть специальный интерфейс для печати. Подробнее об этом можно прочитать в соответствующей статье документации.

Настройка печатной среды

У вас есть возможность задать нужные отступы печати, с учетом описанных ниже правил.

Предполагается, что стандартное соотношение ppi (пиксель на дюйм) равно 96, в то время как стандартные отступы распечатываемых страниц принимают только 75% ppi. Если необходимо задать другие значения для отступов, можно изменить соответствующие переменные env:

webix.env.printPPI = 96;
webix.env.printMargin = 96*0.75;

Вы также можете установить нужные отступы через параметры печати, которые описаны выше. У таких отступов приоритет будет больше.

Наверх