セッション概要
.docx をブラウザ内で表示する実装は数多くありますが、「Wordと同じ見た目で出る」ところまで到達したものはごくわずかです。原因は、OOXML仕様に書かれていない実装依存の挙動 ― GDI由来のフォントメトリクス整数丸め、行送りの解決順序、日本語の文字グリッド ― にあります。
本セッションでは、Rust / WebAssembly で開発しているOOXMLレンダリングエンジン「Oxi」を題材に、Word本体をCOM経由でオラクルとして自動実行し、SSIM(画素類似度)で描画差分を測りながら仕様の空白を1つずつ埋めていく開発手法を紹介します。一度も修正対象にしない50文書のブラインドベンチマークで、日本語 0.842 / 英語 0.875、Wordとのページ数一致は英語48/50。数値は主張ではなく計測として公開しています。
あわせて、禁則処理・縦書き・縦中横・ルビ・docGrid といった日本語組版の実装と、これらの知見を「検証可能なコーパス」としてOSSで公開していく構想についてもお話しします。
講師
安河内竜二:やすこうちりゅうじ
セッション情報
- 担当:
- Oxi プロジェクト
- 対象者:
- ブラウザ上でのドキュメント処理・レンダリングに関心がある方。OOXML(.docx等)を扱う実装を検討している方。Rust / WebAssembly の実践的な適用事例を知りたい方。
- 前提知識:
- Rustの基本的な読み書き、またはドキュメントフォーマットを扱った経験があると理解しやすい内容です。WebAssemblyの概要をご存じだと、さらに理解が深まります。
- カテゴリー:
- プログラミング言語 / デスクトップ / オフィス文書フォーマット・WebAssembly