Библиотека Python для динамических документов - PullRequest
0 голосов
/ 20 ноября 2019

Я хочу написать сценарий, который генерирует отчеты для каждой команды в моем подразделении, где каждый отчет использует один и тот же шаблон, но где для каждого отчета используются числа, специфичные для каждой команды. Отчет должен быть в формате, подобном .pdf, который непрограммисты знают, как открывать и читать. Это во многом похоже на rmarkdown для R, но отчеты, которые я хочу генерировать, основаны на данных из кода, уже написанного на python.

Решение, которое я ищу, не нужно экспортировать напрямую в pdf. Он может экспортировать в уценку, а затем я знаю, как конвертировать. Мне не нужно более красивое форматирование, чем уценка. Это не должно быть уценкой, но я знаю, как сделать все остальное в уценке, если я только найду способ динамического заполнения чисел и текста в шаблоне уценки из кода Python.

Что мне нужно, это что-тоэто похоже на приведенный ниже блок кода, но в большем масштабе, и вместо вывода на экран, это будет сохранено в файл (.md или .pdf), который затем можно будет передать каждой команде.

user = {'name':'John Doe', 'email':'jd@example.com'}
print('Name is {}, and email is {}'.format(user["name"], user["email"]))

Таким образом, желаемая функциональность, на которую сильно повлиял мой предыдущий опыт использования rmarkdown, выглядела бы примерно как блок кода ниже, где шаблон представляет собой строку или файл, читаемый как строку, с заполнителями, которые будут заполняться переменными (или Dicts илиобъекты) из кода Python. Затем результаты могут быть сохранены и переданы командам.

user = {'name':'John Doe', 'email':'jd@example.com'}
template = 'Name is `user["name"]`, and email is `user["email"]`'
output = render(template, user)

Пытаясь найти эквивалент rmarkdown в python, я нашел много указателей на Jupyter Notebook, с которыми я знаком, и очень многовроде бы, но это не то, что я ищу, поскольку дело не в том, чтобы делиться кодом, а только в визуализированном выводе.

1 Ответ

0 голосов
/ 20 ноября 2019

Я настоятельно рекомендую установить и использовать библиотеку pyFPDF, которая позволяет вам писать и экспортировать PDF-файлы напрямую из python. Библиотека была портирована с php и предлагает те же функции, что и ее php-вариант.

1.) Клонируйте и установите pyFPDF

Git-Bash:

    git clone https://github.com/reingart/pyfpdf.git
    cd pyfpdf
    python setup.py install

2.) После успешной установки вы можете использовать код Python, аналогичный тому, как если бы вы работали с fpdf в php, например:

    from fpdf import FPDF

    pdf = FPDF()
    pdf.add_page()
    pdf.set_xy(0, 0)
    pdf.set_font('arial', 'B', 13.0)
    pdf.cell(ln=0, h=5.0, align='L', w=0, txt="Hello", border=0)
    pdf.output('myTest.pdf', 'F')

Для получения дополнительной информации посмотрите: https://pypi.org/project/fpdf/

Для работы с репозиторием клона pyFPDF из: https://github.com/reingart/pyfpdf

Документация pyFPDF: https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html

...