こんにちは、アカツキユウです!
今回はiOS版WordからのPDFエクスポートで発生した事象について、確認と検証を行なったことをまとめました。
それでは以下続きをどうぞ。
iOS版WordでPDFをエクスポートすると…
先に前提条件を書いておきます。
iOS版Wordでは、Windowsなどで作成したdocxファイルをページ設定やスタイル設定を保持したまま開くことが出来ます。
設定の編集は出来ませんが、そのまま使えるのは便利!
更に、iOS版WordでもWindows版同様にWordからPDFをエクスポート出来ます。
が、今回はこのエクスポートしたPDFにエラーメッセージが出現しました。
「書き出し時にエラーになる」ではなく、「書き出したPDF内にエラーメッセージが出る」なので、PDFの中身を確認しないと気付けません。
…かくいう私も、iOS版でテンプレファイルをそのまま使用出来るところまでは確認していましたが、PDF出力までは確認しておらず、最近新刊執筆のために動作確認して初めて気づきました……。
そのエラーメッセージがこちらです。
このメッセージはWindows版Wordからのエクスポートでは出現しません。
このファイル、章・作品タイトルの行に「見出し 1」スタイルを当てると、ヘッダーのノンブル横にタイトルが自動で出現するようになっています。
使用しているのはフィールドコード>StyleRefです。(以下StyleRef)。
新しく「見出し 1」行が出現すると、それに連動して文字列が変わるので大変便利です。
が、今回はここでエラーメッセージが発生しています。
まずこのエラーメッセージの訳は
「ホームタブを使用して、ここに表示させたいテキストに見出し 1を適用します」
今回のケースでは「見出し 1」スタイルを適用している行がありますし、iOS版Wordでの編集中にエラーメッセージが出て来ません(下の画像)。
近い症状として、「見出し 1」スタイルが1つも存在しない場合に
「エラー! 指定したスタイルは使われていません。」
というメッセージが出現します。iOS版だけでなく、Windows版でも出現します。
この場合は編集中に出て来るのですぐに分かりますが、今回は上記の通り状況が異なります。
ここからは検証パートです。今回検証した流れを全て書いていきます。
対処だけ見たい方は検証パートを飛ばしてください。
症状検証パート
今回の検証は、
- Windows版Word2016でファイルを作成
- OneDriveにアップロード
- iOS版Wordで開く(画面確認)
- PDFをエクスポート
- PDFファイルを確認
という手順で行ないます。iOS版Word上では何も編集しません。
おそらくiPadOS版Wordでも同様の症状が出る予想ですが、私が所持しているiPadは10.1インチを超えるサイズで、Word365加入必須のため今回は検証を見送りました。
仮説
まずはエラーメッセージが出る原因を調べました。
YouTube等を探した結果、最初に立てた仮説は以下。
- docxファイルの言語設定
- スタイル名に半角スペースが使われている
このうち、言語設定はiOS版に設定箇所がないため検証不能。
というわけで、まずは「スタイル名に半角スペースが使われている」から検証しました。
デフォルトスタイルを使って確認する
Wordには、デフォルトで用意されているスタイルがたくさんあります。
レポートなどの文書を作るための設定が、自分でイチから設定しなくても、既にご用意されているわけです。
さて、もし「半角スペースが使われている」ことが問題なら、デフォルトスタイルの中にも半角スペースがないスタイルは色々ありますのでこれを使えば検証出来るでしょう。
今回は「表題」スタイルを設定し、StyleRefで読み取るスタイルを「表題」に設定したものをPDF出力します。
エラーメッセージが出てしまいました。半角スペースが問題ではなさそうです。
ちなみにStyleRefのフィールドコードのコード記述を表示する(Alt+F9)とこんな感じ(下の画像)になっています。
比較のために「表題」のStyleRefの下に「見出し 1」のStyleRefを追加しています。
上も下もフィールドコード挿入機能で入れたもので、手打ちしていません。
上は半角スペースがないためか””でくくられていませんが、下はしっかりくくられています。
スタイル名の半角スペース対策はしっかりされているというわけです。
そういう意味でも、半角スペースが問題ではなさそうですね。
スタイル名が英語ならどうか?
「docxファイルの言語設定が悪さをしていないか?」という仮説は検証不能だったわけですが、ここで「Wordは元々海外製のソフト、内部機能的にスタイル名が日本語だと不具合が発生するのでは?」という仮説を立て、ファイルに英語のスタイル名を追加して確認します。
スタイルリストに「新しいスタイル」ボタンからスタイル「index」を追加しました。
StyleRefに「index」を読み取るよう指定。
これをPDF出力すると…?
エラーメッセージが出ませんでした!
英語なら平気そう…?
新規の日本語スタイル名ではどうか?
そんなことある? と思い、日本語スタイル名を新規追加して試しました。
「新しいスタイル」ボタンから「新しい見出し」を追加して確認します。
こちらもエラーメッセージが出ませんでした。
これは一体。
デフォルトスタイルのスタイル名を変更する
少なくとも、新しいスタイルを追加した場合は、スタイル名が英語か日本語かは関係ないことが分かりました。
さて、私のテンプレはデフォルトスタイルを編集して使っていますので、それなら「デフォルトスタイルの名前を変更しちゃえば良くない?」と考えてやってみました。
なんとデフォルトスタイルのスタイル名は変更不可のようで、スタイル名に「,index」と追加されました。
この状態でStyleRefを追加してフィールドコードを見るとこうなります。
で、これをPDF変換すると…
まぁ予想通りエラーメッセージが出ます。
で、ここで「変更した方のスタイル名だけ指定するとどうなるか?」と思って検証。
ここではフィールドコードを直接書き換えてみます。
フィールドコードの読み取りを「index」のみにしてみると…
なんとちゃんと文字列が表示されました。
PDF変換はどうか…
こちらも正しく文字列が表示されます。うーんマジか。
対処的にはこれでいいような気がしないでもない。
Windows版は上の通り「見出し 1,index」という表示になりますが、iOS版のスタイルリストでは「index」だけ表示されます。不思議なことだ。
ダメ押しの追加検証
上の「見出し 1」のスタイル名変更検証あたりで、「これ、内部的に異なる名前だったりしない?(HAHAHA」とか言っていたのですが、まさかな…と思って追加検証したところ、思わぬ動作にブチ当たり、どういう事象で起こったのか判明しました。
「iOS版WordからPDFを書き出すとき、英語版Wordとして動作する」
おそらくこれが答えです。
以下、気付いた流れです。
「スタイル名が英語ならどうか?」の項で、「index」ではなく「title」という名前でスタイルを追加しました。
上の画面の通り、titleというスタイル名はリストにあり、StyleRefでも読み取れています。
このファイルを閉じてから開き直します。環境はWindowsでもiOSでもいいです。
「title」というスタイルが無くなっています。
代わりに「表題 1」という、作った覚えのないスタイル名が存在していて、行にはこのスタイルが当たっています。
ここで別のスタイルに変更すると、リボン内の「表題 1」というスタイルはいなくなり、全スタイルを表示しても見つかりません。
ここで「これは英語版のスタイル名に同じ名前が存在するのでは?」と気付きました。
そこでWindows版のUIを英語版に変更し、全デフォルトスタイルのリストを確認しました。
オプション>言語の「Officeの表示言語」を英語にすれば確認出来ます。デフォルトでは英語の選択肢はありませんが、「言語の追加」で「英語」を選べば変更出来ます。
英語版のスタイルリスト内に「Title」という項目がありました!
おそらく日本語版と英語版でスタイル名の並びは同じかと思いますので、リスト内の同じ位置にあるスタイルはイコールとなる前提とします。
つまり「Title」=「表題」ということでしょう。
何で最初は「title」で通ったのかというと、おそらく追加時点のスタイル名は日本語版で処理した場合、「表題」なんだと思います。実際フィールドコードも「表題」で書き込まれます。
しかし保存したときの内部データは英語版の「title」なんじゃないかな?
てことで、これは「ローカライズされた方のスタイル名」を書き込んでるのが原因なんじゃないか。
というわけで最後の検証は「英語版のスタイル名でフィールドコードを書いて、iOS版WordでPDF書き出しした時にエラーメッセージが出るかどうか」です。
まず、Windows版Wordで、行に「見出し 1」のスタイルを当てる。
フィールドコードを追加し、参照するスタイル名を「Heading 1(英語版の見出し 1のスタイル名)」とする。
日本語版では「見出し 1」という名前で扱われるため、画面上ではエラーになります。
StyleRefがエラーになると、該当箇所が勝手に太字になるので困りますね。(PDF書き出しや印刷時のエラー原因にもなりえる)
エラーは気にせず、このファイルを保存してiOS版Wordで開きます。
iOS版Wordで開いてもこのようにエラーメッセージが出ていることは変わりません。
それでも気にせず、このままPDFをエクスポートします。
すると…
なんとPDF内ではちゃんと読み取れています!
検証完了です!
「iOS版WordからPDFを書き出すときだけ、英語版Wordとして動作する」
これで間違いないと思います。
余談1
小説本制作でよく使う機能として「目次(の自動生成)」があり、これも機能種別は「フィールドコード」になります。
但し、こちらはスタイル名によらず正しく動作します。
あくまで「StyleRef」がそういう動作だったという話です。
余談2
以前、「Acrobat onlineで変換すると、柱部分がエラーメッセージになってしまう」という相談を受けたことがあります。
この時は「Acrobat onlineはフィールドコード(StyleRef)を正しく読み取れないのだ」と結論付け、「Acrobat onlineでの変換は非推奨」としてきました。
この時のエラーメッセージ、今回iOS版WordでPDF出力した時のエラーメッセージと全く同じものです。
したがって、「Acrobat onlineも英語版Wordとして動作していた」と推測することが出来ます。
検証しようと思ったのですが、Acrobat online無料版は1日あたり(または1アカウントあたり?)の変換数に制限があって検証出来ませんでした。
AdobeCCに加入している人ならおそらく制限はないはずですが、そういう方がわざわざWordファイルをオンラインでPDF変換するかがよくわからない……
余談3
CubePDFやJustPDFなどは「同PCにインストールされているWordから出力された印刷データ」からPDFを起こしているはずです。
なので、日本語版Word+CubePDF・JustPDF環境の場合はスタイル名も日本語のまま処理されますので、エラーメッセージは出現しないと推測されます。
対処方法(Windowsのみ)
iOS版Wordでは新規スタイルの追加機能、フィールドコードを追加・編集する機能のどちらも無いため、既存ファイルについて出来る対処は「フィールドコード部分を削除する」だけです。
現時点の私のテンプレはほぼ全てStyleRefを使用しています。
他の方のテンプレでもStyleRefを使用している場合はこの事象が発生するかもしれません(読み取っているスタイルによる!)
この場合は該当箇所を削除して使って下さい。
…しかしながら、iOSはページ番号を変更する機能もなかったので、作品ごとに別ファイルを使って……とかもやりづらいですね…
私作のテンプレファイルは、今回の検証を元に順次修正版を出していく予定です。
Windows版Wordで編集・PDF出力ともに行なう場合は特に修正不要です。
Windows版Wordで「iOSでも利用出来るようなファイル」を作成する場合の対処は、
「StyleRefの参照先はデフォルトスタイル名以外にする」
になります。
上の検証の通りですが、「デフォルトスタイル名以外」であれば何でもよく、名前も英語・日本語関係ありません。
新規スタイル名、またはデフォルトスタイル名の名前を変更(実質追加)し、そのスタイル名を読み取らせれば解決出来ると思います。
終わりに
ひょんなことから結構な検証になりましたが、「iOS版WordでPDF出力出来ないから使用不可!」みたいなことにはならなくて良かったです。
私が制作したテンプレファイルは既に50を超えているため、これから全ファイル修正をすると思うとちょっと目が回りますが、頑張ります…
Word版テンプレ作者の方にも、エラーメッセージが出て困っていた方にも、参考になれば幸いです!
ご支援お願いします!
今後もまとめ記事執筆や資料制作、トラブルシューティングなどの活動を継続するため、皆さまからのご支援をお願いいたします!
Twitterフォローもよろしく!
小説同人誌用資料本、続々刊行中!
小説本制作に役立つ資料本をBOOTH通販・同人イベントで販売しています。
こちらの購入も私への支援になります、どうぞよろしくお願いいたします!
補遺
英語版スタイルリストと日本語版スタイルリストの一覧画像です。
通常は「推奨されるスタイルのみ表示」になっているので、全スタイルは表示されていませんが、こんなにスタイルが登録されているんですね。