Создание PDF-форм из необработанного пользовательского ввода (Python) - PullRequest
0 голосов
/ 12 октября 2011

Итак, я студент университета с частичной занятостью, но у меня есть некоторый опыт работы с Python. В любом случае, я подумал, что смогу произвести впечатление на своего босса, создав генератор форм. Моя работа в картинговом месте, где нам нужно, чтобы люди заполняли кучу информации о безопасности, поэтому моя цель - сделать это в виде графического интерфейса или веб-страницы на компьютере, где мы просто напишем их имя и другие детали, и это подготовил форму со всей их информацией, которую они должны были бы просто подписать.

Я осмотрелся и заметил, что есть довольно много инструментов, но я не уверен, что они явно того, что я хочу - все выглядят довольно сложно.

Раньше я делал простой графический интерфейс, но в идеале я бы просто попросил их сделать это на странице .html.

Может кто-нибудь дать мне совет, как это сделать?

Спасибо!

Ps. Я знаю, что это место в основном для кода, поэтому я прошу прощения, если я нарушил этикет, сделав этот стиль поста.

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

Вы можете использовать reportlab , вот учебник .И это может быть установлено с easy_install

0 голосов
/ 22 июля 2018

В качестве альтернативы генерации всего pdf с нуля в коде (например, с использованием reportlab, как описано выше - что является вполне разумным решением, а reportlab - отличная библиотека для этого), вы можете заполнить существующую форму pdf, сгенерированнуюкакое-то программное обеспечение для редактирования (например, слово или что-то подобное - я использую Scribus NG ... но учиться это кошмар, и я не очень рекомендую его для обычного пользователя).

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

Вы заполняете форму, создавая файл fdf и исключая из python внешний инструмент под названием pdftk.Написание файла в формате PDF - это упражнение, которое я оставлю вам!Fdf - это в основном список значений ключа, где ключ - это идентификатор поля формы (т. Е. Текстовое поле в идентификаторе формы), а значение - это значение, записанное в это поле.

Если вы хотите перейтисделать это таким образом, я предлагаю вам сначала вручную написать свой файл PDF, затем вручную запустить pdftk .. получить его, а затем автоматизировать с помощью Python.Это не красивое решение, но результаты выглядят неплохо.

Вот код, который я использую для исполнения pdftk, что немного поможет с правильным синтаксисом командной строки.

def pdftk(pdf_in, fdf_in, pdf_out):
    """
    Run pdftk to fill in pdf_out from the pdf form template and data given.
    (only tested on linux)

    """
    cmd_line = [pdftk_executable,
                pdf_in,
                "fill_form",
                fdf_in,
                "output",
                pdf_out,
                "verbose"]
    # print " ".join(cmd_line)
    try:
        pdftk_output = subprocess.check_output(cmd_line)
    except subprocess.CalledProcessError as e:
        pdftk_output = e.output
        pdftk_error = True
    return
...