pdf2img.py ダウンロード/コピー
pdf2img.py
pdf2img.py
1"""
2概要:
3 PDFファイルを画像に変換するスクリプトです。
4詳細説明:
5 コマンドライン引数から入力ファイル名、出力ディレクトリ、出力フォーマットを受け取り、
6 PyMuPDFを利用してPDFの各ページを画像ファイルとして保存します。
7関連リンク:
8 pdf2img_usage
9"""
10import os
11import sys
12try:
13 import fitz # PyMuPDF
14except:
15 print("\npptx2pdf_recursive.py: Import error: fitz")
16 input("Install: pip install pymupdf\n")
17
18
19infile = 'output.pdf'
20out_dir = 'images'
21image_format = 'png'
22
23
24nargv = len(sys.argv)
25if nargv >= 2: infile = sys.argv[1]
26if nargv >= 3: out_dir = sys.argv[2]
27if nargv >= 4: image_format = sys.argv[3]
28
29
30def convert_pdf_to_images(pdf_file, out_dir, image_format):
31 """
32 概要:
33 指定されたPDFファイルを開き、各ページを画像ファイルとして保存します。
34 詳細説明:
35 出力先ディレクトリが存在しない場合は新規に作成します。
36 PDFの全ページを順に読み込み、指定されたフォーマットの画像ファイルとして書き出します。
37 引数:
38 :param pdf_file: 読み込むPDFファイルのパス。
39 :type pdf_file: str
40 :param out_dir: 画像を保存する出力先ディレクトリのパス。
41 :type out_dir: str
42 :param image_format: 保存する画像ファイルの拡張子またはフォーマット名。
43 :type image_format: str
44 戻り値:
45 :returns: なし。
46 :rtype: None
47 """
48 print(f"Input file: [{pdf_file}]")
49 print(f"Output dir: [{out_dir}]")
50 print(f"Output format: [{image_format}]")
51
52
53 if not os.path.exists(out_dir):
54 print(f"Create [{out_dir}]")
55 os.makedirs(out_dir)
56
57 print(f"Open [{pdf_file}]")
58 doc = fitz.open(pdf_file)
59 print(f"Exporting as images [{image_format}] to [{out_dir}]")
60 for page_num in range(len(doc)):
61 page = doc.load_page(page_num)
62 pix = page.get_pixmap()
63 output_path = os.path.join(out_dir, f'page_{page_num + 1}.{image_format}')
64 pix.save(output_path)
65
66if __name__ == '__main__':
67 current_dir = os.getcwd()
68 pdf_path = os.path.join(current_dir, pdf_file)
69
70 convert_pdf_to_images(pdf_path, out_dir, image_format)