Вы можете экспортировать компоненты в формат PDF. Эта процедура не требует какой-либо дополнительной конфигурации компонентов.
Экспорт доступен как в стандартной, так и в pro версиях.
Чтобы экспортировать компонент в PNG файл, вызовите метод toPDF. Метод принимает следующие параметры:
Например, если вы хотите экспортировать список в PDF файл, вам необходимо вызвать метод toPDF() с ID списка в качестве параметра:
webix.ui({
view:"list",
id: "mylist",
// конфигурация списка
});
webix.toPDF("mylist");
Related sample: DataTable Export to PDF
Метод toPDF возвращает все данные, указанные в dataset компонента или в параметре columns у *datatable*. Данные экспортируются в PDF документ с именем "data".
Зависимости, которые используются при экспорте содержаться в онлайн каталоге Webix CDN. Если вам необходимо добавить возможность экспорта данных в офлайн режиме, следуйте указаниям:
1. Скачайте пакет с CDN-файлами с ресурса https://github.com/webix-hub/cdn-extras.
Если у вас Webix 6.2 версии и выше, используйте файл html2canvas-1.0.min.js.
Если же версия раньше, чем 6.2, вам нужен файл html2canvas.min.js.
2. Переименуйте папку в "extras" и переместите её в необходимую директорию.
3. Укажите путь к локальному CDN репозиторию:
webix.env.cdn = "/local_folder";
При указании пути необходимо обратить внимание на следующее:
webix.env.cdn = "../../../../local_folder";
webix.env.cdn = "http://localhost/local_folder";
Некоторые общие моменты кастомизации экспорта можно применять к методу toPDF. Однако также существуют специальные настройки, описанные ниже.
Какие есть возможности
Вы можете экспортировать несколько компонентов, передав массив ID в качестве первого параметра webix.toPDF(). Каждый компонент отрисовывается на отдельной странице:
webix.toPDF(["datatable", "chart"]);
Вы также можете указать набор определённых опций для каждого компонента:
webix.toPDF([
{ id: "datatable", options:{ filterHTML:true } },
{ id: "chart", options:{ display:"image"} }
], { filename: "custom" });
Related sample: Export to PDF: Multiple Widgets
Обратите внимание, что любой набор опций на уровне компонента переопределяет опции, указанные для экспортируемых компонентов. Исключение составляют настройки для самих документов, например autowidth, футер/хедер, ориентация и др.
Имя выходного файла по умолчанию "Data.pdf". Чтобы указать другое имя, используйте параметр filename:
webix.toPDF($$("table"), {
filename: "datatable"
});
Related sample: DataTable Export to PDF
По умолчанию Webix используйте шрифт pt-sans.regular.ttf и pt-sans.bold.ttf. Если вы хотите задать другой, например с какими-либо нестандартными символами, добавьте необходимые файлы в папку "extras" (описан выше) и укажите опции fontName и/или boldFontName:
webix.toPDF($$("mylist"), {
// для обычного шрифта
fontName:"custom",
// для жирного шрифта
boldFontName: "customBold"
});
Вы также можете указать URL к шрифтам через параметры fontURL и boldFontURL соответственно:
webix.toPDF("$dt",{
// для обычного шрифта
fontURL:"remote/font-regular",
// для жирного шрифта
boldFontURL: "remote/font-bold"
})
Related sample: Export to PDF: Changing Font
Обратите внимание, что поддерживаются файлы только с расширением .ttf.
Вы можете определить свои параметры (header, width, template или format) для данных в указанном столбце:
webix.toPDF($$("mylist"), {
columns:{
title:{ header: "My title", width: 200, template: webix.template("#id#.#title#") },
year:{ header:"Year", width:150 }
}
});
Вы можете отрисовывать темплейты вместо исходных данных с помощью свойства rawValues: false:
webix.ui({
rows:[
{
view:"datatable",
data:grid_data,
columns:[
{ id:"title", fillspace:true, template:"Film #title#" }
]
}
]
});
webix.toPDF($$("$datatable1"),{
columns:{
rawValues:false
}
});
По умолчанию размер PDF документа равен размеру листка формата А4. Если вы укажите свойству autowidth значение true, появится возможность задавать любую ширину, которая будет определять ширину PDF страницы.
webix.toPDF($$("mylist"), {
autowidth:true
});
По умолчанию скрытые столбцы и ряды не включены в экспортируемый файл. Вы можете включить их, указав свойству hidden значение true:
webix.toPDF($$("datatable1"), {
hidden: true
});
В PDF файле скрытые столбцы/ряды будут видны.
Вы можете выбрать ориентацию PDF документа: portrait (по умолчанию) или landscape:
webix.toPDF($$("mylist"), {
orientation:"landscape"
});
С помощью свойств docHeader и docHeaderImage вы можете показывать какие-либо текст или картинку в выходном файле:
// добавляем произвольный тест в хедер PDF файла
webix.toPDF($$("mylist"), {
docHeader:"This document was made with Webix library. https://webix.com"
});
// добавляем изображение в хедер PDF файла
webix.toPDF($$("mylist"), {
docHeaderImage:"../common/logo.jpg"
});
Related sample: DataTable Export to PDF: Custom configuration
Определяем порядок хедеров
По умолчанию текстовый хедер (docHeader) идёт первым. Вы можете определить другой порядок хедеров с помощью параметра order. Для этого определите свойства docHeader и docHeaderImage как объекты и укажите параметр order с числовым значением. Хедер с наибольшим значением высшую позицию:
// текстовый хедер будет выше
webix.toPDF($$("mylist"), {
docHeader: { text:"The text header", order:1 },
docHeaderImage: { url:"logo.jpg", order:0 }
});
Чтобы кастомизировать содержимое футера, добавьте объект docFooter
в объект конфигурации экспорта и опишите необходимые стили, как на примере ниже:
webix.toPDF($$("$datatable1"), {
docFooter:{
textAlign:"right",
color:0x663399,
},
// другие настройки
});
Существуют следующие режимы:
webix.toPDF("chart", { display:"image"});
webix.toPDF("list", { textBefore:"This is list", textAfter:"End of list" });
textAfter и textBefore принимают строки и конфигурационные объекты со следующими свойствами:
textBefore:{
text:"Population growth in Canada",
options:{ color:0x666666, textAlign:"center", fontSize:15 }
}
Вы можете кастомизировать список excelViewer:
{id:"excel", options:{
sheets:[
{id:"Data", options:{textBefore:"check", styles:false}},
"Files"
]
}}
Related sample: Export to PDF: Custom Excel Viewer
Так как экспорт данных в PDF осуществляется с помощью сторонней библиотеки, вы можете настроить внешний вид элементов в выходном PDF файле, используя свойства, описанные в документации.
Чтобы настроить хедер экспортиремого PDF документа, вы можете указать конфигурационный объект в качестве значения свойства docHeader. Внутри этого объекта помимо текстовой строки укажите все необходимые свойства (выравнивание и цвет).
Например:
webix.toPDF($$("mylist"), {
docHeader:{
text: "List with custom styling",
textAlign:"center",
color:0x663399
}
});
Обратите внимание, что цвет необходимо указывать в формате HEX, начиная с префикса 0x.
Суествуют и другие свойства конфигурационного объекта. Вы можете ознакомится с ними в соответствующей части документации (смотрите секцию "document/headeropts").
API экспорта позволяет указывать не только ссылку на изображение, но также обработать объект с необходимым свойствами изображения:
webix.toPDF($$("mylist"), {
docHeaderImage:{
url:"link",
align:"left", // "right"/"center"
width:300,
height:20
}
});
Поэтому вы можете настроить выравнивание изображения, а также его ширину и высоту. Ещё больше опций вы найдёте в документации (смотрите секцию "document/imageimg-opts").
Related sample: Export to PDF with Custom Styles
Также достаточно просто настроить внешний вид выходной таблицы с данными. Вы можете работать с элементами, чтобы получить желаемый результат:
webix.toPDF($$("mylist"), {
header:{
textAlign:"center",
fontSize:13,
backgroundColor:0x3498DB,
color:0xFFFFFF
}
});
webix.toPDF($$("mylist"), {
table:{
textAlign:"center"
}
});
webix.toPDF($$("mylist"), {
footer:{
fontSize:9,
height:20,
textAlign:"right"
}
});
Related sample: Export to PDF with Custom Styles
Ещё больше возможностей конфигурации описаны в соответствующем разделе (см. секцию "document/tableopts").
Наверх