{
  "date": "2026-10-05",
  "scope": "IndiaDigital lossless adapter only; no competitor ranking",
  "environment": {
    "node": "v24.18.0",
    "platform": "win32",
    "architecture": "x64",
    "pdfLib": "1.17.1",
    "pdfJs": "6.4.299",
    "renderer": "PDF.js with @napi-rs/canvas",
    "renderScale": 1
  },
  "method": "Deterministic synthetic CV, image-only scan and 3-page brochure. Input uses uncompressed object streams. Run the actual compression adapter, then independently parse and render every input/output page. Compare text and raw RGBA pixel hashes. Runtime excludes parsing/render checks and is not a browser speed score.",
  "limitations": [
    "Three synthetic fixtures are not representative of every PDF.",
    "No forms, encryption, signatures, attachment or accessibility preservation certification.",
    "No browser/mobile memory or speed measurements.",
    "No competitor outputs tested.",
    "Text and pixels equal in this environment at this render scale only."
  ],
  "results": [
    {
      "fixture": "cv",
      "inputBytes": 1823,
      "outputBytes": 1167,
      "reductionPercent": 35.98,
      "engineRuntimeMs": 5.94,
      "pages": 1,
      "textPreserved": true,
      "searchableBefore": true,
      "searchableAfter": true,
      "renderedPixelsEqual": true,
      "inputSHA256": "9cc25d0ec770ef6a607cf96164c2338013bc731dcf6975506220b658c0620592",
      "outputSHA256": "61cd0ae6e20a14c3e24bbf57e22b54ca5aafc7777a2918baea33b217aea8c686",
      "warnings": []
    },
    {
      "fixture": "scan",
      "inputBytes": 8670,
      "outputBytes": 8241,
      "reductionPercent": 4.95,
      "engineRuntimeMs": 1.97,
      "pages": 1,
      "textPreserved": true,
      "searchableBefore": false,
      "searchableAfter": false,
      "renderedPixelsEqual": true,
      "inputSHA256": "2409088f91265265277ebd2822f39ede51b22fdc888b979de356e57f9fc1587c",
      "outputSHA256": "0dfd9432154f6a34b4364afac4f88b545a0a56eff1e3fa79eeddd8e0aab51997",
      "warnings": []
    },
    {
      "fixture": "brochure",
      "inputBytes": 27538,
      "outputBytes": 25871,
      "reductionPercent": 6.05,
      "engineRuntimeMs": 2.3,
      "pages": 3,
      "textPreserved": true,
      "searchableBefore": true,
      "searchableAfter": true,
      "renderedPixelsEqual": true,
      "inputSHA256": "6b709336d1f134fdcbb9702eaac14286231d2fa2acdf71c95d77ed86adf4a494",
      "outputSHA256": "3207cad0e9c96e16f934b5510e0d64e76af09d090ab3ec2eaf2aba017357edf2",
      "warnings": []
    }
  ]
}