ChatGPTによるコードの例
素晴らしい!の一言。ChatGPT3.5。
尚、
しおりのページの扱いがおかしかったので、一回、修正してもらった。
ただし、pypdfXのバージョン問題あり(後述)。
from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter import os # 3つのPDFファイルをリストで指定 pdf_files = ["file1.pdf", "file2.pdf", "file3.pdf"] # マージしたPDFファイルの出力先ファイル名 output_pdf = "merged_file.pdf" # PdfFileMergerオブジェクトを作成 merger = PdfFileMerger() # それぞれのPDFファイルを結合 for pdf_file in pdf_files: merger.append(pdf_file) # マージしたPDFファイルを保存 merger.write(output_pdf) merger.close() # 作成したPDFファイルにしおりを追加 pdf_writer = PdfFileWriter() pdf_reader = PdfFileReader(output_pdf) # ページ数の累積値を取得 cumulative_page_count = 0 for pdf_file in pdf_files: pdf = PdfFileReader(pdf_file) pdf_title = os.path.splitext(os.path.basename(pdf_file))[0] pdf_writer.addBookmark(pdf_title, cumulative_page_count) cumulative_page_count += pdf.getNumPages() # しおりを追加したPDFファイルを保存 with open(output_pdf, "wb") as f: pdf_writer.write(f)
環境
windows10
Python 3.7.2
「pypdf」と、「PyPDF2」の関係
以下の記事を参照して下さい。
元々、pypdf で、 PyPDF2というのが出来て(それ自体は活動が終わって?)、
またpypdfに戻った。
よって、pypdfを使うのが適当。
上のコードの問題
ChatGPTの弱点(欠点)だと思うが、
(もの凄い)古いバージョンのメソッドが混ざる(というか、すべて古いバージョンのメソッド。)
解決方法は、以下、参照。