Задать вопрос
@glu-dimaz

Как правильно конвертировать .pdf -> .png -> .pdf?

67ca56dfe21ec072677140.png
Данный шаблон в формате .pdf . В него будет необходимо вставлять буковки. Моя задача, переконвертировать его в .png, провести с ним ряд операций, сохранить как новое изображение, а после - конвертировать новое изображение обратно в .pdf

Конвертировать первый раз .pdf в .png в целом, можно 1 раз за все время, чтобы получить оригинал документа в виде картинки и далее уже исполнение будет без этой процедуры. Пытаюсь понять, как сохранять пропорции и не терять качество изображение.
pdf_document = fitz.open(pdf_path)
    for page_num in range(pdf_document.page_count):
        page = pdf_document[page_num]
        image = page.get_pixmap(matrix=fitz.Matrix(scale, scale))
        image_path = f"page_{page_num + 1}.png"
        image.save(image_path)
    pdf_document.close()

К примеру вот, при масштабе в 3.0 изображение имеет размер 2526 х 1786, С таким размером далее можно уже работать. Но после, как такое обработанное изображение преобразовать обратно в .pdf, чтобы сохранилось абсолютно точное положение на листе, с абсолютно такими же границами страницы.
doc = SimpleDocTemplate(pdf_path, pagesize=letter)
img = Img(png_path, width=letter[0], height=letter[1])
doc.build([img])

(Найти такой шаблон в ином формате - скорее сложнее чем найти решение данной задачи)
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Простой 8 комментариев
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
https://pypi.org/search/?q=pdf+to+png
А вот в PDF можно и упростить.
Если цель в том, чтобы файлик было не только посмотреть, но и распечатать сразу на принтере,
то собирать его в PCLm / mPDF - упрощенный формат.
Картинка режется на полосы. Большинство принтеров переварят их по 32 точке в высоту.
За основу берем 150 дпи и нужный формат бумаги. Ресайзим
открывается документ
%PDF-1.3
%PCLm 1.0

Начинается страница
Пробегаем по картинке собирая по отдельности три части описывающие станицу
1 Ее размеры и ссылка на содержимое
2. Содержание, что она из кучи картинок
3. Поток с байтами для картинок

Закрывается документ служебными элементами PDF

Выглядит сложно. А на практике, Сравнив парочку prn файлов сразу поймете, что там меняется

Если с принтерами не заморачиваться, то там все упрощается.
Байты, это PDF в котором одна страница - на ней одна картинка - картинка вот ее содержание
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы