{
  "input": {
    "origin": "開発用の合成PDF。実際のPDFバイト列を入力。顧客ファイルなし。",
    "spec": {
      "max_file_mb": 5,
      "trim_size_mm": {
        "w": 210,
        "h": 297
      },
      "bleed_mm": 3,
      "min_dpi_color": 350,
      "color_mode": "cmyk",
      "rgb_allowed": false,
      "spot_allowed": false,
      "font_embed_required": true,
      "no_security": true
    },
    "fixtures": [
      {
        "name": "ok-a4.pdf",
        "bytes": 3977
      },
      {
        "name": "ng-rgb.pdf",
        "bytes": 2003
      },
      {
        "name": "ng-print-real.pdf",
        "bytes": 2732
      },
      {
        "name": "encrypted.pdf",
        "bytes": 2791
      },
      {
        "name": "corrupt.bin",
        "bytes": 1220
      }
    ]
  },
  "process": [
    "既存 preflightPdf を実行",
    "parsePdfでPDF構造を解析",
    "inspectPdfでページボックス・画像・色空間・フォントを調査",
    "規格と比較し検査項目別に判定"
  ],
  "output": [
    {
      "fixture": "ok-a4.pdf",
      "bytes": 3977,
      "output": {
        "schema_version": "preflight-result/1",
        "file": {
          "name": "ok-a4.pdf",
          "size_bytes": 3977,
          "pages": 1,
          "pdf_version": "1.4"
        },
        "verdict": "ok",
        "counts": {
          "ok": 8,
          "ng": 0,
          "uninspected": 3,
          "not_in_guide": 2
        },
        "checks": [
          {
            "key": "readable",
            "label": "ファイル形式",
            "status": "ok",
            "detail": "PDF 1.4 / 1 ページ",
            "pages": []
          },
          {
            "key": "file_size",
            "label": "ファイルサイズ",
            "status": "ok",
            "detail": "0.0MB ≤ 上限 5MB",
            "pages": []
          },
          {
            "key": "page_size",
            "label": "仕上がりサイズ",
            "status": "ok",
            "detail": "全 1 ページが 210 × 297mm",
            "pages": []
          },
          {
            "key": "bleed",
            "label": "塗り足し",
            "status": "ok",
            "detail": "全ページで 3mm 以上の塗り足しがあります",
            "pages": []
          },
          {
            "key": "resolution",
            "label": "画像解像度",
            "status": "ok",
            "detail": "全 1 画像が規格の実効解像度を満たしています",
            "pages": []
          },
          {
            "key": "color_mode",
            "label": "カラーモード",
            "status": "ok",
            "detail": "使用しているカラー: CMYK",
            "pages": []
          },
          {
            "key": "fonts",
            "label": "フォント埋め込み",
            "status": "ok",
            "detail": "全 1 フォントが埋め込み（アウトライン化）済みです",
            "pages": []
          },
          {
            "key": "ink_total",
            "label": "インキ総量",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "overprint",
            "label": "オーバープリント",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "trapping",
            "label": "トラッピング",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "pages",
            "label": "ページ数",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "pdfx",
            "label": "PDF/X 準拠",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "security",
            "label": "セキュリティ設定",
            "status": "ok",
            "detail": "セキュリティ設定はありません",
            "pages": []
          }
        ],
        "ng_reasons": [],
        "warnings": [],
        "duration_ms": 1
      }
    },
    {
      "fixture": "ng-rgb.pdf",
      "bytes": 2003,
      "output": {
        "schema_version": "preflight-result/1",
        "file": {
          "name": "ng-rgb.pdf",
          "size_bytes": 2003,
          "pages": 1,
          "pdf_version": "1.4"
        },
        "verdict": "ng",
        "counts": {
          "ok": 4,
          "ng": 4,
          "uninspected": 3,
          "not_in_guide": 2
        },
        "checks": [
          {
            "key": "readable",
            "label": "ファイル形式",
            "status": "ok",
            "detail": "PDF 1.4 / 1 ページ",
            "pages": []
          },
          {
            "key": "file_size",
            "label": "ファイルサイズ",
            "status": "ok",
            "detail": "0.0MB ≤ 上限 5MB",
            "pages": []
          },
          {
            "key": "page_size",
            "label": "仕上がりサイズ",
            "status": "ok",
            "detail": "全 1 ページが 210 × 297mm（仕上がりトンボ (TrimBox) の無いページは裁ち落とし枠 (MediaBox/CropBox) を仕上がりとしてチェック）",
            "pages": []
          },
          {
            "key": "bleed",
            "label": "塗り足し",
            "status": "ng",
            "detail": "塗り足し 3mm 未満のページがあります（不足分は仕上がりで白く切れます）",
            "pages": [
              1
            ]
          },
          {
            "key": "resolution",
            "label": "画像解像度",
            "status": "ng",
            "detail": "p1: 72dpi < 350dpi",
            "pages": [
              1
            ]
          },
          {
            "key": "color_mode",
            "label": "カラーモード",
            "status": "ng",
            "detail": "ガイド指定外の色が使われています: RGB",
            "pages": [
              1
            ]
          },
          {
            "key": "fonts",
            "label": "フォント埋め込み",
            "status": "ng",
            "detail": "埋め込まれていないフォントがあります: Helvetica",
            "pages": [
              1
            ]
          },
          {
            "key": "ink_total",
            "label": "インキ総量",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "overprint",
            "label": "オーバープリント",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "trapping",
            "label": "トラッピング",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "pages",
            "label": "ページ数",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "pdfx",
            "label": "PDF/X 準拠",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "security",
            "label": "セキュリティ設定",
            "status": "ok",
            "detail": "セキュリティ設定はありません",
            "pages": []
          }
        ],
        "ng_reasons": [
          "塗り足し: 塗り足し 3mm 未満のページがあります（不足分は仕上がりで白く切れます）",
          "画像解像度: p1: 72dpi < 350dpi",
          "カラーモード: ガイド指定外の色が使われています: RGB",
          "フォント埋め込み: 埋め込まれていないフォントがあります: Helvetica"
        ],
        "warnings": [],
        "duration_ms": 0
      }
    },
    {
      "fixture": "ng-print-real.pdf",
      "bytes": 2732,
      "output": {
        "schema_version": "preflight-result/1",
        "file": {
          "name": "ng-print-real.pdf",
          "size_bytes": 2732,
          "pages": 1,
          "pdf_version": "1.4"
        },
        "verdict": "ng",
        "counts": {
          "ok": 4,
          "ng": 4,
          "uninspected": 3,
          "not_in_guide": 2
        },
        "checks": [
          {
            "key": "readable",
            "label": "ファイル形式",
            "status": "ok",
            "detail": "PDF 1.4 / 1 ページ",
            "pages": []
          },
          {
            "key": "file_size",
            "label": "ファイルサイズ",
            "status": "ok",
            "detail": "0.0MB ≤ 上限 5MB",
            "pages": []
          },
          {
            "key": "page_size",
            "label": "仕上がりサイズ",
            "status": "ok",
            "detail": "全 1 ページが 210 × 297mm",
            "pages": []
          },
          {
            "key": "bleed",
            "label": "塗り足し",
            "status": "ng",
            "detail": "塗り足し 3mm 未満のページがあります（不足分は仕上がりで白く切れます）",
            "pages": [
              1
            ]
          },
          {
            "key": "resolution",
            "label": "画像解像度",
            "status": "ng",
            "detail": "p1: 72dpi < 350dpi",
            "pages": [
              1
            ]
          },
          {
            "key": "color_mode",
            "label": "カラーモード",
            "status": "ng",
            "detail": "ガイド指定外の色が使われています: RGB",
            "pages": [
              1
            ]
          },
          {
            "key": "fonts",
            "label": "フォント埋め込み",
            "status": "ng",
            "detail": "埋め込まれていないフォントがあります: Helvetica",
            "pages": [
              1
            ]
          },
          {
            "key": "ink_total",
            "label": "インキ総量",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "overprint",
            "label": "オーバープリント",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "trapping",
            "label": "トラッピング",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "pages",
            "label": "ページ数",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "pdfx",
            "label": "PDF/X 準拠",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "security",
            "label": "セキュリティ設定",
            "status": "ok",
            "detail": "セキュリティ設定はありません",
            "pages": []
          }
        ],
        "ng_reasons": [
          "塗り足し: 塗り足し 3mm 未満のページがあります（不足分は仕上がりで白く切れます）",
          "画像解像度: p1: 72dpi < 350dpi",
          "カラーモード: ガイド指定外の色が使われています: RGB",
          "フォント埋め込み: 埋め込まれていないフォントがあります: Helvetica"
        ],
        "warnings": [],
        "duration_ms": 0
      }
    },
    {
      "fixture": "encrypted.pdf",
      "bytes": 2791,
      "output": {
        "schema_version": "preflight-result/1",
        "file": {
          "name": "encrypted.pdf",
          "size_bytes": 2791,
          "pages": 1,
          "pdf_version": "1.4"
        },
        "verdict": "ng",
        "counts": {
          "ok": 0,
          "ng": 1,
          "uninspected": 10,
          "not_in_guide": 2
        },
        "checks": [
          {
            "key": "readable",
            "label": "ファイル形式",
            "status": "uninspected",
            "detail": "パスワード・暗号化が設定されているため内容をチェックできません",
            "pages": []
          },
          {
            "key": "security",
            "label": "セキュリティ設定",
            "status": "ng",
            "detail": "ガイドは「セキュリティ設定なし」を求めていますが、この PDF にはパスワード等の設定があります",
            "pages": []
          },
          {
            "key": "file_size",
            "label": "ファイルサイズ",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "page_size",
            "label": "仕上がりサイズ",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "bleed",
            "label": "塗り足し",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "resolution",
            "label": "画像解像度",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "color_mode",
            "label": "カラーモード",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "fonts",
            "label": "フォント埋め込み",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "ink_total",
            "label": "インキ総量",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "overprint",
            "label": "オーバープリント",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "trapping",
            "label": "トラッピング",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "pages",
            "label": "ページ数",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "pdfx",
            "label": "PDF/X 準拠",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          }
        ],
        "ng_reasons": [
          "セキュリティ設定: ガイドは「セキュリティ設定なし」を求めていますが、この PDF にはパスワード等の設定があります"
        ],
        "warnings": [],
        "duration_ms": 0
      }
    },
    {
      "fixture": "corrupt.bin",
      "bytes": 1220,
      "output": {
        "schema_version": "preflight-result/1",
        "file": {
          "name": "corrupt.bin",
          "size_bytes": 1220,
          "pages": 0,
          "pdf_version": null
        },
        "verdict": "uninspectable",
        "counts": {
          "ok": 0,
          "ng": 0,
          "uninspected": 10,
          "not_in_guide": 2
        },
        "checks": [
          {
            "key": "readable",
            "label": "ファイル形式",
            "status": "uninspected",
            "detail": "ページを読み取れませんでした（破損している可能性があります）",
            "pages": []
          },
          {
            "key": "file_size",
            "label": "ファイルサイズ",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "page_size",
            "label": "仕上がりサイズ",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "bleed",
            "label": "塗り足し",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "resolution",
            "label": "画像解像度",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "color_mode",
            "label": "カラーモード",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "fonts",
            "label": "フォント埋め込み",
            "status": "uninspected",
            "detail": "暗号化・破損のためチェックできませんでした",
            "pages": []
          },
          {
            "key": "ink_total",
            "label": "インキ総量",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "overprint",
            "label": "オーバープリント",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "trapping",
            "label": "トラッピング",
            "status": "uninspected",
            "detail": "描画結果の計算が必要なため、このチェッカーでは検査していません。入稿前に制作ソフト（Illustrator 等）で確認してください",
            "pages": []
          },
          {
            "key": "pages",
            "label": "ページ数",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          },
          {
            "key": "pdfx",
            "label": "PDF/X 準拠",
            "status": "not_in_guide",
            "detail": "入稿ガイドにこの項目の記載がありません",
            "pages": []
          }
        ],
        "ng_reasons": [],
        "warnings": [
          "missing_pdf_header",
          "xref_fallback_scan"
        ],
        "duration_ms": 0
      }
    }
  ],
  "humanReview": "総インキ量・オーバープリント・トラッピング・仕上がりの見た目は未検査。印刷店で最終確認。",
  "provenance": "c19-print-preflight 既存の決定論的PDF解析エンジン。LLM/APIなし。fixtureは開発用に生成された実PDF。",
  "recordedAt": "2026-09-27T23:09:41.557Z"
}