pdftohtmlを使った英文PDF文章の和訳変換

英語で書かれたPDFマニュアルを翻訳ソフトを使って英日変換できないかということでやってみた。

■簡単な処理の流れ

  • 英文で書かれたPDFマニュアルをpdftohtmlでhtml化
  • 市販の翻訳ソフトの本格翻訳5で一括変換
  • 変換後の名前の変えられたファイルをリンク内から呼び出せるようにリンク先の呼び出しファイル名の修正


■感想
想像以上に微妙な出来具合だったが、もの自体は一応出来た。


■必要なもの
□テキストと画像の抽出にセキュリティのかかってないPDFファイル

□pdftohtml(PDFをHTMLに変換するツール)
pdftohtml-0.39-win32.tar.gz
pdftohtml download | SourceForge.net
※ただし今回利用したのは"pdftohtml-0.38"でそこら辺から落としてきた。アドレス失念。

□ghostscript (画像抽出に"pdftohtml"が"gswin32c.exe"を利用するため)
gs863w32full-gpl.zip
ftp://ftp.t.ring.gr.jp/pub/text/TeX/ptex-win32/gs/

インストールはこちらを参考に
Ghostscript 8.63 + GSview 4.9 の日本語版
Ghostscript and GSView
環境変数にPATHを通すことを忘れないこと。

□翻訳ツール(ここでは市販のもの"本格翻訳5"を使う)
本格翻訳5
ロングセラーの翻訳ソフト「本格翻訳10」|ソースネクスト


■場合によっては必要なもの(翻訳ソフトによる)

□テキストの整形や置換
翻訳ツールの都合で、後処理にリンクの修正が必要だったので"Repl_Ace on .NET"というテキスト置換ツールを使ってみた。
Repl_Ace on .NET Ver 1.0.4
Repl-Ace on .NET
何かいろいろランタイムライブラリが必要なので注意。


■作業過程

今回、利用した英文PDFマニュアルは"Carrara6 Pro"という3D制作ソフトに添付されていたマニュアル。

Carrara7
Carrara 8 Pro | 3D Models and 3D Software by Daz 3D

決して安くないソフトだが、こっちの方でまれにありえない割引をやる。
Fast Grab 3D Models | 3D Models and 3D Software by Daz 3DFast Grab 3D Models | 3D Models and 3D Software by Daz 3D
また3月ごろにすごいセールもするようなので興味ある人はその辺、ネットで調べた方がいいだろうね。


□PDFファイルをHTMLファイルに変換

DOS窓から以下のコマンドラインを打ち込む。

pdftohtml.exe -c CarraraOnlineHelp.pdf CarraraOnlineHelp.html

処理に時間がかかる。DOS窓がプロンプトを返すまでは放置しておく。
gswin32c.exeがなんたらと言ってきたらghostscriptのインストールを見直す。
環境変数にPATHが通ってないか、古いghostscriptの残骸がいたずらをしてる可能性あり。

うまくいくと、大量のhtmlファイルと画像のpngファイルが生成されてるはず。
こいつらを適当なフォルダを作って移動させる(必須じゃないけど)。


□HTMLファイルを翻訳変換
本格翻訳5では一括変換という機能があるのでそれを使う。ランチャーから一括変換ボタンをクリックしてウィンドウを出し、そのウィンドウに全てのHTMLファイルを放り込む。
今回、翻訳精度の設定は最低値。精度を上げても時間がかかるばかりでぶっちゃけ目くそ鼻くそだ。
CPU:AthlonXP 1800+でだいたい2時間くらい。まあ、ファイルが800近くあるから。


□HTMLドキュメント内部のリンク先ファイル名の記述の変換
出力された変換後のファイルは元のファイル名に"_AD"と付けられるのだが、これは仕様。なのでそのままだとリンク先は元のファイル名を参照してしまう。
テキスト整形に慣れてる人はPerlRubyでちゃちゃっと修正するのだろうが、俺は勘弁。今回は、"Repl_Ace on .NET"というテキスト変換ツールを使った。
このプログラムは規定設定だと変換前のテキストをこのプログラムのある場所にバックアップを取ってくれる親切設計だが、整形かける前に元データのバックアップは取っておくべきだろうな。

  • 「検索する場所」をフォルダで指定して、「検索ファイル名」に*.htmlと入力。
  • 「検索文字列」に元のテキスト、「置換文字列」に変換したいテキストを入力して「追加」ボタンでリスト欄に積み上げていく。
  • 置換処理の内容は今回はこんな感じ。正規表現.NET Framework準拠みたいだけどPerl辺りのやつで何とかなった。

正規表現メモ


(元)CarraraOnlineHelp-+[0-9]+
(先)$&_AD


(元)CarraraOnlineHelp.html
(先)CarraraOnlineHelp_AD.html


(元)CarraraOnlineHelp_ind.html
(先)CarraraOnlineHelp_ind_AD.html


(元)CarraraOnlineHelp-outline.html
(先)CarraraOnlineHelp-outline_AD.html

  • 正規表現を使う」にチェック。
  • 実行ボタンを押す。


■総括

どんな仕上がり具合かは以下の通り。

・PDFマニュアル


・pdftohtmlで変換した英文のHTML

なかなか綺麗に変換されてる。


・さらに日本語変換したもの

ちょっと整形が崩れてる。


pdftohtmlの変換精度はかなり高いんじゃないだろうか。綺麗に2段組も再現してるし。
これしか試してないから結論出すのは早いだろうが。
ここには画像がないが、残念ながらPDFの栞の見出しを受け継ぐのは駄目でPage1,Page2というフレームでの見出し項目になってる。

日本語に関してはごらんのように改行などにところどころ不具合が出てる。翻訳ソフトの翻訳精度はこれはどうしようもないが、整形の方はあるいはソフトによったらもう少しましになるかもしれないね。