【Python】PDFを座標指定して画像保存する:2選

Python_PDFから座標指定して画像保存_アイキャッチ Python

PythonのSubprocessを使用して、PDFの一部を画像保存するコードをご紹介します。

ぜひ、お試しください。

PDFを座標指定して画像保存(特定PDF)

以下のコードを実行すると、PDFの一部を画像保存します。


import pyautogui as pag
from PIL import Image
import subprocess
import time

acr_path = "C:/Program Files/Adobe/Acrobat DC/Acrobat/Acrobat.exe"

#PDF指定
pdf_path = 'C:/Users/admin/Desktop/test/PDFファイル/経費精算書_001.pdf'

#PDFファイルを開く
pdf_pro = subprocess.Popen([acr_path,pdf_path],shell=False)
time.sleep(2)

#座標指定箇所を切り取りして画像保存
name_img = pag.screenshot('temp.png',region=(519, 236, 150, 40))

pdf_pro.kill()

 

コード実行前

切り抜く部分の座標をあらかじめ取得しておき、
[region=(519, 236, 150, 40)] へ入力します。

 

コード実行後

指定したPDFファイルを開き、
座標部分を「temp.png」というファイル名で画像保存します。

その後、PDFを閉じます。


 
 

PDFを座標指定して画像保存(複数PDF)

以下のコードを実行すると、複数PDFファイルの指定箇所を画像データとして保存します。


import pyautogui as pag
from PIL import Image
import subprocess
import os
import time

acr_path = "C:/Program Files/Adobe/Acrobat DC/Acrobat/Acrobat.exe"

#PDF指定
pdf_path = 'C:/Users/admin/Desktop/test/PDFファイル/'

pdf_list = os.listdir(pdf_path)
i = 1

#フォルダ内にあるPDFファイルをループ
for idx,file in enumerate(pdf_list):

    #PDFファイルを開く
    pdf_pro = subprocess.Popen([acr_path,pdf_path+file],shell=False)
    time.sleep(2)

    #座標指定箇所を切り取りして画像保存
    name_img = pag.screenshot(str(i) + 'temp.png',region=(519, 236, 150, 40))

    i = i + 1
    pdf_pro.kill()
    time.sleep(1)

 

コード実行前

[pdf_path] フォルダ内に、複数のPDFファイルが存在しています。


 

PDFは全ファイル同じフォーマットです。

 

コード実行後

[pdf_path] 内をループし、1つずつPDFファイルを開いて画像を保存します。

指定座標のテキスト部分を抽出することができました。


 
 
動作環境
Python 3.7.4
PyAutoGUI 0.9.52

この記事がお役に立ちますと幸いです。
 

PythonでOCR:PDFから文字抽出(テキスト変換) 動画あり
...

 

「Python2年生 スクレイピングのしくみ」

機械学習を始めたい方必見
必要最低限の文法をピックアップして解説
ネットからデータ収集を始めたい方へオススメの1冊です!