yokaのblog

湖で微生物の研究してます

ベクタ画像をワードに貼りつけてPDF出力する方法

昨日に引き続いて論文投稿作業の罠にハマってしまったので備忘で書く。

やりたかったことは

ベクタ形式の図をワードの原稿上に貼って、ベクタ形式のままPDFとして出力したい

という毎日世界中で死ぬほど発生してそうな作業だったのだけど、調べても驚くほど情報が出てこなくて、結局半日近く費やしてしまった。結論としては「本気でちゃんとやるならAdobe Acrobatを買え」ということになりそうなのだけど、何とか無料でこれを達成できないか、試行錯誤の末にたどり着いたのが以下の方法だ。

  1. 貼り付けたいベクタ画像をemfとして保存する。epsでもsvgでもなくてemf。
  2. emfをワードに貼り付ける
  3. ワードからprimoPDF経由で変換。このとき、画質の設定を「prepress」にする

これで、ベクタ画像がベクタ形式のまま出力されるので、どれだけ拡大してもギザギザにならない図が埋め込まれたPDF原稿が得られる。

 ちなみに、ワードにはpdf変換機能が標準装備(以下、ワード標準機能)されていて、「コピーを保存」からファイル形式「pdf」を選ぶことで使えるのだけど、これは以下の理由で使いにくい。

  • emfで貼っているのに、なぜかラスタ画像としてボロボロの画質でPDFに出力される図が多々出現する。
  • ならば最初から高画質のラスタ画像(tiffとか)に変換して貼っておいて、そこからPDFに変換してはどうかと思いやってみても、なぜか自動的に画質が下げられて出力される。「図の圧縮」オプションなど、あらゆる設定をいじってみたけど、ワード標準機能でラスタ画像を画質を下げずにPDFに出力する方法はなさそう。ちなみに同じことをprimoPDF(設定=prepress)でやってみると、元のラスタ画像から多少画質は下がるけど、ワード標準機能よりはマシな画質で出力される。
  • そもそもワード標準機能には文章だけ(画像無し)のワードを変換する時点で罠があって、保存するときに「オプション」の「アクセシビリティ用のドキュメント構造タグ」のチェックを外しておかないと、変換後のPDFで文字列の並びがうまく認識されなくて、パッと見はきれいに変換できているのに、文章を検索したりそこからコピペして別のファイルに貼りつけようとしたりすると、なぜか意味不明の文字列として認識されていてうまくいかない現象が起こる。このチェックをデフォルトで外す設定ができればいいのだけど、どうやらそれができないようで、毎回チェックを外したかを確認するアホな作業が発生する。

なので、最初からprimoPDFを使って変換したほうが面倒が無くて良い。ただそれでもいくつかまだ罠が残っていて、

  • primoPDFでもベクタとして認識されず、ラスタになってしまうemfがたまにある。しかもprimoPDFでベクタ認識されないemfが、ワード標準機能ではベクタ認識されるケースもある。ただし、ラスタになってしまっても、ワード標準機能でラスタにされる時ほど画質が悪くなるわけではなく、自分で高画質ラスタにして貼り付けるのとあまり変わら無さそうな画質になる。
  • ベクタとしてPDFに反映された図でも、(特に複雑な図では)若干見た目が変わっていたり、印刷したときにおかしなこと(変な塗りつぶしが発生する等)が起こることがある。フォントも若干怪しいことがある。なので、出力されたPDF上の図は隅々まで目を通して、変なことが起こってないか確認する必要がある。変なことが起こっていたら、ベクタで出力しようと頑張るよりかは、おとなしく高品質ラスタで貼ってprimoPDFでの変換による多少の画質低下を受け入れたほうがよさそう。
  • http...で始まる文字列(リンク先と文字列が一致する場合)を除き、ワード内に埋まっているハイパーリンクprimoPDFでは出力に反映できない。なので、ハイパーリンクを含むページだけワード標準機能で別にPDF出力しておいて、PDFsumとかで各ページを結合する等の作業が必要になる。

これでやっと投稿できた・・・