PDF

Python Snippets

PDF から特定のページ範囲のみ切り出す


from PyPDF2 import PdfReader, PdfWriter
in_file = 'Downloads/original.pdf'
reader = PdfReader(in_file)
writer = PdfWriter()
for i in range(54 - 1, 57):
    writer.add_page(reader.pages[i])
with open('Downloads/extracted.pdf', 'wb') as f:
    writer.write(f)

PDF をマージする


import pypdf
merger = pypdf.PdfMerger()
for i in range(16):
    merger.append(f'./pdf_files/{i+1}.pdf')
merger.write('merged.pdf')
merger.close()

PDF をテキスト化する

pdfminer.six を用いた方法は以下である。

PyMuPDF を用いた方法は以下である。

import fitz
in_file = 'Downloads/hoge.pdf'
doc = fitz.open(in_file)
for i_page, page in enumerate(doc):
    text = page.get_text()
    print(i_page)
    print(text)
    break