Перейти к основному содержимому

Экспорт в PDF

Статья относится к экспорту dhtmlxScheduler 4.1+. Если вы используете dhtmlxScheduler 4.0 или более ранние версии, см. детали здесь.

Начиная с версии 4.1, dhtmlxScheduler предлагает новый подход к экспорту планировщика в формат PDF: онлайн-сервис экспорта.

к сведению

Сервис бесплатный, но результирующий PDF-файл будет содержать водяной знак библиотеки под лицензией GPL. В случае покупки лицензии результат экспорта будет доступен без водяного знака во время действительного срока поддержки (12 месяцев для всех PRO лицензий).

Использование сервисов экспорта

Доступно несколько сервисов экспорта. Вы можете установить их на ваш компьютер и локально экспортировать Scheduler в PDF.

Обратите внимание, что сервисы экспорта не входят в пакет Scheduler,
прочитайте соответствующую статью, чтобы узнать условия использования каждого из них.

Ограничения на размер запроса

Существует общий API-эндпойнт https://export.dhtmlx.com/scheduler, который предоставляет методы экспорта, такие как exportToPDF() и exportToPNG(). Максимальный размер запроса — 10 МБ.

По умолчанию экспорт в PDF

Чтобы экспортировать планировщик в PDF-документ, выполните следующие шаги:

  • Чтобы использовать онлайн-сервис экспорта, включите плагин export_api через метод plugins():
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>
  • Вызовите метод exportToPDF() для экспорта Scheduler:
<input value="Export to PDF" type="button" onclick='scheduler.exportToPDF()'/>

Связанные примеры

Параметры метода экспорта

Метод exportToPDF() принимает в качестве параметра объект с рядом свойств. Все свойства являются необязательными:

Вызов метода экспорта с опциональными свойствами

scheduler.exportToPDF({
name: "myscheduler.pdf",
format: "A4",
orientation: "portrait",
zoom: 1,
header: "<h1>My company</h1>",
footer: "<h4>Bottom line</h4>",
server: "https://myapp.com/myexport/scheduler"
});

Имя выходного файла

Чтобы задать произвольное имя выходного файла, используйте свойство name в параметре метода exportToPDF():

scheduler.exportToPDF({
name: "my_beautiful_scheduler.pdf"
});

Заголовок/нижний колонтитул выходного файла

Чтобы добавить заголовок/нижний колонтитул к выходному PDF-файлу, используйте свойства header/footer в параметре метода exportToPDF():

примечание

Обратите внимание: при указании параметров можно использовать любой HTML. При указании изображений помните, что нужно задавать глобальные пути в значениях атрибута "src".

scheduler.exportToPDF({
name: "myscheduler.pdf",
header: "<h1>My company</h1>",
footer: "<h4>Bottom line</h4>"
});

Пользовательский стиль для выходного файла

Чтобы применить пользовательский стиль к планировщику, предоставьте таблицу стилей со своими пользовательскими CSS-классами:

  • через ссылку:
scheduler.exportToPDF({
name: "calendar.pdf",
header: '<link rel="stylesheet" href="http://mysite.com/custom.css">'
});
  • или через тег 'style':
scheduler.exportToPDF({
name: "calendar.pdf",
header: '<style>... custom css classes here ...</style>'
});

Примечание: вышеупомянутое решение работает для глобальной HTTP-ссылки. Если у вас CSS‑классы указаны во внутреннем/локальном окружении, вы можете встроить все стили следующим образом:

scheduler.exportToPDF({
header: "<style>.tier1{background: red; color:white;}</style>"
});

Экспорт HTML‑элементов

При экспорте Scheduler в PDF‑формат учтите, что экспорт HTML‑элементов ограничен из‑за возможной небезопасности.

Существуют HTML‑элементы, которые не полностью допускаются для экспорта, например <canvas>, <svg>, <script> и изображения с атрибутом src, содержащим изображение в формате Base64. Однако существуют безопасные способы экспорта изображений в форматах SVG и Base64:

  • можно использовать элемент <img/> с атрибутом src, который содержит URL изображения в формате SVG (подходит для форматов PNG и JPG, не работает для Base64), например:
<img src="https://www.svgrepo.com/download/530597/hat.svg">
  • можно использовать элементы style, такие как background или background-image и указать атрибут 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‑атакам.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.