Word2013のWord文書をHTML形式で保存を試してみる。その問題点は?


最近、HTMLをどう作るかを再考しています。HTMLの書き方で一番原始的な方法は、テキストエディタで書くことです。それではあまりに効率が悪いのでもう少し簡単に作る方法が必要なことは明らかです。で、ここ10年近くWordでHTMLを作るという問題をあまり考えていませんでしたが、まずはWordでHTMLを作る方法を調べています。

ということは前回も書きましたが、前回「HTMLを手軽に作る方法を再検討します。手軽といえば、まずWordでHTMLを作ることが思いつきます。」として、Webにでていたサンプルを見ました。

今回はその続きで、自分で作成したWord文書で調べてみました。作成した文書は次のものです:
・オリジナルのWord文書[1](こちらからダウンロード)
・Word文書をPDF化:(PDFをダウンロード)


図 PDFを画像化したもの(先頭ページ)

これをWord2013でHTML保存してみます。


図 Webページ形式で保存

保存したHTML形式:リンクをクリックすると開きます。

保存したHTML形式を表示しますと、Wordの次の指定はそのまま生きています。
・段落枠による囲み
・段落の文字サイズ
・見出し
・段落と段落の空き
・表

このHTMLのソースを見ますと、こんな感じです。

図 Word2013でHTML保存したHTMLファイル

このHTMLはHTMLのタグとCSSでレイアウトを指定しています。見出しレベル1がh1タグになるためh1タグが複数出てきています[2]。表のタグも正しく付いているようです。多くの属性値は引用符で囲まれていません。

HTML+CSSの表現として大きな問題はないと思いますが、このHTMLを使い回すときはとても難しいでしょう。例えば、他のHTMLと一緒にして、二つの見栄えを揃えようとします。もし、二つのHTMLでフォント指定(サイズ、フォントファミリー)異なっていたとします。すると見栄えを揃えるにはフォント指定を統一する必要があります。しかし、フォント指定がHTMLタグツリーの末端にばらばらに指定されているため、統一する編集はかなり面倒なことにあります。HTMLでこのような操作をするよりも元のWord文書に戻ってWord文書で編集したくなると思います。

ということは、ここで作るHTMLはあくまで出来上がった文書を単独でパブリッシュする(最終用途)ために使うものということです。Wordで保存したHTMLを使って、例えば、他のWebサイトに組み込んで全体のレイアウトを統一したり、EPUBを作ったりするなどの流用は難しいのではないでしょうか。

[1] 3月22日のニュースリリースの原稿です。ニュースリリースはこちら
[2] SEOの本を見ますと、h1タグはHTMLの最上位に1回使うというのが基本的とされているようです。確かに、大見出しは1ページ(1HTMLファイル)あたり1つが望ましいと思います。しかし、HTMLの仕様ではh1タグをHTMLの最上位要素として1回だけしか使うという制限はありません。HTML5では文書をsectionで分けて、各sectionタグの子供としてh1タグを使います。そしてh1~h6の新しいランクタグは新しいセクションを暗黙に作るという考えのもとで、sectionタグはそれを明示的にするという考えのようです。すると、h1⇒p1⇒h1⇒p1の順序でタグが出てきたときは、h1⇒p1⇒section(h1⇒p1)と考えることになるのでしょうか。

■連載
(1) ワンソースマルチユースの課題:HTMLソースのオーサリング問題を改めて考えてみようと。
(2) HTMLを手軽に作る方法を再検討します。手軽といえば、まずWordでHTMLを作ることが思いつきます。
(3) Word2013のWord文書をHTML形式で保存を試してみる。その問題点は?(今回)
(4) HTMLを簡単に作る方法:h1要素の話(1)(次回)

Word2013のWord文書をHTML形式で保存を試してみる。その問題点は?” への1件のコメント

  1. https://togetter.com/li/1058977

    h1タグ問題について要チェックです。
    どうやらh1タグ問題は論争になっている面倒な箇所なようですね。

    一番、影響が大きいのはGoogleがどう考えているかでしょうけど。それによって検索結果の順位が変るかもしれないので。
    そこを抜きにして、仕様論争しても意味がないでしょう。

    SEOの本に書いてあることは、h1タグは一つにせよということなんですが、これがページの評価に影響があることは実証されていないのではないだろうか? 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA値として計算に合う値を入力してください。 *