MS-Wordファイルからテキストを抽出し、編集後に書き戻す機能を追加したPinconvのバージョン4.06を公開します。
- ダウンロード:
- pinconv4.exe (インストーラ形式 – 3.75MB)
- pinconv4.zip (zip形式 – 3.40MB)
Pinconvの紹介はこちらのエントリ、詳しい使い方についてはPinconvの使い方を参照下さい。窓の杜による紹介記事はこちらです。
MS-Wordのファイルからテキストを抽出・編集・上書き
Wordのファイルをテキストエディタで編集したいと思ったことがあるのは、私だけではないでしょう。Wordは優れたアプリケーションですが、テキストをガリガリと入力する時は使い慣れたテキストエディタの方が効率がいいですし、テキストが相手なら置換や整形、校正、翻訳支援など各種ツールを利用して作業の省力化を図ることができます。
私はふだんほとんどの翻訳作業をPinconv上で行っています。変換データファイル「中日.dat」をベースに翻訳用のデータファイルを作成していて、固有名詞や専門用語などを数千語登録しています。
たとえば、翻訳対象である中国語の原文に「发改委」という単語が出てきたとしましょう。この言葉は組織名の略称ですので日本語にすると「発展改革委員会」となります。いつ、どのような文脈で出てきても必ず「発展改革委員会」と訳出することになりますので、毎回「hattennkaikakuiinnkai」とバカ正直にタイピングするのは避けたいところです。
そこで先ほどの翻訳用データファイルに「发改委」と「発展改革委員会」のペアを登録しておきます。そうすると次からはGhostを実行するだけで「发改委」が「発展改革委員会」に変換されますので入力の手間が省けます。手間が省けるだけでなく入力ミスの心配もなくなります。効率を上げミスも防ぐ。私のように無精でそそっかしい人間には最適の作業環境です。
しかしながら現実は思うに任せないもので、最終的に納品するのはたいていWordファイルです。表組みやテキストボックスの中を翻訳しなければいけないこともあります。プレーンテキストに落としてしまうとこうしたレイアウトなどの書式情報は保持されないため、自前で復元しなければいけません。当たり前ですがものすごく面倒です。
職人芸の域に達している複雑な表組みやテキストボックスを多用したフローチャートなどは、ツールで翻訳の効率化を実現してもレイアウトを復元する労力の方がそれを上回るのでメリットがありません1。
そこで必要となるのが次のようなソリューション。Wordファイルからテキストを抜き出し、エディタを使って書式やレイアウトを改変することなくテキスト部分だけを編集し、作業が完了したら修正内容を元のファイルに反映させる。これができれば使い慣れた環境がそのまま使えますし、面倒な編集作業に時間を取られることもありません。
今回Pinconvに実装した「テキストの抽出」と「書き戻し」は、上述の機能を実現するものです。以下、実際の作業手順を紹介します。
テキスト抽出の手順
0.テキストの抽出と書き戻しを利用するには、使用している電脳にWordがインストールされている必要があります。
1.まず「ツール」メニューの「MS-Wordからテキストを抽出」を実行し、処理対象のWordファイルを選択します。拡張子はdoc、docx、xml、rtfに対応しています。
2.ファイルを選択するとテキストの抽出が行われます。このとき、拡張子がxml以外のファイルは、まずXMLに変換され※、そのXMLファイルからテキストの抽出が行われます。抽出はパラグラフ単位で行われ、パラグラフの先頭には連番が振られます(<1>のようにタグで括られます)。この番号は編集後にWordファイルに書き戻す際に必要となりますので消さないように注意してください。何もない空のパラグラフにも番号が振られますが、消してしまうと書き戻しができなくなります。
※変換にはWordの機能を使うため、一時的にWordが立ち上がりますが変換後は自動的に閉じます。なお、変換してできたXMLファイルは元のWordファイルと同じフォルダに作成されます。
3.テキストの抽出を行う際、太字、下線、斜体、文字色、背景色、フォントサイズなどのほか、コメント、脚注、テキストボックスなど書式情報を保持する必要がある部分については、簡易マークアップでそれを表現します(簡易マークアップの詳細はこちらを参照)。
たとえば、このワードファイル(リンク:Google Docs)からテキストを抽出すると次のようになります。
4.抽出が終わるとWordファイルと同じフォルダにテキストファイルが出力され、新しいバッファにその内容が表示されます。以上で作業は完了です。抽出したテキストに対して一括置換を行ったり、Ghostを適用して翻訳したりするなど適宜編集を行い、次の書き戻しのステップに進みます。
Wordファイルへの書き戻し
1.「ツール」メニューから「MS-Wordファイルのテキストを上書き」を実行すると以下のダイアログが表示されます。
このダイアログでは、書き戻すテキストファイルと抽出元のWordファイル2を指定します。
2.テキストファイルの入力欄には、現在編集中のテキストファイルが自動的に入力されます。違うファイルを指定する場合は、入力欄横の「…」ボタンを押し、ファイルを指定してください。
3.テキストファイルと同じフォルダにそのファイルと拡張子以外の部分が同じXMLファイルがあれば (たとえばテキストファイルが「ctestテスト.txtの場合、「ctestテスト.xml」)、抽出元のファイルと見なされ、下段のファイル入力欄に自動入力されます。違うファイルを指定する場合は、テキストファイルと同様に「…」ボタンを押し、ファイルを指定してください。
4.ファイルの指定が完了し、「OK」ボタンを押すと書き戻し処理が行われます。問題なく処理が終われば、抽出元のファイル名+今日の日付.xmlの形式でXMLファイルが作成され、作成されたファイルをWordで開くかどうかの確認ダイアログが表示されます。問題が発生した場合は、抽出元ファイルと同じフォルダにログファイルが作成されます。
5.以上で書き戻しは完了です。Word上で処理結果を確認して下さい。なお、ファイル全体のフォント情報は変更されませんのでファイルを開いてみて表示がおかしい場合は調整する必要があります。
簡易マークアップ
- 太字:((太字の文字列|b))
- 下線:((下線が施された文字列|u))
- 斜体:((斜体の文字列|i))
- 文字色:((色が指定された文字列|fg|色))
- 背景色:((背景色が指定された文字列|bg|色))
- 上付き:((上付きが指定された文字列|sup))
- 下付き:((下付きが指定された文字列|sub))
- フォントサイズ:((サイズが指定された文字列|sz|サイズ))
- コメントが付けられた文字列:((コメントが付けられたテキスト|cbody|番号))
- コメントの内容:((コメントの内容|comment))
- 脚注:((脚注の内容|fnote))
- テキストボックス:((テキストボックスの内容|tbx))
エラーログの内容
- LINEHEAD:パラグラフの文字列…書き戻そうとしているテキストの先頭に<1>形式の番号がないため、抽出元ファイルとの対応が確認できない。
- NUMBER:パラグラフの文字列…書き戻そうとしているテキストの番号と抽出元ファイルの構造が一致していない。
1件のコメント