外国語論文PDFからテキストを取得し、DeepLで一括翻訳(連続翻訳)するアプリケーション(DeepLのAPI不使用)

# Simple Translator(外国語翻訳ツール)のPDFのテキスト抽出機能

# 概要

以前、外国語の翻訳を一括(連続)で行う以下のアプリケーションを作りましたが、外国語論文PDFを翻訳する機能を説明していなかったので新しく記事を作成しました。
※ここでは外国語論文PDFを翻訳する機能の説明を行いますが、外国語論文を読む人は外国語特許文献も読むことが多いので外国語特許文献情報を取得し、一括翻訳(連続翻訳)する記事のリンクも以下に載せておきます。

### Simple Translator(外国語翻訳ツール)のページはこちら

https://qiita.com/generalfujiki/items/c2a6931f86a0513c6580

### Google Patentsから取得した特許文献情報をDeepLで一括翻訳(連続翻訳)する説明のページはこちら

https://qiita.com/generalfujiki/items/70ba11adfbf8479cc169

### 技術的に工夫した点

https://qiita.com/generalfujiki/items/009a9a1cc7e779e6dc12

# 課題

現在の仕事において外国語論文PDFを読む機会が多く、翻訳が面倒なのでどうにかできないか調べたところ、WordでPDFを開いてテキストを取得できることが分かりました。しかし、PDFから取得したテキストには問題があります。テキストが途中で分断されていたり、テキストに制御文字などが含まれていたりする問題があるので、ただ翻訳するだけでは正確な翻訳が得られません。

# 解決手段

PDFから取得したテキストを一旦Excelに出力し、出力されたテキストを修正してから翻訳するようにしました。すべてを自動で行うのではなく「テキスト取得」と「テキスト翻訳」の間に手作業で行う「テキスト編集」をワンクッション入れた半手動のアプリケーションとしました。
作業手順としては大きく分けて以下の4つを行います。
- ExcelからPDF選択ボタンを押してPDFを選択すると、PDFから取得したテキストがセルに出力される
- 取得したテキストを整形ボタンで整形する
- 整形したテキストを手作業で編集する
- 編集したテキストをDeepLで翻訳する

# 必要なもの

### OS

- Microsoft Windows 10 または Microsoft Windows 11

### ソフトウェア

- Google Chrome
- Microsoft Excel 2010、Microsoft Excel 2016、Microsoft Excel 2019（Excel 2013、Excel 2021 は未確認）
- Microsoft Word 2016 または Microsoft Word2019（Word 2010、Word 2013、Word2021 は未確認）
- Chrome Driver

# 使い方

- [SimpleTranslator の zip ファイル][b]← クリックしてダウンロードします。
- 上記 1.でダウンロードした zip ファイルを解凍し、SimpleTranslator フォルダ内の SimpleTranslator.xlsm を開きます。
- 言語選択コンボボックスを選択します。
![img001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/c2fa222e-510e-6d6f-6e9e-51c84925cac5.png)
- 翻訳先の言語を選択します。
![img002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/948e008f-2fde-c6df-1f85-02c537c75429.png)
- 表示順を「翻訳文 → 原文」「原文 → 翻訳文」のどちらにするかのラジオボタンを選択します。
![img003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/0248c380-ce11-1721-514b-326b33e05c0f.png)
- [サンプルページ][c]をクリックすると以下のPDFが表示されるので下矢印をクリックします。
![img012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/a11ee0ba-26a2-9842-5348-f806bbb8b88e.png)
- 「名前を付けて保存」ダイアログが表示されるので「mud」と入力して「保存ボタン」を押し、PDFを保存します。
![img013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/6bf23532-b000-605c-5bf5-3fdc1442f6f1.png)
- 「PDF選択ボタン」を押します。
![img014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/bc7e56a4-c1dc-e7c6-2f5c-c732e0cd7c60.png)
- 保存したPDFを選択し「OKボタン」を押します。
![img015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/45945826-989d-754e-848e-2e71be558ce7.png)
- WordでPDFを開き、テキストを取得する処理が始まります。※今のところプログレスバーなどの処理を入れていないので画面が止まったようになります。
- テキストを取得すると画面に取得したテキストが表示されるので「整形ボタン」を押し、取得したテキストを整形します。
![img016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/3363894e-0d66-2e02-0806-d75002dafc95.png)
- 不必要なテキストを削除します。赤枠囲まれたセルを選択し、キーボードの「Deleteキー」を押しテキストを削除します。
![img017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/94ee667e-861d-ae36-1768-49551b92373a.png)
- 空白行を詰めるための「整形ボタン」を押します。
![img018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/b9d47848-8a7d-297d-1cb6-f07bdc67a989.png)
- 9行目のセルと10行目のセルのテキストが分断されているので、9行目のセルと10行目のセルを選択し「結合ボタン」を押します。
![img019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/cd17e83b-a219-68a8-9fa8-d4223af9f750.png)
- 9行目のセルと10行目のセルが結合され、空白が詰められます。以上の作業を繰り返し、テキストが正しくなるまで修正します。
![img020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/24bef6e3-da0d-7a69-f874-08ba8c107e5f.png)
- テキストを修正したら「翻訳(HTML)ボタン」を押します
![img021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/f8b75e8a-bf18-2ade-d314-b4161e8fa04a.png)
- 「名前を付けて保存」ダイアログが表示されます。
![img022.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/00874a14-b3de-d603-d3e2-987ede7f76e1.png)
- 名前を入力し保存します。ここでは「mud」と入力し「保存ボタン」を押します。
![img023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/f2a554ce-4950-87e6-647d-e9192a219454.png)
- 翻訳が開始され、プログレスバーが表示されるのでしばらく待ちます。
![img024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/04e9b9dd-2c6c-e9c0-f8a4-102d3cd820b6.png)
- 翻訳が完成するとブラウザが立ち上がり翻訳結果が出力されます。
![img025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2110312/50008f20-f75d-3ab4-40b7-e4c5fd9360c7.png)
- 翻訳結果は HTML の形式でアプリケーションと同じ場所のディレクトリに作成されます。

[b]: https://github.com/masatofujiki/SimpleTranslator/archive/refs/tags/v1.3.1.zip
[c]: https://s3.amazonaws.com/systemsandpapers/papers/bigballofmud.pdf