今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

ezpzfile/ezpzfile-xdw

日本の富士フイルム DocuWorks(`.xdw`)文書をブラウザやパソコンで注釈付きで開いて保存するエディタとファイル形式エンジンです。

会社から届いた.xdwファイルを、MacやLinuxで開けずに困った経験はありませんか。ezpzfile-xdwなら、ブラウザ上でそのまま開いて、テキスト・付箋・ハンコなどを書き込んで保存できます。モバイル端末でも承認印や蛍光ペンを追加でき、43件のサンプルで検証済みのRust実装がDocuWorks本来の形式との互換性を保つので、公式ビューアーなしで今すぐ試せます。

01 / 概要
何をするものか一文で言うと
ひとことで日本の富士フイルム DocuWorks(`.xdw`)文書をブラウザやパソコンで注釈付きで開いて保存するエディタとファイル形式エンジンです。

このリポジトリは、富士フイルムのDocuWorks文書形式(.xdw/.xbd)をゼロから解析し、Rustエンジンとブラウザ用エディタとして実装したオープンソースプロジェクトです。ファイルの読み込み・注釈追加・保存・PDF書き出しまでを、公式DocuWorksを使わずに行えます。解析結果はファイル形式の仕様書としても公開されています。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

xdwファイルは、タグ・長さ・値(TLV)の要素を積み重ねた構造です。ヘッダーの後にセグメントが続き、各セグメントはエントリ群とプロパティブロック、末尾のトレーラーで構成されます。トレーラーはファイル末尾の4バイトから逆算して見つかります。プロパティブロックの検査値(4バイトのXOR)が合わないと、DocuWorks本体はファイルを開きません。読み込み後は、EMFやWMF、DocuWorks独自の描画レコードを表示リストに変換してページを描画します。編集操作(追加・移動・回転・削除)は、ezpzxdw-core内の記録に反映されます。保存時は、署名付き文書だけ末尾にセグメントを追加し、それ以外は使用中のエントリだけを残して全体を書き直します。同じロジックをwasm32にコンパイルしたezpzxdw-wasmが、ブラウザ用の1ファイルHTMLエディタを動かします。検証にはtools/dwviewとtools/dwapiを使い、Wine経由で本物のDocuWorks Viewer LightとDocuWorks 10 APIを操作します。これにより、保存したファイルが実際に開けて描画できるかまで確認しています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    `cargo test`を実行すると、`EZPZXDW_CORPUS`環境変数にサンプルフォルダを指定しない限り、コーパステストは空振りで終わります。

  2. STEP 02

    `cargo run -p ezpzxdw-cli -- pages file.xdw`を実行すると、手元の.xdwファイルのページと注釈オブジェクトの一覧がJSONで出力されます。

  3. STEP 03

    `web/build.sh`を実行すると、wasm32ターゲットとwasm-bindgen-cli 0.2.129が必要だと分かり、環境構築に手間がかかります。

  4. STEP 04

    ビルドが済むと`web/dist/ezpzxdw-editor.html`が1ファイルで生成され、ブラウザで開いて.xdwをドラッグ&ドロップできます。

  5. STEP 05

    日付印・蛍光ペン・付箋などの注釈を付けてCtrl+Sで保存すると、同じファイルに書き戻されます。

  6. STEP 06

    `tools/dwview`や`tools/dwapi`で実機検証するには、Wineと本物のDocuWorks実行ファイルが別途必要です。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手に入るのは、.xdw/.xbdを読み書きできるRustライブラリとCLI(ezpzxdw)、ブラウザ単体で動く1ファイルのエディタHTML、そしてファイル形式の仕様書です。実際に動かせば、サンプル文書を開いて注釈を付け、同じ.xdwやPDFとして書き出す一連の流れを手元で確認できます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

署名の有効性確認や、新しい署名・パスワードの付与はまだできません。

02

パスワードや証明書で保護された文書は開けず、DocuWorks側で保護を解除する必要があります。

03

実機検証(tools/dwview、tools/dwapi)はWine上で本物のDocuWorksを動かす仕組みなので、Windows用DocuWorksの実行ファイルがないと再現できません。

04

バージョンはv0.2の開発者向けプレビューで、README自身も「まだできないこと」を明記しています。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

DocuWorksファイルをMacやLinux、ブラウザだけで開きたい開発者や、形式そのものを調べたい研究者に向いています。根拠は、コーパステスト(corpus.rs)が公開サンプル43件の検査値・ページ描画・編集往復を自動で確認している点です。加えて、tools/dwapiやtools/dwviewが実際のDocuWorks 10・Viewer Lightで保存結果を照合している点も根拠になります。つまり、自分で動かさなくても、検証プロセス自体がソースコードとして公開・再現可能な形で示されています。一方で、署名やパスワード対応はまだ先の話なので、本番運用にはPLAN.ja.mdの進捗を確認してから使うのが安全です。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する