{
  "schema": "dokivo.public-vector-grayscale-example.v1",
  "date": "2026-10-23",
  "measuredSourceCommit": "3224afaa2cefd8dec03a3596e106fa9dd8013dbe",
  "method": "Actual processUpcomingFiles in the server compatibility container; independent PDFium and PDF.js readback. Fixed synthetic two-page source, all pages in both modes.",
  "runtime": {
    "ghostscript": "10.05.1",
    "oracle": {
      "Pillow": "12.3.0",
      "pdfium": "152.0.7947.0",
      "pypdfium2": "5.12.1"
    }
  },
  "source": "source.pdf",
  "vectorResult": "vector-result.pdf",
  "rasterComparison": "raster-all-pages.pdf",
  "settings": {
    "ocr": false,
    "mode": "grayscale-vector",
    "pages": "all"
  },
  "vector": {
    "code": "ok",
    "comparison": {
      "pages": [
        {
          "no_new_full_page_images": true,
          "page": 1,
          "same_72dpi_rgb": false,
          "same_invisible_characters": true,
          "same_native_boxes_rotate": true,
          "same_normalized_text": true,
          "same_path_geometry_signature": false,
          "same_pdfium_text": true,
          "same_visible_characters": true
        },
        {
          "no_new_full_page_images": true,
          "page": 2,
          "same_72dpi_rgb": false,
          "same_invisible_characters": true,
          "same_native_boxes_rotate": true,
          "same_normalized_text": true,
          "same_path_geometry_signature": true,
          "same_pdfium_text": true,
          "same_visible_characters": true
        }
      ],
      "same_page_count": true
    },
    "crop576Dpi": {
      "images": [
        {
          "bytes": 24103,
          "file": "source-text-576dpi.png",
          "gray_sha256": "afa8f16a0a81b5d18716a2ab0d16ed7cab0471581248093ac782ffa4d62131f3",
          "height": 81,
          "label": "source",
          "sha256": "a18b11e51967104c71bb77ebe026aa32702f27bc5172fc879eb786f7a819bb73",
          "width": 1566
        },
        {
          "bytes": 24103,
          "file": "output-text-576dpi.png",
          "gray_pixel_mean_abs_difference": 0,
          "gray_pixels_difference_gt16": 0,
          "gray_sha256": "afa8f16a0a81b5d18716a2ab0d16ed7cab0471581248093ac782ffa4d62131f3",
          "height": 81,
          "label": "output",
          "sha256": "a18b11e51967104c71bb77ebe026aa32702f27bc5172fc879eb786f7a819bb73",
          "width": 1566
        }
      ],
      "meaning": "visual evidence only; grayscale conversion can legitimately change luminance",
      "spec": {
        "anchor_text": "Тонкий текст 6 pt: подпись, формула A = πr², OCR-слой сохранён.",
        "bounds": [
          46.119999,
          201.746002,
          241.880035,
          211.811996
        ],
        "crop": [
          46.119999,
          201.746002,
          353.399994,
          630.078019
        ],
        "dpi": 576,
        "page": 1
      },
      "status": "rendered"
    },
    "diagnosticCode": null,
    "fixture": "colour",
    "output": {
      "bytes": 33449,
      "pageCount": 2,
      "pages": [
        {
          "counts": {
            "form": 0,
            "image": 0,
            "invisible_text": 1,
            "path": 5,
            "shading": 0,
            "text": 6,
            "unknown": 0,
            "visible_text": 5
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "DDPVBM+GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 15712,
              "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
            }
          ],
          "images": [],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 0,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                137.819977,
                9.57
              ],
              "characters": 39,
              "fonts": [
                {
                  "characters": 39,
                  "name": "DDPVBM+GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 15712,
                  "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
                }
              ],
              "objects": 1,
              "sha256": "6f566fc047cc2c8ddd36f03ebd4db6008f6c64d8a73cfbef3c9dbaf7213d931b"
            },
            "visible": {
              "bounds_union": [
                48.119999,
                203.746002,
                381.945007,
                788.247986
              ],
              "characters": 87,
              "fonts": [
                {
                  "characters": 87,
                  "name": "DDPVBM+GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 5,
                  "program_bytes": 15712,
                  "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
                }
              ],
              "objects": 5,
              "sha256": "cef3e994da35ea53d033c0dd8da260a2a9273acf4a4a49f9ff2a649ec2c5cf3a"
            }
          },
          "pathGeometry": {
            "bounds_union": [
              0,
              0,
              595.279968,
              841.890076
            ],
            "count": 5,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [
              {
                "bounds": [
                  0,
                  0,
                  595.279968,
                  841.890076
                ],
                "level": 0,
                "matrix": [
                  0.1,
                  0,
                  0,
                  0.1,
                  0,
                  0
                ],
                "page_bounds": [
                  0,
                  0,
                  595.279968,
                  841.890076
                ]
              },
              {
                "bounds": [
                  28,
                  28,
                  567,
                  813
                ],
                "level": 0,
                "matrix": [
                  0.1,
                  0,
                  0,
                  0.1,
                  0,
                  0
                ],
                "page_bounds": [
                  28,
                  28,
                  567,
                  813
                ]
              },
              {
                "bounds": [
                  90,
                  270,
                  162,
                  360
                ],
                "level": 0,
                "matrix": [
                  0.1,
                  0,
                  0,
                  0.1,
                  0,
                  0
                ],
                "page_bounds": [
                  90,
                  270,
                  162,
                  360
                ]
              },
              {
                "bounds": [
                  220,
                  270,
                  292,
                  415
                ],
                "level": 0,
                "matrix": [
                  0.1,
                  0,
                  0,
                  0.1,
                  0,
                  0
                ],
                "page_bounds": [
                  220,
                  270,
                  292,
                  415
                ]
              },
              {
                "bounds": [
                  350,
                  270,
                  422,
                  480
                ],
                "level": 0,
                "matrix": [
                  0.1,
                  0,
                  0,
                  0.1,
                  0,
                  0
                ],
                "page_bounds": [
                  350,
                  270,
                  422,
                  480
                ]
              }
            ],
            "records_truncated": false,
            "sha256": "344474e84b6a7f41b8507b2a17cd0e0b49cfd48144ac4002a2d4591374a9397c"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 0,
            "height": 842,
            "max_chroma": 0,
            "mean_chroma": 0,
            "pixels": 501832,
            "rgb_sha256": "67716423c126a0ba85ceb38de5b2a7339279547eb8766c1ad45930dfc33daee0",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 151,
          "textSha256": "abff16fa73f9ac40f012e2f5ecc731e16b2a3c4e0e44594f3c6fa1c76afa0c41",
          "textTruncated": false
        },
        {
          "counts": {
            "form": 0,
            "image": 1,
            "invisible_text": 1,
            "path": 0,
            "shading": 0,
            "text": 2,
            "unknown": 0,
            "visible_text": 1
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "DDPVBM+GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 15712,
              "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
            }
          ],
          "images": [
            {
              "bounds": [
                85,
                80,
                510,
                647
              ],
              "height": 1200,
              "level": 0,
              "width": 900
            }
          ],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 1,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [
              {
                "bounds": [
                  85,
                  80,
                  510,
                  647
                ],
                "image_height": 1200,
                "image_width": 900,
                "level": 0,
                "matrix": [
                  425,
                  0,
                  0,
                  567,
                  85,
                  80
                ],
                "page_bbox_coverage": 0.480834,
                "page_bounds": [
                  85,
                  80,
                  510,
                  647
                ]
              }
            ],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                127.375008,
                9.57
              ],
              "characters": 37,
              "fonts": [
                {
                  "characters": 37,
                  "name": "DDPVBM+GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 15712,
                  "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
                }
              ],
              "objects": 1,
              "sha256": "4880546ecbd4fbaabe39486c8ded9aa9b7268e4b967975c723aac29d07ab1868"
            },
            "visible": {
              "bounds_union": [
                180.990005,
                696.41803,
                382.860016,
                713.338013
              ],
              "characters": 18,
              "fonts": [
                {
                  "characters": 18,
                  "name": "DDPVBM+GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 15712,
                  "program_sha256": "80a46c41eb831d50e294d7073e503ad47b86647af01a2b60f065f098022301e4"
                }
              ],
              "objects": 1,
              "sha256": "1837d0ce124c53f0b629d112931e01c37fe91e21aa196ad30c16bac428a1b740"
            }
          },
          "pathGeometry": {
            "bounds_union": null,
            "count": 0,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [],
            "records_truncated": false,
            "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 0,
            "height": 842,
            "max_chroma": 0,
            "mean_chroma": 0,
            "pixels": 501832,
            "rgb_sha256": "2560d580c9e7bb542759376bfcb473c283a76877cc9ab083ec075b516d98148c",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 62,
          "textSha256": "9fae32bc3e0d1322220942dcad286a7f70efd515a156321dd09ba9693d9685bd",
          "textTruncated": false
        }
      ],
      "sha256": "5bea8b4e72d9f15a7b073d7b70768264fdec819b37a2289934e71a10fb244317"
    },
    "pdfJsTextReadback": {
      "pages": [
        {
          "invisiblePainted": null,
          "invisiblePaintedComplete": false,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 151,
            "same": true,
            "sourceCodePointCount": 151
          },
          "outputTruncated": false,
          "page": 1,
          "sourceTruncated": false,
          "visiblePainted": null,
          "visiblePaintedComplete": false,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 126,
            "same": true,
            "sourceCodePointCount": 126
          }
        },
        {
          "invisiblePainted": null,
          "invisiblePaintedComplete": false,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 62,
            "same": true,
            "sourceCodePointCount": 62
          },
          "outputTruncated": false,
          "page": 2,
          "sourceTruncated": false,
          "visiblePainted": null,
          "visiblePaintedComplete": false,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 55,
            "same": true,
            "sourceCodePointCount": 55
          }
        }
      ],
      "reader": "PDF.js",
      "schema": "dokivo.synthetic-pdf-text-difference.v1",
      "scope": "fixed-synthetic-fixtures-only"
    },
    "processing": {
      "alreadyGrayPages": [],
      "annotationColorsPreserved": true,
      "annotationsPreserved": true,
      "convertedPages": [
        1,
        2
      ],
      "engine": "ghostscript-gray-source-graft",
      "mode": "grayscale-vector",
      "pageCount": 2,
      "searchableLayerReconstructed": false,
      "textLayerPreserved": true,
      "textVerification": "pdfjs-non-whitespace-characters-all-pages",
      "vectorVerification": "pdfjs-painted-unicode-path-segments-image-placements-v1",
      "warnings": [
        "Пометки и поля формы сохраняют свои цвета. Режим изменяет только содержимое выбранных страниц.",
        "Режим не выполняет OCR. Скан без исходного текстового слоя останется без поиска текста."
      ]
    },
    "provider": "dokivo",
    "source": {
      "bytes": 144375,
      "pageCount": 2,
      "pages": [
        {
          "counts": {
            "form": 0,
            "image": 0,
            "invisible_text": 1,
            "path": 5,
            "shading": 0,
            "text": 6,
            "unknown": 0,
            "visible_text": 5
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 0,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                137.819977,
                9.57
              ],
              "characters": 39,
              "fonts": [
                {
                  "characters": 39,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "6f566fc047cc2c8ddd36f03ebd4db6008f6c64d8a73cfbef3c9dbaf7213d931b"
            },
            "visible": {
              "bounds_union": [
                48.119999,
                203.746002,
                381.945007,
                788.247986
              ],
              "characters": 87,
              "fonts": [
                {
                  "characters": 87,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 5,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 5,
              "sha256": "cef3e994da35ea53d033c0dd8da260a2a9273acf4a4a49f9ff2a649ec2c5cf3a"
            }
          },
          "pathGeometry": {
            "bounds_union": [
              0,
              0,
              595.280029,
              841.890015
            ],
            "count": 5,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [
              {
                "bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  0,
                  0
                ],
                "page_bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ]
              },
              {
                "bounds": [
                  28,
                  28,
                  567,
                  813
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  28,
                  28
                ],
                "page_bounds": [
                  28,
                  28,
                  567,
                  813
                ]
              },
              {
                "bounds": [
                  90,
                  270,
                  162,
                  360
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  90,
                  270
                ],
                "page_bounds": [
                  90,
                  270,
                  162,
                  360
                ]
              },
              {
                "bounds": [
                  220,
                  270,
                  292,
                  415
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  220,
                  270
                ],
                "page_bounds": [
                  220,
                  270,
                  292,
                  415
                ]
              },
              {
                "bounds": [
                  350,
                  270,
                  422,
                  480
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  350,
                  270
                ],
                "page_bounds": [
                  350,
                  270,
                  422,
                  480
                ]
              }
            ],
            "records_truncated": false,
            "sha256": "0c0bc3974c831cf64c767a7e4b8ee695533a7750aa0ec87e355341cb7c7d1e1a"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 110096,
            "height": 842,
            "max_chroma": 178,
            "mean_chroma": 9.934498,
            "pixels": 501832,
            "rgb_sha256": "847a5489b05364ef7c323a26bd9ba145d18f6aa3d56fcb5e52d0a499db721ac0",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 151,
          "textSha256": "abff16fa73f9ac40f012e2f5ecc731e16b2a3c4e0e44594f3c6fa1c76afa0c41",
          "textTruncated": false
        },
        {
          "counts": {
            "form": 0,
            "image": 1,
            "invisible_text": 1,
            "path": 0,
            "shading": 0,
            "text": 2,
            "unknown": 0,
            "visible_text": 1
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [
            {
              "bounds": [
                85,
                80,
                510,
                647
              ],
              "height": 1200,
              "level": 0,
              "width": 900
            }
          ],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 1,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [
              {
                "bounds": [
                  85,
                  80,
                  510,
                  647
                ],
                "image_height": 1200,
                "image_width": 900,
                "level": 0,
                "matrix": [
                  425,
                  0,
                  0,
                  567,
                  85,
                  80
                ],
                "page_bbox_coverage": 0.480834,
                "page_bounds": [
                  85,
                  80,
                  510,
                  647
                ]
              }
            ],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                127.375008,
                9.57
              ],
              "characters": 37,
              "fonts": [
                {
                  "characters": 37,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "4880546ecbd4fbaabe39486c8ded9aa9b7268e4b967975c723aac29d07ab1868"
            },
            "visible": {
              "bounds_union": [
                180.990005,
                696.41803,
                382.860016,
                713.338013
              ],
              "characters": 18,
              "fonts": [
                {
                  "characters": 18,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "1837d0ce124c53f0b629d112931e01c37fe91e21aa196ad30c16bac428a1b740"
            }
          },
          "pathGeometry": {
            "bounds_union": null,
            "count": 0,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [],
            "records_truncated": false,
            "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 241781,
            "height": 842,
            "max_chroma": 83,
            "mean_chroma": 10.52396,
            "pixels": 501832,
            "rgb_sha256": "324e691b555ecb7b5f37f623afdc24e576fb8c4a92ec9f6a5c8c3b9d8e1034ad",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 62,
          "textSha256": "9fae32bc3e0d1322220942dcad286a7f70efd515a156321dd09ba9693d9685bd",
          "textTruncated": false
        }
      ],
      "sha256": "1d306f2a14eefd0623bbafb8a95efbeee92b87d5ca797a760a13a1e84c47221f"
    },
    "sourceSha256": "1d306f2a14eefd0623bbafb8a95efbeee92b87d5ca797a760a13a1e84c47221f",
    "structure": {
      "output": {
        "creator": "pdf-lib (https://github.com/Hopding/pdf-lib)",
        "fields": [],
        "pageCount": 2,
        "pages": [
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          },
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          }
        ],
        "producer": "pdf-lib (https://github.com/Hopding/pdf-lib)"
      },
      "sameAnnotations": true,
      "sameFields": true,
      "sameGeometry": true,
      "source": {
        "creator": "pdf-lib (https://github.com/Hopding/pdf-lib)",
        "fields": [],
        "pageCount": 2,
        "pages": [
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          },
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          }
        ],
        "producer": "pdf-lib (https://github.com/Hopding/pdf-lib)"
      }
    },
    "textReadback": {
      "pages": [
        {
          "invisiblePainted": {
            "firstMismatch": null,
            "outputCodePointCount": 39,
            "same": true,
            "sourceCodePointCount": 39
          },
          "invisiblePaintedComplete": true,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 151,
            "same": true,
            "sourceCodePointCount": 151
          },
          "outputTruncated": false,
          "page": 1,
          "sourceTruncated": false,
          "visiblePainted": {
            "firstMismatch": null,
            "outputCodePointCount": 87,
            "same": true,
            "sourceCodePointCount": 87
          },
          "visiblePaintedComplete": true,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 126,
            "same": true,
            "sourceCodePointCount": 126
          }
        },
        {
          "invisiblePainted": {
            "firstMismatch": null,
            "outputCodePointCount": 37,
            "same": true,
            "sourceCodePointCount": 37
          },
          "invisiblePaintedComplete": true,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 62,
            "same": true,
            "sourceCodePointCount": 62
          },
          "outputTruncated": false,
          "page": 2,
          "sourceTruncated": false,
          "visiblePainted": {
            "firstMismatch": null,
            "outputCodePointCount": 18,
            "same": true,
            "sourceCodePointCount": 18
          },
          "visiblePaintedComplete": true,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 55,
            "same": true,
            "sourceCodePointCount": 55
          }
        }
      ],
      "reader": "PDFium",
      "schema": "dokivo.synthetic-pdf-text-difference.v1",
      "scope": "fixed-synthetic-fixtures-only"
    }
  },
  "raster": {
    "code": "ok",
    "comparison": {
      "pages": [
        {
          "no_new_full_page_images": false,
          "page": 1,
          "same_72dpi_rgb": false,
          "same_invisible_characters": false,
          "same_native_boxes_rotate": true,
          "same_normalized_text": true,
          "same_path_geometry_signature": false,
          "same_pdfium_text": true,
          "same_visible_characters": false
        },
        {
          "no_new_full_page_images": false,
          "page": 2,
          "same_72dpi_rgb": false,
          "same_invisible_characters": false,
          "same_native_boxes_rotate": true,
          "same_normalized_text": true,
          "same_path_geometry_signature": true,
          "same_pdfium_text": true,
          "same_visible_characters": false
        }
      ],
      "same_page_count": true
    },
    "crop576Dpi": {
      "images": [
        {
          "bytes": 24103,
          "file": "source-text-576dpi.png",
          "gray_sha256": "afa8f16a0a81b5d18716a2ab0d16ed7cab0471581248093ac782ffa4d62131f3",
          "height": 81,
          "label": "source",
          "sha256": "a18b11e51967104c71bb77ebe026aa32702f27bc5172fc879eb786f7a819bb73",
          "width": 1566
        },
        {
          "bytes": 6763,
          "file": "output-text-576dpi.png",
          "gray_pixel_mean_abs_difference": 10.255727,
          "gray_pixels_difference_gt16": 20938,
          "gray_sha256": "bab9816441199e037e071d2c2c353641cbc9f980bf69c5e3ff7bd8e44115239d",
          "height": 81,
          "label": "output",
          "sha256": "a8aad79e5395d653679b9d47c037734f93e6a43f94a6f8d02487470692fd7b38",
          "width": 1566
        }
      ],
      "meaning": "visual evidence only; grayscale conversion can legitimately change luminance",
      "spec": {
        "anchor_text": "Тонкий текст 6 pt: подпись, формула A = πr², OCR-слой сохранён.",
        "bounds": [
          46.119999,
          201.746002,
          241.880035,
          211.811996
        ],
        "crop": [
          46.119999,
          201.746002,
          353.399994,
          630.078019
        ],
        "dpi": 576,
        "page": 1
      },
      "status": "rendered"
    },
    "diagnosticCode": null,
    "fixture": "colour",
    "output": {
      "bytes": 153315,
      "pageCount": 2,
      "pages": [
        {
          "counts": {
            "form": 0,
            "image": 1,
            "invisible_text": 6,
            "path": 0,
            "shading": 0,
            "text": 6,
            "unknown": 0,
            "visible_text": 0
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-7720",
              "normalized_name": "GolosText-Regular-7720",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [
            {
              "bounds": [
                0,
                0,
                595.280029,
                841.890015
              ],
              "height": 1684,
              "level": 0,
              "width": 1191
            }
          ],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 1,
            "full_page_count": 1,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [
              {
                "bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ],
                "image_height": 1684,
                "image_width": 1191,
                "level": 0,
                "matrix": [
                  595.280029,
                  0,
                  0,
                  841.890015,
                  0,
                  0
                ],
                "page_bbox_coverage": 1,
                "page_bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ]
              }
            ],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                381.945007,
                788.247986
              ],
              "characters": 126,
              "fonts": [
                {
                  "characters": 126,
                  "name": "GolosText-Regular-7720",
                  "normalized_name": "GolosText-Regular-7720",
                  "objects": 6,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 6,
              "sha256": "e95d5a1eb1efc92ab04e787c911dacff16665f6f93a1c9d8075388426e4c1712"
            },
            "visible": {
              "bounds_union": null,
              "characters": 0,
              "fonts": [],
              "objects": 0,
              "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            }
          },
          "pathGeometry": {
            "bounds_union": null,
            "count": 0,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [],
            "records_truncated": false,
            "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 0,
            "height": 842,
            "max_chroma": 0,
            "mean_chroma": 0,
            "pixels": 501832,
            "rgb_sha256": "49220146eb8f7ef6afe87e8c8d72f4616eb5deb19a5690264ba9e11b039b0f99",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 151,
          "textSha256": "abff16fa73f9ac40f012e2f5ecc731e16b2a3c4e0e44594f3c6fa1c76afa0c41",
          "textTruncated": false
        },
        {
          "counts": {
            "form": 0,
            "image": 1,
            "invisible_text": 2,
            "path": 0,
            "shading": 0,
            "text": 2,
            "unknown": 0,
            "visible_text": 0
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-7720",
              "normalized_name": "GolosText-Regular-7720",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [
            {
              "bounds": [
                0,
                0,
                595.280029,
                841.890015
              ],
              "height": 1684,
              "level": 0,
              "width": 1191
            }
          ],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 1,
            "full_page_count": 1,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [
              {
                "bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ],
                "image_height": 1684,
                "image_width": 1191,
                "level": 0,
                "matrix": [
                  595.280029,
                  0,
                  0,
                  841.890015,
                  0,
                  0
                ],
                "page_bbox_coverage": 1,
                "page_bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ]
              }
            ],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                382.860016,
                713.338013
              ],
              "characters": 55,
              "fonts": [
                {
                  "characters": 55,
                  "name": "GolosText-Regular-7720",
                  "normalized_name": "GolosText-Regular-7720",
                  "objects": 2,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 2,
              "sha256": "91d3d6ea62d654ab1b23c134c87c39d3a341a9bb8a57b79cdd5651309e52baca"
            },
            "visible": {
              "bounds_union": null,
              "characters": 0,
              "fonts": [],
              "objects": 0,
              "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            }
          },
          "pathGeometry": {
            "bounds_union": null,
            "count": 0,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [],
            "records_truncated": false,
            "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 0,
            "height": 842,
            "max_chroma": 0,
            "mean_chroma": 0,
            "pixels": 501832,
            "rgb_sha256": "62a706681d0ae2b060c13e16922df0ea508ed13e70fe1987b5d5d7d52600267d",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 62,
          "textSha256": "9fae32bc3e0d1322220942dcad286a7f70efd515a156321dd09ba9693d9685bd",
          "textTruncated": false
        }
      ],
      "sha256": "cfe88c9cde02255f568aaf1447ca4f4bb5c8edcd01558a90b2ebbfc3adcd55ef"
    },
    "pdfJsTextReadback": {
      "pages": [
        {
          "invisiblePainted": null,
          "invisiblePaintedComplete": false,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 151,
            "same": true,
            "sourceCodePointCount": 151
          },
          "outputTruncated": false,
          "page": 1,
          "sourceTruncated": false,
          "visiblePainted": null,
          "visiblePaintedComplete": false,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 126,
            "same": true,
            "sourceCodePointCount": 126
          }
        },
        {
          "invisiblePainted": null,
          "invisiblePaintedComplete": false,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 62,
            "same": true,
            "sourceCodePointCount": 62
          },
          "outputTruncated": false,
          "page": 2,
          "sourceTruncated": false,
          "visiblePainted": null,
          "visiblePaintedComplete": false,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 55,
            "same": true,
            "sourceCodePointCount": 55
          }
        }
      ],
      "reader": "PDF.js",
      "schema": "dokivo.synthetic-pdf-text-difference.v1",
      "scope": "fixed-synthetic-fixtures-only"
    },
    "provider": "dokivo-before",
    "source": {
      "bytes": 144375,
      "pageCount": 2,
      "pages": [
        {
          "counts": {
            "form": 0,
            "image": 0,
            "invisible_text": 1,
            "path": 5,
            "shading": 0,
            "text": 6,
            "unknown": 0,
            "visible_text": 5
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 0,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                137.819977,
                9.57
              ],
              "characters": 39,
              "fonts": [
                {
                  "characters": 39,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "6f566fc047cc2c8ddd36f03ebd4db6008f6c64d8a73cfbef3c9dbaf7213d931b"
            },
            "visible": {
              "bounds_union": [
                48.119999,
                203.746002,
                381.945007,
                788.247986
              ],
              "characters": 87,
              "fonts": [
                {
                  "characters": 87,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 5,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 5,
              "sha256": "cef3e994da35ea53d033c0dd8da260a2a9273acf4a4a49f9ff2a649ec2c5cf3a"
            }
          },
          "pathGeometry": {
            "bounds_union": [
              0,
              0,
              595.280029,
              841.890015
            ],
            "count": 5,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [
              {
                "bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  0,
                  0
                ],
                "page_bounds": [
                  0,
                  0,
                  595.280029,
                  841.890015
                ]
              },
              {
                "bounds": [
                  28,
                  28,
                  567,
                  813
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  28,
                  28
                ],
                "page_bounds": [
                  28,
                  28,
                  567,
                  813
                ]
              },
              {
                "bounds": [
                  90,
                  270,
                  162,
                  360
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  90,
                  270
                ],
                "page_bounds": [
                  90,
                  270,
                  162,
                  360
                ]
              },
              {
                "bounds": [
                  220,
                  270,
                  292,
                  415
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  220,
                  270
                ],
                "page_bounds": [
                  220,
                  270,
                  292,
                  415
                ]
              },
              {
                "bounds": [
                  350,
                  270,
                  422,
                  480
                ],
                "level": 0,
                "matrix": [
                  1,
                  0,
                  0,
                  1,
                  350,
                  270
                ],
                "page_bounds": [
                  350,
                  270,
                  422,
                  480
                ]
              }
            ],
            "records_truncated": false,
            "sha256": "0c0bc3974c831cf64c767a7e4b8ee695533a7750aa0ec87e355341cb7c7d1e1a"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 110096,
            "height": 842,
            "max_chroma": 178,
            "mean_chroma": 9.934498,
            "pixels": 501832,
            "rgb_sha256": "847a5489b05364ef7c323a26bd9ba145d18f6aa3d56fcb5e52d0a499db721ac0",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 151,
          "textSha256": "abff16fa73f9ac40f012e2f5ecc731e16b2a3c4e0e44594f3c6fa1c76afa0c41",
          "textTruncated": false
        },
        {
          "counts": {
            "form": 0,
            "image": 1,
            "invisible_text": 1,
            "path": 0,
            "shading": 0,
            "text": 2,
            "unknown": 0,
            "visible_text": 1
          },
          "cropBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "fonts": [
            {
              "name": "GolosText-Regular-2708",
              "normalized_name": "GolosText-Regular-2708",
              "program_bytes": 184292,
              "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
            }
          ],
          "images": [
            {
              "bounds": [
                85,
                80,
                510,
                647
              ],
              "height": 1200,
              "level": 0,
              "width": 900
            }
          ],
          "mediaBox": [
            0,
            0,
            595.280029,
            841.890015
          ],
          "objectsTruncated": false,
          "paintedImages": {
            "count": 1,
            "full_page_count": 0,
            "full_page_definition": "painted image bounding box covers >=95% of page bbox; not clipping/occlusion aware",
            "records": [
              {
                "bounds": [
                  85,
                  80,
                  510,
                  647
                ],
                "image_height": 1200,
                "image_width": 900,
                "level": 0,
                "matrix": [
                  425,
                  0,
                  0,
                  567,
                  85,
                  80
                ],
                "page_bbox_coverage": 0.480834,
                "page_bounds": [
                  85,
                  80,
                  510,
                  647
                ]
              }
            ],
            "records_truncated": false
          },
          "paintedText": {
            "invisible": {
              "bounds_union": [
                5.5,
                4.005,
                127.375008,
                9.57
              ],
              "characters": 37,
              "fonts": [
                {
                  "characters": 37,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "4880546ecbd4fbaabe39486c8ded9aa9b7268e4b967975c723aac29d07ab1868"
            },
            "visible": {
              "bounds_union": [
                180.990005,
                696.41803,
                382.860016,
                713.338013
              ],
              "characters": 18,
              "fonts": [
                {
                  "characters": 18,
                  "name": "GolosText-Regular-2708",
                  "normalized_name": "GolosText-Regular-2708",
                  "objects": 1,
                  "program_bytes": 184292,
                  "program_sha256": "17bb58fb69aec2dfb047a2ebf52534023e9b688c97a6b7ac795b0a72912c2063"
                }
              ],
              "objects": 1,
              "sha256": "1837d0ce124c53f0b629d112931e01c37fe91e21aa196ad30c16bac428a1b740"
            }
          },
          "pathGeometry": {
            "bounds_union": null,
            "count": 0,
            "precision": "bounds/matrices rounded to 6 decimals; no path-segment equivalence claim",
            "records": [],
            "records_truncated": false,
            "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "render72Dpi": {
            "colored_pixels_gt2": 241781,
            "height": 842,
            "max_chroma": 83,
            "mean_chroma": 10.52396,
            "pixels": 501832,
            "rgb_sha256": "324e691b555ecb7b5f37f623afdc24e576fb8c4a92ec9f6a5c8c3b9d8e1034ad",
            "width": 596
          },
          "rotate": 0,
          "textCharacters": 62,
          "textSha256": "9fae32bc3e0d1322220942dcad286a7f70efd515a156321dd09ba9693d9685bd",
          "textTruncated": false
        }
      ],
      "sha256": "1d306f2a14eefd0623bbafb8a95efbeee92b87d5ca797a760a13a1e84c47221f"
    },
    "sourceSha256": "1d306f2a14eefd0623bbafb8a95efbeee92b87d5ca797a760a13a1e84c47221f",
    "structure": {
      "output": {
        "creator": "pdf-lib (https://github.com/Hopding/pdf-lib)",
        "fields": [],
        "pageCount": 2,
        "pages": [
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          },
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          }
        ],
        "producer": "pdf-lib (https://github.com/Hopding/pdf-lib)"
      },
      "sameAnnotations": true,
      "sameFields": true,
      "sameGeometry": true,
      "source": {
        "creator": "pdf-lib (https://github.com/Hopding/pdf-lib)",
        "fields": [],
        "pageCount": 2,
        "pages": [
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          },
          {
            "annotations": [],
            "crop": [
              0,
              0,
              595.28,
              841.89
            ],
            "media": [
              0,
              0,
              595.28,
              841.89
            ],
            "rotate": 0,
            "userUnit": 1
          }
        ],
        "producer": "pdf-lib (https://github.com/Hopding/pdf-lib)"
      }
    },
    "textReadback": {
      "pages": [
        {
          "invisiblePainted": {
            "firstMismatch": {
              "index": 0,
              "outputCodePoints": [
                1062,
                1074,
                1077,
                1090,
                44,
                1090,
                1086,
                1085
              ],
              "outputSnippet": "Цвет,тонкийтекстисерыйфонЯнвФевМарТонкийтекст6pt",
              "sourceCodePoints": [
                1053,
                1045,
                1042,
                1048,
                1044,
                1048,
                1052,
                1067
              ],
              "sourceSnippet": "НЕВИДИМЫЙOCRСЛОЙ:цветнаядиаграммаDOKIVO"
            },
            "outputCodePointCount": 126,
            "same": false,
            "sourceCodePointCount": 39
          },
          "invisiblePaintedComplete": true,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 151,
            "same": true,
            "sourceCodePointCount": 151
          },
          "outputTruncated": false,
          "page": 1,
          "sourceTruncated": false,
          "visiblePainted": {
            "firstMismatch": {
              "index": 0,
              "outputCodePoints": [],
              "outputSnippet": "",
              "sourceCodePoints": [
                1062,
                1074,
                1077,
                1090,
                44,
                1090,
                1086,
                1085
              ],
              "sourceSnippet": "Цвет,тонкийтекстисерыйфонЯнвФевМарТонкийтекст6pt"
            },
            "outputCodePointCount": 0,
            "same": false,
            "sourceCodePointCount": 87
          },
          "visiblePaintedComplete": true,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 126,
            "same": true,
            "sourceCodePointCount": 126
          }
        },
        {
          "invisiblePainted": {
            "firstMismatch": {
              "index": 0,
              "outputCodePoints": [
                1060,
                1086,
                1090,
                1086,
                1075,
                1088,
                1072,
                1092
              ],
              "outputSnippet": "ФотографияиподписьНЕВИДИМЫЙOCRСЛОЙ:синтетический",
              "sourceCodePoints": [
                1053,
                1045,
                1042,
                1048,
                1044,
                1048,
                1052,
                1067
              ],
              "sourceSnippet": "НЕВИДИМЫЙOCRСЛОЙ:синтетическийпортрет"
            },
            "outputCodePointCount": 55,
            "same": false,
            "sourceCodePointCount": 37
          },
          "invisiblePaintedComplete": true,
          "normalized": {
            "firstMismatch": null,
            "outputCodePointCount": 62,
            "same": true,
            "sourceCodePointCount": 62
          },
          "outputTruncated": false,
          "page": 2,
          "sourceTruncated": false,
          "visiblePainted": {
            "firstMismatch": {
              "index": 0,
              "outputCodePoints": [],
              "outputSnippet": "",
              "sourceCodePoints": [
                1060,
                1086,
                1090,
                1086,
                1075,
                1088,
                1072,
                1092
              ],
              "sourceSnippet": "Фотографияиподпись"
            },
            "outputCodePointCount": 0,
            "same": false,
            "sourceCodePointCount": 18
          },
          "visiblePaintedComplete": true,
          "withoutWhitespace": {
            "firstMismatch": null,
            "outputCodePointCount": 55,
            "same": true,
            "sourceCodePointCount": 55
          }
        }
      ],
      "reader": "PDFium",
      "schema": "dokivo.synthetic-pdf-text-difference.v1",
      "scope": "fixed-synthetic-fixtures-only"
    }
  },
  "assertions": [
    {
      "checks": {
        "everyPageHasBitmap": true,
        "pageCount": true,
        "visibleTextAbsent": true
      },
      "fixture": "raster-before-all-pages"
    },
    {
      "checks": {
        "annotations": true,
        "colourContentIsGray": true,
        "cropRendered": true,
        "fields": true,
        "geometry": true,
        "invisibleTextRetained": true,
        "noNewFullPageBitmap": true,
        "pageCount": true,
        "pathCountAndCoverage": true,
        "textWithoutWhitespace": true,
        "vectorPathsRetained": true,
        "visibleFontFamiliesRetained": true,
        "visibleTextRetained": true
      },
      "fixture": "colour"
    }
  ],
  "limits": [
    "One synthetic source is not a corpus-wide guarantee.",
    "Existing source text only; no OCR.",
    "Annotation and form appearance colours remain unchanged.",
    "Digital signatures, layers, tags and complex page geometry are unsupported.",
    "The 576 DPI crop is a visual comparison of one 6 pt line; its equality is not a guarantee for every page or font.",
    "The original source already contains a missing visual glyph for pi; conversion does not repair font coverage."
  ]
}
