Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2023 14:19:30

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Очень упрощенное редактирование PDF-файла

Доброго времени суток!

Задача следующая:

Имеется PDF-файл (1 страница А4)

Мне необходимо Вставить в нее PNG-картинку (не встроить в текст, а скажем налепить поверх как наклейку или водяной знак)

Вопрос: какую библиотеку посоветуете для этих целей?

Библиотеки, на которые я натыкался рассчитаны на запись и чтение текстовой информации.

Офлайн

#2 Апрель 24, 2023 12:01:46

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Очень упрощенное редактирование PDF-файла

Ладно, вопрос можно закрывать

Если кому интересно, решил следующим образом:

1. Создал новый PDF и воткнул в нее необходимую картинку с помощью модуля fpdf.

2. Совместил исходный PDF с новым(тот который только что создали) с помощью модуля PyPDF2.

В принципе этого результата для меня достаточно. Спасибо за внимание.

Офлайн

#3 Апрель 24, 2023 23:34:32

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Очень упрощенное редактирование PDF-файла

Temp
2. Совместил исходный PDF с новым(тот который только что создали) с помощью модуля PyPDF2.
Т.е. просто на одну pdf страницу сверху наложили вторую ? То что склеить несколько пдф я знаю, а вот про наложение даже и не представлял.
PDF - это фактически файл разметки, т.е. каким образом он умудряется одну разметку на другую наложить ? Может поделитесь самим куском кода и (или) результатом такой трансформации .

Офлайн

#4 Апрель 25, 2023 13:02:35

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Очень упрощенное редактирование PDF-файла

VadimK
 from fpdf import FPDF
import PyPDF2
first_pdf = "путь к первому pdf"
image = "путь к картинке"
#Создаем еще один pdf с картинкой
pdf = FPDF(unit='pt')
pdf.add_page()
pdf.image(image)#пользуемся аргументами x,y,w и h
pdf.output("order.pdf")#сохраняем его
#начинаем объединение
with open(first_pdf, "rb") as filehandle_input:
    pdf = PyPDF2.PdfReader(filehandle_input)
    with open("order.pdf", "rb") as filehandle_watermark:
        watermark = PyPDF2.PdfReader(filehandle_watermark)
        first_page = pdf.pages[0]
        first_page_watermark = watermark.pages[0]
        first_page.merge_page(first_page_watermark)#эта функция объединяет
        pdf_writer = PyPDF2.PdfWriter()
        pdf_writer.add_page(first_page)
        with open(output_file, "wb") as filehandle_output:#сохраняем полученный результат
            pdf_writer.write(filehandle_output)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version