Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109

Подпись PDF

03.12.2021, 08:12. Показов 21474. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проект на jango. Заказ справки. Клиент нажимает на кнопку и генерируется из шаблона pdf файл. осталось понять как его подписывать эцп. Сгенерировал самоподписанный сертификат, какие действия дальше? поля заполняю через pypdf2. Пытался впихнуть считаный файл сертификата в словарь, не принимает
Сами сертификаты: mycert.zip
шаблон pdf : help_what_is_being_trained.pdf

заполнение полей, функция кочует из форума к форуму с небольшими переделками:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
def generate_pdf_reference(request, template, data_dict):
    print('generate_pdf_reference')
 
    input_stream = open(template, "rb")
    pdf_reader = PyPDF2.PdfFileReader(input_stream, strict=False)
    if "/AcroForm" in pdf_reader.trailer["/Root"]:
        pdf_reader.trailer["/Root"]["/AcroForm"].update(
            {NameObject("/NeedAppearances"): BooleanObject(True)})
 
    pdf_writer = PyPDF2.PdfFileWriter()
    set_need_appearances_writer(pdf_writer)
    if "/AcroForm" in pdf_writer._root_object:
        pdf_writer._root_object["/AcroForm"].update(
            {NameObject("/NeedAppearances"): BooleanObject(True)})
 
    pdf_writer.addPage(pdf_reader.getPage(0))
    page = pdf_writer.getPage(0)
    pdf_writer.updatePageFormFieldValues(page, data_dict)
    for j in range(0, len(page['/Annots'])):
        writer_annot = page['/Annots'][j].getObject()
        for field in data_dict:
            if writer_annot.get('/T') == field:
              
                writer_annot.update({
                    NameObject("/Ff"): NumberObject(1)
                })
    output_stream = BytesIO()
    pdf_writer.write(output_stream)
 
    response = HttpResponse(output_stream.getvalue(), content_type='application/pdf')
    response['Content-Disposition'] = 'filename='+ os.path.basename(template)
    input_stream.close()
    return response
как я ее использую:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   help_what_is_being_trained = {
        'fio': padez(user.fio) + '\n',# дат падеж
        'class': user.klas + '\n',
        'birth': str(user.birth.strftime("%Y")) + '\n',
        'current_year_1': str(datetime.now().strftime("%Y-%m-%d")) + '\n',
        'current_year_2': str(
            (datetime.now() + timedelta(days=365))
                .strftime("%Y-%m-%d")) + '\n',
        'end_data': str(datetime.now().strftime("%Y-%m-%d")) + '\n',
        'end_data_year': str(datetime.now().strftime("%Y-%m-%d")) + '\n',
        'Signature' : b'static/cert/cert.cer',
    }
 
    response=generate_pdf_reference(
        request,
        'templates/tpl/help_what_is_being_trained.pdf',
        help_what_is_being_trained
        )
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2021, 08:12
Ответы с готовыми решениями:

Как разместить PDF файлы в PDF файле
Есть PDF документ с одной страницей размера 700х500мм, и несколько PDF файлов. Нужно разместить PDF файлы на странице первого PDF файла с...

Общая подпись осей Y
Добрый день! Подскажите как сделать общее название осей Y. Подпись должна располагаться слева от графика и повернута на 90 градусов...

Подпись на графике с использованием LaTeX
Добрый день! Подскажите как на диаграмме отобразить текст следующего вида: 1 \frac{1}{d-5} Не получается вставить f-текст,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2021, 08:12
Помогаю со студенческими работами здесь

Подпись точек в библиотеке pyqtgraph
Добрый день. Не получается подписать точки в библиотеке pyqtgraph. Может кто то знает как это сделать. Ниже приведен мой код построения...

Конвертация из pdf в jpg и из jpg в pdf
Всем добрый вечер и заранее благодарю за помощь! Была поставлена задача конвертации pdf в jpg и обратно, причем несколько раз, и после...

ITextSharp PDF подпись
Всем привет! Хочу добавить подпись в PDF документ, подскажите как добавить подпись в нижний колонтитул в уже готовый документ. Или...

Авто подпись .doc или .pdf
Добрый день, Такой небольшой вопрос. Есть условный шаблон документа в формате .doc, используя C# он заполняется по заранее...

кольцевая подпись( групповая подпись)
Помогите с кодом на питоне реализации кольцевой подписи пожалуйста Добавлено через 40 минут ой, групповую подпись то есть только


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru