OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 20 Ноябрь, 2019 11:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Cairo binding [Component Pascal]
СообщениеДобавлено: Суббота, 24 Май, 2014 21:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
Круто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo binding [Component Pascal]
СообщениеДобавлено: Воскресенье, 25 Май, 2014 08:43 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Иван Денисов писал(а):
Благодаря наличию привязки, которую сделал Роман, удалось сделать генератор дипломов для олимпиады школьников.

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

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

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

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

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

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


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2430
Тут получается так: от дизайнера — макет в векторе, открываем его в Inkscape, переносим координаты объектов, строки и размеры шрифтов в Блэкбокс. Можно было бы, используя XmlCore, парсить XML структуру формата SVG, но так как элементов не очень много, то решил, что быстрее будет руками переписать.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB