7.3 KiB
7.3 KiB
10 参考資料
確認日: 2026-09-19
一次資料を用いて API、機能、ライセンス表記、サポート条件を確認した。Web 上の最新資料は変更されるため、実装開始時には採用版に対応した資料・ソースコミットも固定する。以下の資料は設計の根拠であり、本アプリケーションの描画品質、性能、ライセンス適合性を実証するものではない。
1. PDF と技術選定
| ID | 資料 | 本設計で確認した事項 |
|---|---|---|
| S01 | PDFium README | Linux / Windows のビルド経路、JavaScript / XFA のビルド選択、公開 API の範囲、ピクセル試験の存在 |
| S02 | PDFium fpdfview.h | 公開 C API、読込と描画、API が thread-safe ではないこと |
| S03 | PDFium fpdf_structtree.h | ページの構造ツリー、要素型、子要素、MCID の取得。一部 API が Experimental であること |
| S04 | PDFium fpdf_edit.h | ページオブジェクトの読取、MCID と境界情報へのアクセス。ファイル名に edit を含むが、読取 API の参照に使う |
| S05 | PDFium LICENSE | PDFium のライセンス本文。依存部品の条件を含めて確認する起点 |
| S06 | Qt PDF | Qt PDF の描画、ビューア、目次、リンク、検索等の機能 |
| S07 | QPdfDocument | 読込、描画、ページラベル、テキスト、エラーの公開 API。構造タグ API の有無を評価する対象 |
| S08 | Qt PDF Licensing | Qt PDF の商用 / LGPLv3 / GPLv2 表記と、PDFium スナップショット・第三者ライセンス |
| S09 | PDF.js 公式サイト | PDF.js の位置づけと Apache 2.0 の表記 |
| S10 | PDF.js FAQ | ブラウザ環境による対応差、Worker と本体のバージョン整合、可視ページを優先するメモリ上の考え方 |
| S11 | Electron Security | Node.js 能力の分離、context isolation、sandbox、IPC 検証、依存更新の必要性 |
| S12 | Electron Releases | 直近三つの stable major release というサポート方針と更新周期 |
| S13 | What is MuPDF? | PDF 等の閲覧・変換・操作のためのライブラリとツールという位置づけ |
| S14 | MuPDF License | AGPL または商用ライセンスという提供形態 |
2. Qt WebEngine と配布
| ID | 資料 | 本設計で確認した事項 |
|---|---|---|
| S15 | QWebEngineSettings | MainWorld の JavaScript、ローカルファイル/外部 URL、DNS prefetch、内蔵 PDF ビューア等の設定 |
| S16 | Qt WebEngine Platform Notes | Chromium renderer の sandbox、Linux の実行条件、C++20、Windows ビルド制約、静的ビルド非対応 |
| S17 | Qt WebEngine Licensing | Qt 部分と Chromium 側の両方の条件が関係すること、第三者ライセンスの一覧 |
| S18 | Deploying Qt WebEngine Applications | 補助プロセス、リソース、翻訳等を含む配布の検討事項 |
| S19 | Qt Supported Platforms | Windows 11 / Ubuntu 24.04 の掲載、版ごとのサポート条件、モジュール固有の例外 |
3. 文書形式・隔離・保存
| ID | 資料 | 本設計で確認した事項 |
|---|---|---|
| S20 | PDFium fpdf_formfill.h | フォーム環境とwidget描画。通常ページ描画との違い |
| S21 | EPUB 3.3 | package、spine、nav、rendition、font難読化 |
| S22 | EPUB Reading Systems 3.3 | rootfile、XML処理、スクリプトfallback、ローカル参照の制約 |
| S23 | EPUB CFI 1.1 | 文書の論理位置表現 |
| S24 | QWebEngineScript | ApplicationWorld、DOMアクセスと変数の分離 |
| S25 | WebEngineView | runJavaScriptのworld、ナビゲーション・権限の通知 |
| S26 | QWebEngineUrlScheme | Host構文によるoriginとscheme権限 |
| S27 | QWebEngineUrlSchemeHandler | 文書資源の応答 |
| S28 | QWebEngineUrlRequestJob | Qt 6.6以降の追加応答ヘッダー |
| S29 | QWebEngineUrlRequestInterceptor | 要求の事前検査 |
| S30 | QQuickWebEngineProfile | 文書ごとのprofileとhandler |
| S31 | Linux Landlock | OSアクセス制限とABIによる機能差 |
| S32 | Windows AppContainer | 制限されたプロセス環境の構成 |
| S33 | OWASP Archive Testing | 不正アーカイブの試験観点 |
| S34 | OWASP File Upload Cheat Sheet | 解凍後サイズの制限 |
| S35 | XDG Base Directory | 設定・状態・キャッシュの配置と既定値 |
| S36 | QStandardPaths | OS別保存経路、AppConfigLocationとAppDataLocationの差 |
| S37 | Windows Known Folders | RoamingAppDataとLocalAppData |
4. 参照の読み方
- 資料の事実: 公開 API の存在、スレッド安全性の注意、ライセンス表記、サポート対象等。上表に対応する一次資料で確認する。
- 設計判断: Qt Quick と直接 PDFium の組合せ、ワーカー分離、初期 OS、PDF 描画ルートの一本化等。技術選定・設計判断 の ADR に記録する。
- 未検証事項: 対象書籍の描画互換性、特殊な構造見出しの座標、実機性能、OS 別 sandbox、最終配布物。公式資料に機能があることだけで合格とせず、受入試験で確認する。