Scroll

Возникла необходимость быстрой сборки и тиража PDF-буклетов. На Питоне есть масса мощных инструментов для этого, однако нет чего-то простого, чтобы код буклета не выглядел громоздко. Немного вдохновленный простотой использования TCPDF (библиотеки для PDF на PHP) написал свой небольшой генератор буклетов

Язык:Python
Репозиторий:https://bitbucket.org/yentsun/scroll

Генератор работает на базе:

  • pycairo и rsvg для импорта и манипуляций над SVG
  • reportlab для вставки текста
  • pypdf для склеивания страниц в буклет

Пример использования

Код для генерации простого одностраничного буклета:

from scroll import Scroll

scroll = Scroll('output_file_path.pdf')

# у нас должен быть подготовленный дизайнером макет (может с лого и
# фирменным стилем), создаем страницу на его основе
page1 = scroll.add_page('blank.pdf')

# добавляем графику
page1.add_SVG(path='floor.svg', coords=(290, 0), scale=0.85)

# следующее изображение будет вставлено с теми же координатами и
# масштабом что и предыдущее - удобно для накладывания графики слоями
page1.add_SVG(path='outline.svg', new_context=False)

page1.add_SVG(path='minimap.svg', coords=(40, 290), scale=0.89)

# добавляем текст
page1.add_text_block(font_path='Ubuntu.ttf',
                     coords=(40, 453),
                     font_size=16,
                     lines=(
                        u'Building 1',
                        u'Section 2',
                        u'Floor 1'
                     ))
page1.add_text_block(coords=(40, 345),
                     font_size=12,
                     lines=(
                        u'Room count: 3',
                        u'Square: 64.56 m²'
                     ))

# генерируем буклет
scroll.render()
comments powered by Disqus