Open4
【python】PDFの翻訳

1ヶ月無料あり

ファイル分割して、ファイルあたりの文字数を減らす
環境設定
pipでpypdfをインストールします。
pip install pypdf
分割
from pypdf import PdfReader, PdfWriter
FILE_NAME = "input.pdf"
CHUNK_SIZE = 200 # 100ページごとに分割
# PDFを読み込む
reader = PdfReader(FILE_NAME)
total_pages = len(reader.pages)
# 100ページごとに分割
for i in range(0, total_pages, CHUNK_SIZE):
writer = PdfWriter()
# このチャンクの開始〜終了ページを設定
chunk_pages = reader.pages[i:i + CHUNK_SIZE]
# ページを追加
for page in chunk_pages:
writer.add_page(page)
# ファイルに書き出し
part_num = i // CHUNK_SIZE + 1
output_file = f"part_{part_num}.pdf"
with open(output_file, "wb") as fp:
writer.write(fp)
print(f"{output_file} を出力しました")
Deepl翻訳
結合
from pypdf import PdfReader, PdfWriter
# 結合したいPDFファイル名(順番も重要)
pdf_files = [
"part_1 ja.pdf",
"part_2 ja.pdf",
# 必要に応じて追加
]
writer = PdfWriter()
# 各PDFを読み込んでページを追加
for file_name in pdf_files:
reader = PdfReader(file_name)
for page in reader.pages:
writer.add_page(page)
# 結合後のファイルを出力
output_file = "combined.pdf"
with open(output_file, "wb") as fp:
writer.write(fp)
print(f"{output_file} を出力しました")

google翻訳も早い。ある程度ファイル分割は必要
無料なのがいい

ページ分割しても10MB以下にならない時に圧縮する
pip install PyMuPDF
import fitz # PyMuPDF
def compress_pdf(input_pdf, output_pdf):
"""
指定したPDFファイルを圧縮して保存します。
Parameters:
input_pdf (str): 入力PDFファイルのパス
output_pdf (str): 圧縮後のPDFファイルの保存先パス
"""
doc = fitz.open(input_pdf)
doc.save(
output_pdf,
deflate=True, # 未圧縮ストリームを圧縮
garbage=4, # 未使用オブジェクトを削除
clean=True # 冗長な情報を削除
)
doc.close()
# 使い方例
# compress_pdf("input.pdf", "output_compressed.pdf")