Начиная с версии 4.1, dhtmlxScheduler предоставляет онлайн-сервис экспорта, который позволяет экспортировать Scheduler как изображение PNG.
Сервис является бесплатным, однако экспортируемое PNG будет содержать водяной знак библиотеки при использовании по лицензии GPL. При покупке лицензии экспорт будет осуществляться без водяного знака в течение активного периода поддержки (12 месяцев для всех PRO-лицензий).
Существует несколько сервисов экспорта, которые вы можете использовать. Вы можете установить их локально на свой компьютер, чтобы экспортировать Scheduler в PNG без использования онлайн-сервиса.
Имейте в виду, что сервисы экспорта не входят в пакет Scheduler. Для получения подробной информации об условиях использования каждого сервиса ознакомьтесь с соответствующей статьёй.
Все методы экспорта (exportToPDF, exportToPNG и др.) используют общий API-эндпоинт https://export.dhtmlx.com/scheduler. Максимально допустимый размер запроса — 10 МБ.
Чтобы экспортировать Scheduler как изображение PNG, выполните следующие шаги:
scheduler.plugins({
export_api: true
});
Для версий Scheduler младше 7.0 необходимо также добавить скрипт https://export.dhtmlx.com/scheduler/api.js на вашу страницу для активации онлайн-сервиса экспорта, например:
<script src="codebase/dhtmlxscheduler.js"></script>
<script src="https://export.dhtmlx.com/scheduler/api.js"></script>
<input value="Export to PNG" type="button" onclick='scheduler.exportToPNG()'>
Related sample: Export to PDF/PNG
Метод exportToPNG() принимает объект с несколькими необязательными свойствами:
name | (string) задаёт имя выходного файла |
format | ('A0', 'A1', 'A2', 'A3', 'A4', 'A5') устанавливает формат выходного PNG-изображения |
orientation | ('portrait', 'landscape') устанавливает ориентацию выходного PNG-изображения |
zoom | (number) управляет уровнем масштабирования выходного PNG-изображения |
header | (string) добавляет заголовок к выходному PNG-изображению; здесь можно использовать любой HTML |
footer | (string) добавляет подвал к выходному PNG-изображению; здесь можно использовать любой HTML |
server | (string) указывает API-эндпоинт для запроса экспорта. Полезно, если вы используете локальный сервис экспорта. По умолчанию https://export.dhtmlx.com/scheduler |
Пример вызова метода экспорта с дополнительными параметрами
scheduler.exportToPNG({
format:"A4",
orientation:"portrait",
zoom:1,
header:"<h1>My company</h1>",
footer:"<h4>Bottom line</h4>",
server:"https://myapp.com/myexport/scheduler"
});
Вы можете задать своё имя для экспортируемого PNG, используя свойство name в методе exportToPNG:
scheduler.exportToPNG({
name:"my_beautiful_scheduler.png"});
Чтобы добавить заголовок или подвал в выходной PNG, используйте свойства header и footer в методе exportToPNG:
Здесь вы можете вставить любой HTML. При добавлении изображений убедитесь, что используете глобальные URL в атрибуте "src".
scheduler.exportToPNG({
name:"myscheduler.png",
header:"<h1>My company</h1>",
footer:"<h4>Bottom line</h4>"
});
Чтобы применить пользовательские стили к экспортируемому Scheduler, добавьте ваш CSS одним из следующих способов:
scheduler.exportToPNG({
name:"calendar.png",
header:'<link rel="stylesheet" href="http://mysite.com/custom.css">' });
scheduler.exportToPNG({
name:"calendar.png",
header:'<style>... custom css classes here ...</style>' });
Если ваш CSS размещён локально или во внутренней сети, вы можете вставить все стили как inline:
scheduler.exportToPNG({
header:"<style>.tier1{ background: red; color:white;}</style>"
});
При экспорте Scheduler в PNG учитывайте, что экспорт некоторых HTML-элементов ограничен по соображениям безопасности.
Такие элементы, как <canvas>
, <svg>
, <script>
, а также изображения с Base64 в атрибуте src поддерживаются не полностью. Тем не менее, есть безопасные способы включения изображений в SVG и Base64 форматах:
<img>
с атрибутом src, указывающим на URL SVG-изображения (работает для экспорта в PNG и JPG, но не для Base64), например:<img src=https://www.svgrepo.com/download/530597/hat.svg>
url
, указывающим на URL изображения или на изображение в формате Base64 (работает при экспорте в PNG/JPG/SVG):.red {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH1ggDCwMADQ4NnwAAAFVJREFUGJWNkMEJADEIBEcbSDkXUnfSgnBVeZ8LSAjiwjyEQXSFEIcHGP9oAi+H0Bymgx9MhxbFdZE2a0s9kTZdw01ZhhYkABSwgmf1Z6r1SNyfFf4BZ+ZUExcNUQUAAAAASUVORK5CYII=") 100%/contain no-repeat;
display: inline-block;
width: 32px;
height: 32px;
}
Если у вас есть собственный модуль экспорта и требуется экспортировать HTML-элементы, которые не поддерживаются онлайн-сервером экспорта, вы можете обратиться в службу поддержки для получения рекомендаций по доработке вашего модуля с целью снятия этих ограничений. Имейте в виду, что это может привести к уязвимости вашего сервера для XSS-атак.
Наверх