Я не знаю, как объединить или сохранить его как один 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 с помощью 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'
Похоже, что проблема обрезки и сохранения PDF-файлов также поднималась в 2018 году, но не имела решения. согласно этой ссылке на обсуждение.
Если кто-нибудь знает обходной путь, пожалуйста, дайте мне знать. Буду очень признателен!!!
Подробнее здесь: https://stackoverflow.com/questions/792 ... pdfplumber