本文へ移動
Takumi Tokunaga
research

local-first ドキュメントツールのプライバシー境界

PDF処理をどこまでブラウザ内に留めるか

Period: 2026

背景

PDFには、契約書、校務資料、社内資料、成績、個人情報を含む書類など、外部サービスへ気軽に送れない内容が含まれます。一方で、結合、削除、回転、並び替えのような基本操作は、必ずしもサーバー側で処理する必要はありません。

このテーマでは、ブラウザで完結できる処理と、サーバーへ送る必要がある処理の境界を明確にする設計を整理しています。

設計方針

  • PDF、JPEG、PNGの通常操作はブラウザ内で処理する
  • Office変換のようにブラウザだけでは安定しない処理は、認証付きバックエンドへ分ける
  • どの操作でファイルが外部に送信されるかを UI とドキュメントで明示する
  • Worker はファイルを解析せず、軽いAPIとproxyに限定する
  • PDFプレビューは Chrome PDF Viewer に近い挙動を目指し、元PDFの回転やフォント情報を尊重する

実装への反映

securePDF では、プレビューに pdf.js、PDF操作に共通スキーマと core package を使っています。GUI、CLI、API が同じ操作表現を共有することで、画面操作とコマンド実行の挙動を揃えやすくしています。

Office変換は例外として、APIキーと日次クレジットを通す経路に分けています。これにより、通常操作とサーバー処理の違いを利用者に説明しやすくしています。

今後の課題

巨大PDF、特殊フォント、画像化PDF、フォームや注釈を含むPDFでは、ブラウザだけで安定して扱うための制約が残ります。プレビュー品質、メモリ使用量、処理時間、エラー表示を継続的に改善する必要があります。

©

GitHub