OberonCore
https://forum.oberoncore.ru/

Cairo binding [Component Pascal]
https://forum.oberoncore.ru/viewtopic.php?f=47&t=2289
Страница 2 из 2

Автор:  Info21 [ Суббота, 24 Май, 2014 21:36 ]
Заголовок сообщения:  Re: Cairo binding [Component Pascal]

Круто.

Автор:  Роман М. [ Воскресенье, 25 Май, 2014 08:43 ]
Заголовок сообщения:  Re: Cairo binding [Component Pascal]

Иван Денисов писал(а):
Благодаря наличию привязки, которую сделал Роман, удалось сделать генератор дипломов для олимпиады школьников.

На входе - документ Excel с данными об участниках и победителях, а на выходе - несколько сотен документов PDF.

Если у кого-то возникнет аналогичная задача, выкладываю пример кода. Для удобства размещения элементов, сделал обертку процедур рисования, которым можно передавать координаты из редактора Inkscape.

Для того, чтобы все работало, нужно наличие подсистем Ctl и Cairo, на компьютере должен быть установлен Excel. Для запуска демонстрационного модуля в системе должны быть шрифты KursivC и HeliosExtLightC.
Интересно, спасибо! Такой материал хорошо бы добавить куда-нибудь в блог, так как используется набор разных инструментов. А если для каждого инструмента добавить свою картинку то, поди, можно и на ХабраХабр выкладывать.

Готовить PDF-ку можно различными способами. Этот способ подразумевает у разработчика, как минимум, наличие дизайнерского вкуса. Таким образом, разработчик программирует набор вызовов библиотеки Cairo для создания конечного документа.

Альтернативный, при более сложной вёрстке, подход PDF создания заключается в
  1. создании графического макета график-дизайнером (или веб-дизайнером)
  2. создание шаблона HTML вёрстки с описанными в CSS стилями (веб-дизайнером)
  3. генерация HTML документа на основе шаблона, куда вставляются текст и другие объекты программным способом
  4. преобразование HTML вёрстки в PDF при помощи утилиты wkhtmltopdf.

3, 4-й пункты - программно.

Автор:  Иван Денисов [ Воскресенье, 25 Май, 2014 08:55 ]
Заголовок сообщения:  Re: Cairo binding [Component Pascal]

Тут получается так: от дизайнера — макет в векторе, открываем его в Inkscape, переносим координаты объектов, строки и размеры шрифтов в Блэкбокс. Можно было бы, используя XmlCore, парсить XML структуру формата SVG, но так как элементов не очень много, то решил, что быстрее будет руками переписать.

Для Хабра можно, но слабовато, чтобы возиться с публикацией. Есть куча инструментов для создания PDF. Если не фанатеть по Компонентному Паскалю, то можно было бы налету генерировать эти PDF php-скриптом, беря данные участников из подготовленной базы данных.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/