{
  "date": "2026-09-14",
  "author": "BookTranslator Team",
  "environment": {
    "system": "macOS-27.0-arm64-arm-64bit",
    "python": "3.12.14",
    "Pillow": "12.3.0",
    "DjVuLibre_reported": "DDJVU --- DjVuLibre-3.5.29",
    "Poppler": "pdftotext version 26.08.0"
  },
  "provenance": "Two original authored pages; manually inserted correct and deliberately wrong hidden text. No OCR engine, user files, GUI reader or translation service tested.",
  "djvulibre_archive": {
    "url": "https://downloads.sourceforge.net/djvu/djvulibre-3.5.30.tar.gz",
    "sha256": "ee5e457d4cfebe566f94b99e5e3d3cc7f5c79ddb741c2ac2ba2e456f00329644",
    "note": "Official download labelled 3.5.30; compiled executables and configure report 3.5.29."
  },
  "settings": {
    "image_pixels": [
      1200,
      1600
    ],
    "dpi": 300,
    "font_sha256": "b85c38ecea8a7cfb39c24e395a4007474fa5a4fc864f6ee33309eb4948d232d5",
    "font": "NotoSans-Regular.ttf, 40 px",
    "encoding": "cjb2 lossless default; no clean or lossy options",
    "hidden_text": "authored page-level zones",
    "pdf": "ddjvu -format=pdf default native resolution"
  },
  "ground_truth": [
    [
      "Carnet de lecture",
      "Le café ferme à seize heures.",
      "Repère : boîte 18, dossier B-204."
    ],
    [
      "Reading notebook",
      "The parcel contains 18 notebooks.",
      "Reference B-204; shelf 7."
    ]
  ],
  "tests": [
    {
      "file": "image-only.djvu",
      "pages": 2,
      "extracted_text": "",
      "render_pixels_equal_source": [
        true,
        true
      ]
    },
    {
      "file": "correct-text.djvu",
      "pages": 2,
      "extracted_text": "Carnet de lecture\nLe café ferme à seize heures.\nRepère : boîte 18, dossier B-204.\n\fReading notebook\nThe parcel contains 18 notebooks.\nReference B-204; shelf 7.\n\f",
      "render_pixels_equal_source": [
        true,
        true
      ]
    },
    {
      "file": "wrong-text.djvu",
      "pages": 2,
      "extracted_text": "Carnet de lecture\nLe café ferme à seize heures.\nRepère : boîte 13, dossier B-2O4.\n\fReading notebook\nThe parcel contains 13 notebooks.\nReference B-2O4; shelf 7.\n\f",
      "render_pixels_equal_source": [
        true,
        true
      ]
    },
    {
      "file": "converted-image-pages.pdf",
      "source": "correct-text.djvu",
      "pages": 2,
      "embedded_image_pixels_equal_source": [
        true,
        true
      ],
      "pdftotext_raw": "\f\f",
      "non_whitespace_characters": 0
    },
    {
      "file": "private deliberately truncated copy",
      "exit": 10,
      "stderr": "ddjvu: Cannot decode document.\n"
    }
  ],
  "files": {
    "converted-image-pages.pdf": {
      "bytes": 4947,
      "sha256": "d846f2625027e19e9a9b2c1ea5a7b6ebdfab26455ae58c57e5110605fa22133b"
    },
    "converted-pdf.txt": {
      "bytes": 2,
      "sha256": "7060584c3e59f0b2f12f34aa0b40faadf4aa5790a0459f3319852bcd63262cbb"
    },
    "correct-text.djvu": {
      "bytes": 1482,
      "sha256": "aaad16300cd8b58afd2b8f6a6f91ba9dae0d57be378e7d729065210095fd9b33"
    },
    "correct-text.txt": {
      "bytes": 165,
      "sha256": "f83e9d196271a2239323a43c3091e6f60a41b53f6f70671fbb3e24b0a3054807"
    },
    "image-only.djvu": {
      "bytes": 1275,
      "sha256": "80e36271c251e2a781e302bc29c2a0353fb9f0a03081539417b5d61082a797b0"
    },
    "image-only.txt": {
      "bytes": 0,
      "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    "source-page-1.png": {
      "bytes": 4760,
      "sha256": "80fb81b4895a26ae0b561232a7195a9305922fcca9ceb1c0eb9093385068eb21"
    },
    "source-page-2.png": {
      "bytes": 4710,
      "sha256": "39cc60d83f807df353c138dfb257b15f2cb3bebcfa39c8d08555befb0789a5ae"
    },
    "wrong-text.djvu": {
      "bytes": 1482,
      "sha256": "899b1cc1be7e5991c3442094f6d1e96bdb621b2d048e0c544cbbc91bb5090da3"
    },
    "wrong-text.txt": {
      "bytes": 165,
      "sha256": "af6840cd653bf21e07a3996f668dc0cd1aa55d78f81a4aa2f64e682b556fe033"
    }
  },
  "commands": [
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "--help"
      ],
      "exit": 1,
      "stdout": "",
      "stderr": "DDJVU --- DjVuLibre-3.5.29\nDjVu decompression utility\n\nUsage: ddjvu [options] [<djvufile> [<outputfile>]]\n\nOptions:\n  -verbose          Print various informational messages.\n  -format=FMT       Select output format: pbm,pgm,ppm,pnm,rle,tiff,pdf.\n  -scale=N          Select display scale.\n  -size=WxH         Select size of rendered image.\n  -subsample=N      Select direct subsampling factor.\n  -aspect=no        Authorize aspect ratio changes\n  -segment=WxH+X+Y  Select which segment of the rendered image\n  -mode=black       Render a meaningful bitonal image.\n  -mode=mask        Only render the mask layer.\n  -mode=foreground  Only render the foreground layer.\n  -mode=background  Only render the background layer.\n  -page=PAGESPEC    Select page(s) to be decoded.\n  -skip             Skip corrupted pages instead of aborting.\n  -eachpage         Produce one file per page (using %d in outputfile).\n  -quality=QUALITY  Specify jpeg quality for lossy tiff output.\n\nIf <outputfile> is a single dash or omitted, the decompressed image\nis sent to the standard output.  If <djvufile> is a single dash or\nomitted, the djvu file is read from the standard input.\n\n"
    },
    {
      "command": [
        "pdftotext",
        "-v"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": "pdftotext version 26.08.0\nCopyright 2005-2026 The Poppler Developers - http://poppler.freedesktop.org\nCopyright 1996-2011, 2022 Glyph & Cog, LLC\n"
    },
    {
      "command": [
        "DJVU_BIN/cjb2",
        "-dpi",
        "300",
        "WORK/page-1.pbm",
        "WORK/page-1.djvu"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/cjb2",
        "-dpi",
        "300",
        "WORK/page-2.pbm",
        "WORK/page-2.djvu"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvm",
        "-c",
        "OUTPUT/image-only.djvu",
        "WORK/page-1.djvu",
        "WORK/page-2.djvu"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvused",
        "OUTPUT/correct-text.djvu",
        "-f",
        "WORK/correct-text.dsed",
        "-s"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvused",
        "OUTPUT/wrong-text.djvu",
        "-f",
        "WORK/wrong-text.dsed",
        "-s"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvused",
        "OUTPUT/image-only.djvu",
        "-e",
        "n"
      ],
      "exit": 0,
      "stdout": "2\n",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvutxt",
        "OUTPUT/image-only.djvu"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=1",
        "OUTPUT/image-only.djvu",
        "WORK/image-only-1.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=2",
        "OUTPUT/image-only.djvu",
        "WORK/image-only-2.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvused",
        "OUTPUT/correct-text.djvu",
        "-e",
        "n"
      ],
      "exit": 0,
      "stdout": "2\n",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvutxt",
        "OUTPUT/correct-text.djvu"
      ],
      "exit": 0,
      "stdout": "Carnet de lecture\nLe café ferme à seize heures.\nRepère : boîte 18, dossier B-204.\n\fReading notebook\nThe parcel contains 18 notebooks.\nReference B-204; shelf 7.\n\f",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=1",
        "OUTPUT/correct-text.djvu",
        "WORK/correct-text-1.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=2",
        "OUTPUT/correct-text.djvu",
        "WORK/correct-text-2.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvused",
        "OUTPUT/wrong-text.djvu",
        "-e",
        "n"
      ],
      "exit": 0,
      "stdout": "2\n",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/djvutxt",
        "OUTPUT/wrong-text.djvu"
      ],
      "exit": 0,
      "stdout": "Carnet de lecture\nLe café ferme à seize heures.\nRepère : boîte 13, dossier B-2O4.\n\fReading notebook\nThe parcel contains 13 notebooks.\nReference B-2O4; shelf 7.\n\f",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=1",
        "OUTPUT/wrong-text.djvu",
        "WORK/wrong-text-1.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pbm",
        "-page=2",
        "OUTPUT/wrong-text.djvu",
        "WORK/wrong-text-2.pbm"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "command": [
        "DJVU_BIN/ddjvu",
        "-format=pdf",
        "OUTPUT/correct-text.djvu",
        "OUTPUT/converted-image-pages.pdf"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": "TIFFWriteDirectorySec: Starting directory 0 at offset 0x0 (0) might cause an IFD loop.\nTIFFWriteDirectorySec: Starting directory 0 at offset 0x0 (0) might cause an IFD loop.\n"
    },
    {
      "command": [
        "pdftotext",
        "OUTPUT/converted-image-pages.pdf",
        "-"
      ],
      "exit": 0,
      "stdout": "\f\f",
      "stderr": ""
    },
    {
      "command": [
        "pdfinfo",
        "OUTPUT/converted-image-pages.pdf"
      ],
      "exit": 0,
      "stdout": "Producer:        libtiff / tiff2pdf - 20260627\nCreationDate:    Mon Sep 14 19:25:49 2026 +08\nModDate:         Mon Sep 14 19:25:49 2026 +08\nCustom Metadata: no\nMetadata Stream: no\nTagged:          no\nUserProperties:  no\nSuspects:        no\nForm:            none\nJavaScript:      no\nPages:           2\nEncrypted:       no\nPage size:       288 x 384 pts\nPage rot:        0\nFile size:       4947 bytes\nOptimized:       no\nPDF version:     1.1\n",
      "stderr": ""
    },
    {
      "command": [
        "pdfimages",
        "-png",
        "OUTPUT/converted-image-pages.pdf",
        "WORK/pdf-image"
      ],
      "exit": 0,
      "stdout": "",
      "stderr": ""
    }
  ],
  "limits": [
    "Two simple pages do not measure OCR quality or complex layouts.",
    "The PDF check used pdftotext, not a screen reader or GUI.",
    "Incorrect text was inserted by this script, not produced by OCR.",
    "No DjVu support or translation outcome is claimed for BookTranslator."
  ]
}
