Wordに埋め込まれたイメージ画像の解像度はどうなるか?

Microsoft Wordで原稿を書くとき、イメージ画像(イメージ)をWord文書の中に埋め込むことが多い。そのWord文書をCAS-UBに取り込んで、特にPDFを生成してプリントオンデマンド(POD)で印刷本にするとイメージの解像度が低くてぼやけてしまう経験がある。こうしたイメージはできればベクトル図形にするべきだが、画面のスナップショットなどはそうもいかない[1]

PODで本を作るときなど、これは大きな問題なので対応策を考える必要がある。

そこで、Wordに埋め込まれたイメージの解像度の扱いについて調査してみた。なお、以下の調査結果は次の条件による。
・PNG形式とJPEG形式についての調査結果を説明する。以下の調査結果は、JPEG、PNGとも共通である。
・Wordのバージョンは2013(32ビット)、動作環境はWindows10(64ビット)で調査した。

なお、解像度は縦横のピクセル数(px)とインチあたりのピクセル数(ppi)という2つの意味で用いているので注意(参考資料[2]を参照)。

Wordに埋め込まれたイメージの解像度の扱いは、Wordの内部でのイメージの持ち方に依存する。Office Open XML(OOXML)[3]でWordの内部のイメージはVMLのシェープ形式(旧形式)またはOOXMLのシェープ形式(新形式)のどちらかである。

(1) Wordの編集の画面に、イメージファイルをドラッグ&ドロップするとイメージは旧形式として保存される。
(2) イメージファイルをコピーしてWordの編集画面にペーストするか、Wordの「挿入」の「画像」で表示されるダイヤログでイメージを編集中の文書に挿入すると新形式として保存される。

Wordの「ファイル」「オプション」には、ファイル内のイメージの扱いについての設定がある(次の図)。この設定は新形式で保存されたときのみ有効である。

・「ファイル内のイメージを圧縮しない」にチェックがない状態(デフォルト)では、イメージの解像度は次の条件で圧縮される。
 取り込んだイメージの解像度をZ0pxとする。
 文書の中のイメージの幅をXmmに編集したとする。オプションで設定した既定の解像度をRppiに設定しているとき、その幅に入るイメージの解像度Z1pxは次のようになる。
 Z1=X/25.4(mm/inch)*R(ppi)
 Wordの中のイメージの解像度Zpxは、Z=min(Z0,Z1)
 
例えば、A4用紙(幅210mm)に左右各30mmの余白を設定しているとき、版面の幅は150mmである。150mmの幅は既定の解像度220ppiのとき、150mm/25.4*220=1299pxに相当する。

このため横幅がそれよりも大きい解像度のイメージは圧縮される。横幅は1299よりも小さい解像度のイメージはそのままの解像度でファイルに保存される。厳密には多少の許容範囲があり、例えば横幅1300pxのイメージは圧縮されない。

もし、Wordの編集画面でイメージの表示幅を55mm設定にして保存すると、元のイメージの解像度が55mm/25.4*220=477pxよりも大きなとき、477pxに圧縮されてしまう。
Wordで保存したファイルには圧縮された画像だけが保存されるので元に戻せない。

・「ファイル内のイメージを圧縮しない」にチェックすると、Word上でのイメージの表示幅にかかわらずイメージは圧縮されない。

イメージの解像度をWordに勝手に変更されたくない場合は、「ファイル内のイメージを圧縮しない」にチェックしておく必要がある。

なお、ドラッグ&ドロップで配置したイメージは旧形式となるが、旧形式に対しては、「ファイル」「オプション」の、ファイル内のイメージの扱いについての設定は影響を与えない。つまりドラッグ&ドロップで配置したイメージはWordの編集でサイズを表示サイズを変更しても影響を受けない

旧形式で保存されるイメージを圧縮するには、イメージを選択して表示される「図ツール」「書式」タブの「図の圧縮」ボタンをクリックして表示される「図の圧縮」ダイヤログで設定する。

【参考】
1.『XSL-FOの基礎』画像制作のこと。Word経由でインポートした画像は印刷品質の劣化が激しいため、第2版ではできるだけSVG形式に変更した件。
2.解像度とは
3.Office Open XML(OOXML)

OOXMLとは (JEPA EbookPediaの原稿ドラフト)

JepaのEbookpediaは3月13日公開されました:

OOXML

最後に互換性について追加しています。
本ブログにいただいたコメントを元にしています。

—————–
JEPA EbookPedia今月はOOXMLの解説を書こうと思っています。

そこで、ドラフトを以下に公開します。ご不明点などのコメントをいただけるとありがたいです。

----
OOXMLとは

 OOXML(Office Open XML)はマイクロソフトOfficeの文書形式をXMLに準拠して規定したファイル形式仕様の名前である。Office 2007のファイル形式が初めて全面的にOOXMLで規定されて現在に至っている。

もっと詳しく
Officeの文書形式は2003まで独自のバイナリー形式であった。マイクロソフトWordでは独自のバイナリー形式とRTFという交換形式が規定されていた。Word 2003で初めて、WordProcessing MLというXML形式が規定された。

