Как сохранить PDF-файл после обрезки каждой страницы PDF-файла с помощью pdfplumber?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить PDF-файл после обрезки каждой страницы PDF-файла с помощью pdfplumber?

Сообщение Anonymous »

Я использую PDF-файл с несколькими страницами, в котором поверх каждой страницы есть таблица, от которой я хочу избавиться. Поэтому я обрезаю PDF-файл после верхней таблицы.
Я не знаю, как объединить или сохранить его как один PDF-файл после обрезки.
Я попробовал ниже:
import pandas as pd
import pdfplumber

path = r"file-tests.pdf"

with pdfplumber.open(path) as pdf:
pages = pdf.pages

# loop over each page
for p in pages:
print(p)

# this will give us the box dimensions in (x0,yo,x1,y1) format
bbox_vals = p.find_tables()[0].bbox

# taking y1 values as to keep/extract the portion of pdf page after 1st table
y0_top_table = bbox_vals[3]
print(y0_top_table)

# cropping pdf page from left to right and y value taken from above box to bottom of pg
p.crop((0, y0_top_table, 590, 840))

Выход:

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

269.64727650000003

Как добавить и сохранить эти обрезанные страницы в один PDF-файл?
Обновить:
Похоже, что невозможно записать или сохранить файл PDF с помощью pdfplumber согласно этой ссылке для обсуждения
(Не знаю, почему этот вопрос был понижен до отрицательного. Человек кто это делает, также должен предоставить ответ или ссылку на то, где это уже есть. ответил).
Обновление 2:
from pdfrw import PdfWriter

output_pdf = PdfWriter()

with pdfplumber.open(path) as pdf:
pages = pdf.pages
for p in pages:
print(p)
bbox_vals = p.find_tables()[0].bbox
y0_top_table = bbox_vals[3]
print(y0_top_table)
cropped_pdf = p.crop((0, y0_top_table, 590, 840))
print(type(cropped_pdf))
output_pdf.addpage(cropped_pdf)

output_pdf.write(r"tests_cropped_file.pdf")

Вывод и ошибка:

269.64727650000003


---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[219], line 13
11 cropped_pdf = p.crop((0, y0_top_table, 590, 840))
12 print(type(cropped_pdf))
---> 13 output_pdf.addpage(cropped_pdf)

File c:\Users\vinee\anaconda3\envs\llma_py_3_12\Lib\site-packages\pdfrw\pdfwriter.py:270, in PdfWriter.addpage(self, page)
268 def addpage(self, page):
269 self._trailer = None
--> 270 if page.Type != PdfName.Page:
271 raise PdfOutputError('Bad /Type: Expected %s, found %s'
272 % (PdfName.Page, page.Type))
273 inheritable = page.inheritable # searches for resources

AttributeError: 'CroppedPage' object has no attribute 'Type'


Подробнее здесь: https://stackoverflow.com/questions/792 ... pdfplumber
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»