結論
こちらのブログに救われました。
経緯説明
Wordの編集作業はとにかく面倒です。小説ではほぼ必須となるルビ振りとかひたすらに面倒くさい(しかもなんか行間が妙に空く)。
というわけで、カクヨム記法で記述したルビを処理してくれるプログラムを作ることにしました。1
(※本記事執筆時点(2022年2月22日現在)では未完成)
知らない人のためにざっくりカクヨム記法について説明しておきます。
たとえば、以下のようなテキストがあるとしましょう。
「|猫の日《ザ・デイ・オブ・キャッツ》は《《もうすぐ終わる》》…………」
この文章が、閲覧時には以下のような感じで表示されます。
「猫の日はもうすぐ終わる…………」
つまり、|
と《
の間の文字列に対して《》
内部の文字列でルビを振り、《《
と》》
で文字を囲むと傍点を振ってくれるわけです。
この記法は書きやすく見やすいのでとても気に入っています。
閑話休題。
このカクヨム記法を自動でWordのルビに変換するプログラムの開発を現在行っています。「docxファイルを生成するならpandoc使え」とはよく耳にしますが、生憎とpandocはカクヨム記法を処理してはくれません。
ということで自作することにしました。
「ファイルを開こうとして、エラーが発生しました」
まずは実験として、適当にテキストを打ち込んだdocxファイルを保存してzip展開してword/document.xml
を加工、docxに戻してWordで開く……というのをやってみることにしました。
下の画像のtest
、test_texted
ディレクトリはdocxファイルを解凍したものです。
たとえばtest
をdocxに戻してみましょう。
こうやって圧縮して……名前をtest.zip
からtest.docx
に変更。すると……
プレビューを表示してくれません。
開こうとするとエラー。
色々ググって「セキュリティの問題だからセキュリティ設定を変更すれば解決する」などの情報も得ましたが、どうやらこのケースは別の原因のようで解決しませんでした。
プログラムの制作を進めつつ、あれこれと仮説を立てては失敗、というのを繰り返すこと数時間…………記事冒頭に貼ったブログを発見し、本当の原因が判明しました。
docxファイルが開けなかった原因
[Content_Types].xmlよりも一段上のフォルダ(通常、元のファイル名のフォルダ)をzip圧縮しても元のdocxにはならず、再度docxを開く際、次のエラーとなるため、注意。
https://ameblo.jp/dosukoifreak/entry-10793351527.html より引用
はい。
つまりここ(↓)が間違いだったわけですね。
ただしくは、こう(↓)しないといけない。
(まっしろでわかりにくいですが)無事、プレビューできました! ファイルも開けました!
-
なぜカクヨム記法なのかと言うと筆者がカクヨムユーザーだからです。 ↩