Office 2007では、Word、Excel、PowerPointの三つのアプリケーションの文書形式がOffice Open XML というXML形式で規定された。これをOOXMLという。

Office 2007のOOXML形式は2006年12月にECMA-376第1版として出版された。その後2008年12月にECMA-376第2版が出版され、第2版を元にISO/IEC 29500:2008仕様となった。ECMA-376とISO/IEC 29500はOfficeのバージョンアップと並行して改訂されている。最新のOffice 2016の文書形式はECMA-376第5版、ISO/IEC 29500:2016である。

国際標準化競争
マイクロソフトがOfficeの文書形式をOOXMLという形で国際標準化を進めたのは、当時の競合であるサン・マイクロシステムズのオープンソースのオフィスアプリケーションOpen Officeが大きな影響を与えている。Open Officeの文書形式はOpenDocument Format (ODF)というXML形式で策定され、2005年にOASIS標準、次いで2006年にISO/IEC 26300:2006となった。

国際標準化により、政府・地方公共団体などでOpen Officeを採用し、マイクロソフトOfficeを閉め出す動きが見られた。こういった動きに対処するためにマイクロソフトはECMAを通じてOOXMLの国際標準化を急いだのである。

XML形式のメリット
マイクロソフトOfficeの文書形式がバイナリーの時代には、Officeの文書を他のアプリケーションで読むにはマイクロソフトから仕様書を入手すると共にOffice文書を解析しなければならなかった。XML化されてからは比較的簡単にOffice文書の内容を読んで再利用することができるようになった。また、他のアプリケーションでOffice文書と互換のファイルを簡単に出力できるようになった。

マイクロソフトWordの文書はRTFという拡張テキストとして保存して交換することが
できたが、それもすでにWordProcessing MLで置き換えられている。このようにXML技術によってOffice文書の交換方式は一新された。

—-
参考資料

[1] Office Open XML(OOXML)仕様とMicrosoft Officeのバージョンの関係
[2] WordML(Office2003)

もう少し整理してWebページを作ってみました。

サーバベース・コンバーター Office Open XML (OOXML) とは? 概要、メリットと活用アプリケーション

Office Open XML(OOXML)仕様とMicrosoft Officeのバージョンの関係

Microsoft OfficeのXML形式の仕様書はOffice Open XML(OOXML)として規定されている。当初はECMA-376標準として規定され、それを元にしてISO/IEC 29500として標準化された。

Microsoft Officeのバージョンアップにより、OOXMLの仕様も少しずつ改訂されている。特に、ISO/IEC 29500仕様書には移行版(Transitional)と厳密版(Strict)が規定されている[1]。移行版はECMA-376のEdition 1とほぼ同じである。厳密版はECMA-376のEdition 2と同じである。

ECMA-376のEdition 1、ISO/IEC 29500の移行版はMicrosoft Office 2007が読み書きできる。これらの仕様書は概ねMicrosoft Officeのバージョンアップに対応して拡張されている。

Ecma
バージョン番号 リリース ISO
Office 2007 2007年1月30日 ECMA-376 Edition 1
Office 2008 (mac版) 2007年1月30日 ECMA-376 Edition 2 ISO/IEC 29500:2008[2]
Office 2010 2010年6月17日 ECMA-376 Edition 3 ISO/IEC 29500:2011
Office 2013 2013年2月7日 ECMA-376 Edition 4 ISO/IEC 29500:2012
Office 2016 2015年9月23日 ECMA-376 Edition 5 ISO/IEC 29500-1:2016, ISO/IEC 29500-3:2015, ISO/IEC 29500-4:2016

※リリースはパッケージ版

ISOのカタログに記載されているISO/IEC 29500の仕様書一覧[3]を見るとパートによって最新の改訂年度が異なっている。パート2(ISO/IEC 29500-2)は2012年版が最新である。

ISO/IEC 29500-1:2016
Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference
(2008年版、2012年版は撤退)

ISO/IEC 29500-2:2012
Information technology — Document description and processing languages — Office Open XML File Formats — Part 2: Open Packaging Conventions
(2008年版は撤退)

ISO/IEC 29500-3:2015
Information technology — Document description and processing languages — Office Open XML File Formats — Part 3: Markup Compatibility and Extensibility
(2012年版は撤退)

ISO/IEC 29500-4:2008/Cor 1:2010

ISO/IEC 29500-4:2016
Information technology — Document description and processing languages — Office Open XML File Formats — Part 4: Transitional Migration Features

[1] Office Open XML と ECMA-376 仕様(Office 10)
[2] Publication of ISO/IEC 29500:2008, Information technology – Document description and processing languages – Office Open XML file formatsによるとISO/IEC 29500:2008はOffice 2008アプリケーションに基づいている、とされている。
[3] https://www.iso.org/ics/35.060/x/
[4] Office 2010のOOXMLはISO標準に準拠してない!? – 仕様サポート巡って議論

サーバベース・コンバーター Office Open XML (OOXML) とは? 概要、メリットと活用アプリケーション