Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2012 07:42:38

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

Всем привет! Есть необходимость в создании отчета в программке. Как выглядит отчет еще не придумал, но скорей всего необходимы таблицы, стрелочки что откуда получается (результаты) и так далее. Вообще нужно красиво и не сложно.
Попытался использовать reportlab, но как сделать таблицу не понял (или плохо читал). Отсюда у меня вопрос к вам, в какой форме отчет сделать более легче и как?



Офлайн

#2 Апрель 5, 2012 08:09:20

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

Делайте в html - это намного проще. При необходимости все можно переконвертировать в PDF используя http://www.xhtml2pdf.com/



Офлайн

#3 Апрель 5, 2012 08:40:38

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

А как сделать в хтмл? При помощи чего? Дайте ссылку если не сложно.



Офлайн

#4 Апрель 5, 2012 09:01:28

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

В принципе можно посмотреть в сторону lxml

Ссылка: http://google.com?q=lxml



Офлайн

#5 Апрель 5, 2012 10:08:11

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

Проще всего, наверное jinja2 (http://jinja.pocoo.org/) использовать.

Вот выдрал из одного проекта:

import os
from jinja2 import Environment, FileSystemLoader
#: Определяет место расположения Jinja2 шаблонов в файловой системе 
TEMPLATE_ROOT = os.path.join(os.path.dirname(__file__), 'templates')
#: Определяет директорию для сохранения сгенерированных модулей
OUTPUT_ROOT = os.path.join(os.path.dirname(__file__), 'reports')
#: Среда выполнения шаблонов Jinja2
jinja_env = Environment(loader=FileSystemLoader(TEMPLATE_ROOT))
def process_template(data, template, outfile):
    """
    Функция выполняет генерацию модуля на основе указанного шаблона
    :param data: данные для рендеринга шаблона;
    :param template: файл шаблона, используемый для генерации отчета;
    :param outfile: имя файла для сохранения сгенерированного кода относительно
                    директории :data:`OUTPUT_ROOT`;
    """
    code = jinja_env.get_template(template).render(**data)
    with open(os.path.join(OUTPUT_ROOT, outfile), 'w') as f:
        f.write(code.encode('utf-8'))



Офлайн

#6 Апрель 5, 2012 20:14:29

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

ziro
Проще всего, наверное jinja2 (http://jinja.pocoo.org/) использовать.

И то правда. Как-то сразу не подумал о шаблонизаторах. Мой совет снимается в пользу jinja2



Офлайн

#7 Апрель 15, 2012 00:37:43

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

ziro, нашлось время, скачал, установил, почитал документацию и… ничего не понял. В Вашем посте есть кусок из выдранного проекта, где указывается какой шаблон использовать и какие данные туда запихивать, но перед этим шаблон еще надо создать как-то, а вот как это сделать я не понимаю. Кроме офф документации я ничего не нашел… =\



Офлайн

#8 Апрель 17, 2012 09:44:46

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание html/pdf отчета.

Все сделал, разобрался, всем спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version