Pythonを使ってPDFの改行無しの翻訳をDeepLで実行する


目的

ショートカットキーを使って簡単に改行無しのPDFの翻訳を行う。

環境

windows 10
python 3.10

コード

パッケージのインストール

今回使うパッケージをインストールします。

pip install keyboard pyautogui pyperclip
# keyboard: ショートカットキーの受け取りに使う
# pyautogui: 画面の操作に使う
# pyperclip: クリップボードの取得に使う

パッケージのインポート

必要なパッケージをインポートします。

import keyboard
import pyautogui
import pyperclip
import re # 改行の削除
import time
import os # DeepLを開く

メイン

def main():
    #  現在選択されているテキストをコピーする
    pyautogui.hotkey("ctrl", "c")
    #  DeepLを開く
    os.system("DeepL.exeのパス")

    #  コピーされたテキストを取得し改行を削除したテキストをクリップボードに保存する。
    text = pyperclip.paste()
    text = " " + text
    text = re.sub(r"\r\n|\r|\n", " ", text).replace("  ", " ")
    pyperclip.copy(text)

    # 0.075秒待つ。DeepLが開いてDeepLに移動するまで少し時間がかかるため少し待つ
    time.sleep(0.075)

    # DeepLの入力欄をクリックし以前のテキストをすべて選択し、上書きペーストする
    pyautogui.leftClick(x=121, y=185)
    pyautogui.hotkey("ctrl", "a")
    pyautogui.hotkey("ctrl", "v")

実行

if __name__ == "__main__":
    #ショートカットキーを押すとmain関数を実行する
    keyboard.add_hotkey("ショートカットキー", main)
    # escを押すとプログラムが終了する
    keyboard.wait("esc")

ファイル全体

このスクリプトを保存しファイルを実行すれば終了するまでショートカットキーを押せば改行無しで翻訳をすることができる。

import keyboard
import pyautogui
import pyperclip
import re # 改行の削除
import time
import os # DeepLを開く

def main():
    #  現在選択されているテキストをコピーする
    pyautogui.hotkey("ctrl", "c")
    #  DeepLを開く
    os.system("DeepL.exeのパス")

    #  コピーされたテキストを取得し改行を削除したテキストをクリップボードに保存する。
    text = pyperclip.paste()
    text = " " + text
    text = re.sub(r"\r\n|\r|\n", " ", text).replace("  ", " ")
    pyperclip.copy(text)

    # 0.075秒待つ。DeepLが開いてDeepLに移動するまで少し時間がかかるため少し待つ
    time.sleep(0.075)

    # DeepLの入力欄をクリックし以前のテキストをすべて選択し、上書きペーストする
    pyautogui.leftClick(x=121, y=185)
    pyautogui.hotkey("ctrl", "a")
    pyautogui.hotkey("ctrl", "v")

if __name__ == "__main__":
    #ショートカットキーを押すとmain関数を実行する
    keyboard.add_hotkey("ショートカットキー", main)
    # escを押すとプログラムが終了する
    keyboard.wait("esc")