Word の取り消し線を反映したテキストを Ruby で取得する方法

スクリプト
スポンサーリンク

最も簡単・確実だと思われる方法について紹介します.

スポンサーリンク

背景

Word ファイルにおいて,内容を削除する意図で取り消し線を使用することは良くあるかと思います.
例えば次のような感じ.

Word画面

これらの表記は,人間からすると削除するという意図は伝わってくるのですが,ファイルをプログラムで処理する場合にはちょっと厄介です.そこで,それらの表記を踏まえてセルの内容を取得するスクリプトを作ってみました.

スクリプト

get_norm_text という関数が取り消し線をハンドリングする部分です.

冒頭に掲載した内容の sample.docx ファイルに対して上記のスクリプトを実行すると,以下の出力が得られます.取り消し線や二重取り消し線が設定された文字が削除されていることが分かるかと思います.

解説

処理のポイントは,Characters によって範囲内の文字を一文字づつ取得している部分です.これを使うと,文字毎の書式を取得できるため,簡単に取り消し線が設定された文字を削除することができます.

コメント