2007年10月30日火曜日

Word 2007の.DOCXファイルから高解像度の画像データを取り出す

タイトルの件、前から悩んでたんですよ。写真のデータを送るとお客さんがよく言ってきます。メールに添付するので、というのでメールを開くとワードのデータが入っていてソレに写真が貼り付けてある。

あぁ・・これから画像出すと劣化してるんだよなぁ・・・

などと思っていましたが。

これで解決。

その1
Wordの.DOCファイルに含まれている高解像度のオリジナル画像データを.PNGファイルとして取り出す方法。
ファイルをWebページとして保存し、そこに出力された.PNGファイルを読み出す方法であったが、同様の方法は(2007 Office systemファミリの)Word 2007でも可能である。Word 2007では従来の.DOCではなく、新しく.DOCXファイル形式が利用されているが、このファイルの内容を直接ブラウズすれば、いちいち保存し直さなくても画像データ・ファイルを取り出すことができる。本TIPSでは、この方法について解説する。

よそからのコピーなのでちょっと日本語が繋がらないかな?


方法その2
2007 Office systemでは新しくXMLベースのファイル形式が利用され、例えば.DOCではなく、.DOCXという拡張子のファイルが作成されるようになっている。このファイルは実はXMLベースのデータ(ファイル)を、ZIP形式でまとめて圧縮したものである。そのため、.DOCXファイルの内部をのぞくには、単に拡張子を.ZIPに変更するだけでよい。
 例えば、sample.docxというWord 2007のファイルがあった場合、これをsample.docx.zipなどというふうに、.ZIPという拡張子にリネームする。するとエクスプローラでそのまま内容をブラウズできるようになる。
リネームした.ZIPファイルの中には多数のファイルやフォルダがあるが、このうちword\mediaというフォルダに格納されている.PNGファイルが文書ファイル中の画像データである。以下は、上の画面にあるmediaフォルダを.ZIPファイルから取り出し、エクスプローラで見たところである(いったん取り出さないと、画像解像度情報などが表示されない)。
ただしこれらの.PNG画像ファイルは、文書中に貼り付けたオリジナルの画像の解像度ではなく、使用サイズ(文書中での割り付けサイズ)に応じて自動的に縮小/リサイズされている。上の例では、元々は1024×768の解像度のビットマップ・データを、サイズを縮小しながら5つ文書中に貼り付けているのだが、最終的には異なるサイズの.PNGファイルが作成されている。よって、.DOCXファイルから画像データを取り出しても、(貼り付けるサイズによっては)元の高解像度のデータはもう得られないことに注意していただきたい。いったん.DOCXとして保存すると、後で画像の割り付けサイズを拡大しても、もう元の解像度のデータには戻らない(.DOCXファイルのサイズが小さいのは、このように自動的に画像ファイルのリサイズなども行うからといえる)。


うわわ・・・長くなった・・・
しかも、難しいか?
ま、参考程度に・・・

0 件のコメント: