Python:PDFファイルのタイトルだけ変更したい

Pythonのロゴ Python

PDFファイルを作ったが、タイトルが文字化けして変になっていたりタイトルだけ変更したいときがある。
以下は、Pythonを使ったPDFファイルのタイトルだけ変更するスクリプトです。

使い方
python changePDFtitle.py <PDFファイル名> <変更したいタイトル>

例として、PDFファイルがhoge.pdfでタイトルをほげほげに変更したいなら

python changePDFtitle.py hoge.pdf ほげほげ

として実行する。

ソースコード

PyPDF2モジュールを使っているため、pip install PyPDF2 としてインストールしてください。

changePDFtitle.py

import sys
from PyPDF2 import PdfReader, PdfWriter
from PyPDF2.generic import NameObject, create_string_object

def change_pdf_title(pdf_file_name, new_title):
    # PDFファイルを読み込む
    reader = PdfReader(pdf_file_name)
    writer = PdfWriter()

    # 全ページを新しいPDFファイルにコピー
    for page in reader.pages:
        writer.add_page(page)

    # 新しいメタデータを作成
    writer.add_metadata({
        NameObject('/Title'): create_string_object(new_title)
    })

    # 変更を加えたPDFファイルを保存
    with open(pdf_file_name, 'wb') as f:
        writer.write(f)

if __name__ == '__main__':
    if len(sys.argv) != 3:
        print("Usage: python change_pdf_title.py <PDF file name> <new title>")
    else:
        pdf_file_name = sys.argv[1]
        new_title = sys.argv[2]
        change_pdf_title(pdf_file_name, new_title)
        print(f"Updated the title of '{pdf_file_name}' to '{new_title}'")

コメント

タイトルとURLをコピーしました