docvortex 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docvortex-0.2.1/src/docvortex.egg-info → docvortex-0.2.2}/PKG-INFO +1 -1
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/COMPATIBILITY.md +1 -1
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/DOCVORTEX_UPGRADE.md +51 -1
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/document.py +9 -6
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/version.py +1 -1
- docvortex-0.2.2/src/docvortex/visualization.py +222 -0
- {docvortex-0.2.1 → docvortex-0.2.2/src/docvortex.egg-info}/PKG-INFO +1 -1
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/SOURCES.txt +2 -1
- docvortex-0.2.2/tests/unittest/test_pdf_visualization.py +345 -0
- docvortex-0.2.1/src/docvortex/document/pdf/diagnostics.py +0 -350
- {docvortex-0.2.1 → docvortex-0.2.2}/LICENSE.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/MANIFEST.in +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/README.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/README.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/demo.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/README.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/docx_01.doc +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/docx_01.docx +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/pptx_01.ppt +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/pptx_01.pptx +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/rtf_01.rtf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/xlsx_01.xls +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/xlsx_01.xlsx +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/2407.00079v4_origi-10.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/IEBM_A_2667169_O-5.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/caibao1.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo1.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo2.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo3.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo4.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo6.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_03_06.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_07_10.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_11_15.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_39_40.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/small_ocr.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/207.pdf" +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2072.pdf" +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2073.pdf" +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2074.pdf" +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/HTML_PROTOCOL.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/JSON_PROTOCOL.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_FONTS.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_SCRIPT_REPAIR.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_TEXT_NORMALIZATION.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/REFACTOR_PROGRESS.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/RENDER_OWNERSHIP.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/architecture.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/migration.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/content-list-ownership.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/docvortex-text-baseline.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/docvortex-upgrade.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/droid-cjk-v1.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/droid-platform-comparison.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/html-namespace.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/json-envelope-v2-baselines.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/json-envelope-v2.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-geometry-calibration.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-geometry-calibration.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-script-repair.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-text-normalization.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-text-output-baseline.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/progressive-refactor.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/test-migration.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/test-migration.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation.md +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/pyproject.toml +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/schemas/middle-2.0.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/schemas/model-2.0.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/setup.cfg +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/hyperlink.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/image.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/anchors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/formula.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/projector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/mathml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/names.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/xycut.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/csv.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/metadata.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/package.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/xhtml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/anchors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/document.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/selector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/images.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/metadata.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/package.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/path.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/reading_order.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/scene.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/bookmarks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/doc_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/fib.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/fields.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/formatting.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/images.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/lists.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/parser.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/pieces.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/records.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/sprm.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/context.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/docx_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/equationxml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/fields.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/formatting_types.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/main.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/numbering.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/office_xml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/package_normalizer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/tables.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/image.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/latex_dict.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/mtef_v5.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/omml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/ooxml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/image.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/binary.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/officeart.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/ole.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/limits.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/chart.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/converters.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/metadata.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/package.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ooxml_chart.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/opc.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/parser.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/ppt_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/records.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/style_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/context.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/lists.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/main.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/package_normalizer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/pptx_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/shapes.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/text_styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/titles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rich_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/lexer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/math.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/parser.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/html.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/projector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/streams.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/chart.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/embedded_chart.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/number_format.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/parser.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/records.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/strings.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/xls_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/main.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/ooxml_ole.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/package_normalizer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/xlsx_converter.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/auxiliary_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/char_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/code_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/formulas.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/graphics.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/index_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/common.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/detection.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/matching.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/materialize.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/scripts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/types.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/line_layout.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/line_merging.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/native_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/script_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/shared.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/spatial_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_annotations.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_detection.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_filled_grid.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_materialization.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/candidate.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/engine.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_common.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_hybrid.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_multiline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/text_grid.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/vector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_rows.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_rules.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_text_styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/tables.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/annotations.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/assembly.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/common.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/footnotes.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/merging.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/rows.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/body_profile.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/common.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/document_profile.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/lane_titles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/page_titles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/prototype.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/structural.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/titles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/typography.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/visual_annotations.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/api.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/assets/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/assets/store.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/cli.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/materializer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/parser.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/json.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/anchors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/formula.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/projector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/mathml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/normalization.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/spans.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/content.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/document.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/html.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/rules.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/structure.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/tree.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/detection.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/filetypes.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/page_range.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/classify.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/constants.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/font_runtime.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/images.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_annotations.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_coordinates.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_lifecycle.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_objects.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_text_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/pdfium.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/raster.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/extract.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/groups.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/visual_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/visuals.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/source.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/errors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/bundle.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/files.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/middle.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/hyperlink.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image_encoding.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image_payload.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/language.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/platform.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/type_identity.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/xml_names.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/options.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/content.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/document.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/lists.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/page_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/pages.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/paragraphs.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/visual.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/context.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/html_table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/index.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/list_items.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/planner.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/math.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/package.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/sanitizer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/escaping.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/formula.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/inline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/structured_content/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/structured_content/renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/api.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/contracts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/docx.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/epub.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/fragments.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/html.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/latex.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/markdown.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/pdf.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/structured_content.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/epub/docvortex.css +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fasttext-langdetect/lid.176.ftz +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/DroidSansFallbackFull.ttf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/NOTICE +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/manifest.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/html/docvortex.css +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/html/docvortex.min.css +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/result.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/schema.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/dependency_links.txt +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/entry_points.txt +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/requires.txt +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/top_level.txt +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/benchmarks/flash_pdf.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/benchmarks/pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/evaluate_native_pdf_table_manifest.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_block_expectations.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_geometry_manifest.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_semantic_expectations.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/generate_synthetic_pdf_fixtures.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_cross_page_manifest.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_demo_manifest.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_script_truth.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/pdf_mixed_font_script_line.json +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/rtf/semantic.rtf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_architecture.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_benchmark_entrypoint.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_brand_protocol.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_complete_pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_converter_lifecycle.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_document_envelope.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_format_matrix.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_html_namespace.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_mixed_font_script_reference.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_font_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_font_runtime.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_model_text_normalization.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_output_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_render_pool.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_source_row_merging.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_symbol_normalization.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_public_pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_raster.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_rendering.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_resources.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_render_ownership.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_renderer_branding.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_shared_boundaries.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_system_font_pdf_pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_validated_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_docx_equationxml_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_epub_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_flash_pdf_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_image_mtef_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_doc_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_ppt_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_xls_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_metafile_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_mtef_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_mtef_v5_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_native_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_odf_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_ofd_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_office_image_mtef_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_ooxml_mtef_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_span_test_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/flash_layout/mixed_text_layout_sample.pdf.xor +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/flash_table_annotations_synthetic.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/metabolic_pathway_page_3.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_cjk_layout_synthetic.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_fundraising_projects_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_management_roles_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_research_projects_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/conference_schedule_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/engineering_process_restrictions_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/fund_asset_and_transaction_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/fund_manager_profile_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/manufacturing_facilities_cross_page_table.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/pollutant_discharge_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/procurement_contract_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/procurement_document_blank_page_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/quarterly_report_financial_tables.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/test.pdf +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_backend_architecture.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_backend_block_object_regressions.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_assets.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_complex_fields.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_math.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_special_char_tables.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_emfplus_integration.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_epub_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_csv.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_docx_equationxml.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_epub.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_html.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_image_mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_chart_data.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_doc.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_doc_mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_ppt.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_xls.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_xls_ppt_mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_markup_anchors.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_model.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_mtef_v5.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_odf.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_ofd.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_image_mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_metafile.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_mtef_v5.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_package_normalizers.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_title_types.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_ooxml_mtef.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_auxiliary_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_char_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_code_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_document_profile.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_extractor.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_formulas.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_graphics.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_index_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_line_metadata.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_native_text.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_samples.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_scripts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_semantics.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_tables.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_text_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_titles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_visual_annotations.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_rtf.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_shared_helpers.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_spreadsheet_projector.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_guess_suffix_ole2.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_css_build.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_security.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_hybrid_script_source_pdfs.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_latex_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_markdown_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_block_models.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_export.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_validator.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_model_json.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_demo_manifest.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_manifest.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_pipeline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_scripts.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_demo_exports.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_demo_pages.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_parser_regressions.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_classify.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_demo_links.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_document.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_render_diagnostics.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_text_styles.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_page_blocks.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_pages.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_paragraphs.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_visual.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_api.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_html_table.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_image_renderer.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_list_index_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_structured_content_render.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_table_merge.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_table_merge_cell_merge.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_text_block_anchor.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_text_utils.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/__init__.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/build_html_css.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/calibrate_pdf_geometry.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/capture_baseline.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/capture_platform_layout.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/compare_font_platforms.py +0 -0
- {docvortex-0.2.1 → docvortex-0.2.2}/tools/font_geometry.py +0 -0
|
@@ -42,7 +42,7 @@ Saved results and Doclib caches are not rewritten automatically. After upgrading
|
|
|
42
42
|
restart running services and use the existing `mineru parse ... --force` option
|
|
43
43
|
to regenerate results with the current font and text policies.
|
|
44
44
|
|
|
45
|
-
MinerU declares `docvortex>=0.2.1
|
|
45
|
+
MinerU declares `docvortex>=0.2.2,<1.0.0` to use the shared PDF layout renderer. DocVortex declares
|
|
46
46
|
`pypdfium2>=5.10.1,<6`; this constraint also applies when MinerU installs its own
|
|
47
47
|
direct PDFium dependency. Other shared dependency floors remain aligned, including
|
|
48
48
|
`pydantic>=2.12.5,<3` and `numpy>=1.21.6`.
|
|
@@ -5,6 +5,56 @@ DocGale. The GitHub repository is `myhloli/DocVortex`; the Python distribution,
|
|
|
5
5
|
import and command are all `docvortex`. The existing repository history and release
|
|
6
6
|
draft are retained. Version 0.1.0 remains a draft, not a PyPI publication.
|
|
7
7
|
|
|
8
|
+
## Shared PDF layout visualization in 0.2.2
|
|
9
|
+
|
|
10
|
+
`docvortex.visualization.render_layout_pdf(pdf_bytes, pages, *, page_indices=None)`
|
|
11
|
+
returns PDF bytes with colored layout outlines and `block_type: index` labels. Pass current `MiddleJson.pages`;
|
|
12
|
+
the renderer uses normalized `blocks/content` geometry without changing the input
|
|
13
|
+
document. It preserves page dimensions, CropBox offsets and right-angle rotations.
|
|
14
|
+
This overlays the source PDF; it does not reflow semantic content like `render_pdf`.
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
import docvortex
|
|
19
|
+
from docvortex.visualization import render_layout_pdf
|
|
20
|
+
|
|
21
|
+
source = Path("report.pdf")
|
|
22
|
+
result = docvortex.parse(source)
|
|
23
|
+
Path("layout.pdf").write_bytes(render_layout_pdf(source.read_bytes(), result.middle_json.pages))
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For a cropped or reordered PDF, `page_indices[i]` must name the original zero-based
|
|
27
|
+
page index of its i-th page. Omit the mapping only for an original full PDF. A
|
|
28
|
+
mapping with the wrong length raises `ValueError`; missing result pages remain
|
|
29
|
+
unmarked rather than borrowing another page's boxes. For example, a PDF containing
|
|
30
|
+
only original pages 2 and 5 requires `page_indices=(1, 4)`.
|
|
31
|
+
|
|
32
|
+
Page footnotes use teal (`#008080`); headers, footers, page numbers and aside text
|
|
33
|
+
use gray (`#9E9E9E`). Other block colors retain the current palette. All layout
|
|
34
|
+
rectangles use 1 pt outlines without interior fill. Each outlined block has a
|
|
35
|
+
matching 7 pt Helvetica label on a small white background above its top-left corner.
|
|
36
|
+
Labels show the block's own zero-based `index`, including gaps and duplicate
|
|
37
|
+
parent/child values; a missing child index is shown as `-`. Visual parent containers
|
|
38
|
+
are not outlined or labeled separately. Code and algorithm parents still share
|
|
39
|
+
`type="code"`, distinguished by `sub_type`; algorithm children retain
|
|
40
|
+
`algorithm_body` and the same purple as `code_body`.
|
|
41
|
+
|
|
42
|
+
Labels stay upright after page rotation, shift left at the right edge and move
|
|
43
|
+
inside the box when there is no room above it. Overlapping labels move up by rows
|
|
44
|
+
first, then down from the box top; if no non-overlapping row remains on the page,
|
|
45
|
+
the renderer chooses the row with the least label overlap. Labels add extractable
|
|
46
|
+
text to the output PDF; the input PDF and Middle JSON are not modified.
|
|
47
|
+
Label avoidance checks other labels, not source text. Where adjacent blocks have
|
|
48
|
+
little vertical spacing, a label's white background can cover nearby source text
|
|
49
|
+
visually; that text remains in the PDF content stream.
|
|
50
|
+
|
|
51
|
+
MinerU's Gradio preview delegates to this renderer and retains its artifact names.
|
|
52
|
+
`PDFDocument.draw_layout_bbox(pages, output_path,
|
|
53
|
+
page_indices=None)` remains a file-writing wrapper (the mapping is keyword-only),
|
|
54
|
+
now using current `PageInfo` rather than removed legacy layout fields. Legacy
|
|
55
|
+
filled boxes and separately renumbered red reading-order markers are not retained. Private helpers from
|
|
56
|
+
`docvortex.document.pdf.diagnostics` have been removed.
|
|
57
|
+
|
|
8
58
|
## On-demand PDF crops in 0.2.1
|
|
9
59
|
|
|
10
60
|
`docvortex.document.pdf.visuals.attach_visual_block_images_from_pdf(document,
|
|
@@ -59,7 +109,7 @@ Markdown embedded HTML share the new namespace. PDF, DOCX and LaTeX generated
|
|
|
59
109
|
titles, metadata, styles and macros use DocVortex. Supported explicit user titles
|
|
60
110
|
and authors retain their existing precedence.
|
|
61
111
|
|
|
62
|
-
MinerU requires `docvortex>=0.2.1
|
|
112
|
+
MinerU requires `docvortex>=0.2.2,<1.0.0`. Both projects share the new envelope,
|
|
63
113
|
with `metadata.file_suffix`, `metadata.producer`, and optional `extensions.mineru`
|
|
64
114
|
containing actual tier and resolved parse mode. Old JSON adapters and historical
|
|
65
115
|
page conversion are removed. Python top-level metadata attributes have no aliases.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
-
import os
|
|
5
4
|
import time
|
|
5
|
+
from collections.abc import Sequence
|
|
6
6
|
from contextlib import contextmanager
|
|
7
7
|
from io import BytesIO
|
|
8
|
+
from pathlib import Path
|
|
8
9
|
from typing import Iterator, Literal, cast
|
|
9
10
|
|
|
10
11
|
import pypdfium2 as pdfium
|
|
@@ -544,12 +545,14 @@ class PDFDocument:
|
|
|
544
545
|
# Visualization
|
|
545
546
|
# ------------------------------------------------------------------ #
|
|
546
547
|
|
|
547
|
-
def draw_layout_bbox(self, pages: list[PageInfo], output_path: str) -> None:
|
|
548
|
-
|
|
548
|
+
def draw_layout_bbox(self, pages: list[PageInfo], output_path: str, *, page_indices: Sequence[int] | None = None) -> None:
|
|
549
|
+
"""写出带类型与原始编号标签的布局预览;抽页后的文档需传入原始页号映射。"""
|
|
550
|
+
from ...visualization import render_layout_pdf
|
|
549
551
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
552
|
+
pdf_bytes = render_layout_pdf(self._pdf_bytes, pages, page_indices=page_indices)
|
|
553
|
+
output = Path(output_path)
|
|
554
|
+
output.parent.mkdir(parents=True, exist_ok=True)
|
|
555
|
+
output.write_bytes(pdf_bytes)
|
|
553
556
|
|
|
554
557
|
# ------------------------------------------------------------------ #
|
|
555
558
|
# Internal
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"""在原始 PDF 上标注严格 Middle JSON 的布局,共享实现不负责文件读写。"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Iterable, Sequence
|
|
6
|
+
from io import BytesIO
|
|
7
|
+
|
|
8
|
+
from pypdf import PageObject, PdfReader, PdfWriter
|
|
9
|
+
from pypdf.generic import RectangleObject
|
|
10
|
+
from reportlab.pdfbase import pdfmetrics
|
|
11
|
+
from reportlab.pdfgen import canvas
|
|
12
|
+
|
|
13
|
+
from .schema import PAGE_AUXILIARY_BLOCK_TYPES, BBox, BlockBase, BlockType, PageInfo
|
|
14
|
+
|
|
15
|
+
_VISUAL_PARENT_TYPES = {BlockType.IMAGE, BlockType.TABLE, BlockType.CHART, BlockType.CODE}
|
|
16
|
+
|
|
17
|
+
# 当前布局使用实色边框和同色类型标签;页面脚注独立着色,页面辅助块统一为灰色。
|
|
18
|
+
_BLOCK_COLORS: dict[str, tuple[float, float, float]] = {
|
|
19
|
+
"text": (0.60, 0.05, 0.30),
|
|
20
|
+
"ref_text": (0.45, 0.20, 0.65),
|
|
21
|
+
"doc_title": (0.20, 0.20, 0.80),
|
|
22
|
+
"paragraph_title": (0.20, 0.40, 0.90),
|
|
23
|
+
"equation": (0.00, 0.60, 0.10),
|
|
24
|
+
"list": (0.10, 0.60, 0.35),
|
|
25
|
+
"index": (0.10, 0.60, 0.35),
|
|
26
|
+
"image_body": (0.30, 0.85, 0.05),
|
|
27
|
+
"image_caption": (0.10, 0.55, 0.90),
|
|
28
|
+
"image_footnote": (0.95, 0.45, 0.10),
|
|
29
|
+
"table_body": (0.80, 0.80, 0.00),
|
|
30
|
+
"table_caption": (1.00, 0.85, 0.10),
|
|
31
|
+
"table_footnote": (0.55, 0.90, 0.25),
|
|
32
|
+
"chart_body": (0.30, 0.85, 0.05),
|
|
33
|
+
"chart_caption": (0.10, 0.55, 0.90),
|
|
34
|
+
"chart_footnote": (0.95, 0.45, 0.10),
|
|
35
|
+
"code_body": (0.40, 0.00, 0.80),
|
|
36
|
+
"algorithm_body": (0.40, 0.00, 0.80),
|
|
37
|
+
"code_caption": (0.70, 0.35, 0.95),
|
|
38
|
+
"code_footnote": (0.85, 0.70, 0.95),
|
|
39
|
+
"page_footnote": (0, 128 / 255, 128 / 255),
|
|
40
|
+
**{str(kind): (158 / 255, 158 / 255, 158 / 255) for kind in PAGE_AUXILIARY_BLOCK_TYPES},
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
_LABEL_FONT = "Helvetica"
|
|
44
|
+
_LABEL_FONT_SIZE = 7
|
|
45
|
+
_LABEL_PADDING = 1.0
|
|
46
|
+
_LABEL_GAP = 1.0
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def render_layout_pdf(
|
|
50
|
+
pdf_bytes: bytes,
|
|
51
|
+
pages: Sequence[PageInfo],
|
|
52
|
+
*,
|
|
53
|
+
page_indices: Sequence[int] | None = None,
|
|
54
|
+
) -> bytes:
|
|
55
|
+
"""把当前 PageInfo 布局画到 PDF,返回新字节且不修改解析结果。
|
|
56
|
+
|
|
57
|
+
bbox 使用页面显示方向下、以 CropBox 左上角为原点的归一化坐标。
|
|
58
|
+
page_indices 的第 i 项是输入 PDF 第 i 页对应的原始 page_idx;
|
|
59
|
+
完整原文可省略映射,抽页或重排后的 PDF 必须显式提供映射。
|
|
60
|
+
没有对应解析结果的页面原样保留,映射长度错误时抛出 ValueError。
|
|
61
|
+
每个边框标注自身类型和原始 index,缺失 index 显示 -;标签文字可被 PDF 提取。
|
|
62
|
+
"""
|
|
63
|
+
if any(not isinstance(page, PageInfo) for page in pages):
|
|
64
|
+
raise TypeError("pages must contain PageInfo instances")
|
|
65
|
+
pages_by_index = {page.page_idx: page for page in pages}
|
|
66
|
+
if len(pages_by_index) != len(pages):
|
|
67
|
+
raise ValueError("pages must have unique page_idx values")
|
|
68
|
+
|
|
69
|
+
reader = PdfReader(BytesIO(pdf_bytes))
|
|
70
|
+
indices = tuple(range(len(reader.pages))) if page_indices is None else tuple(page_indices)
|
|
71
|
+
if len(indices) != len(reader.pages):
|
|
72
|
+
raise ValueError("page_indices length must match the PDF page count")
|
|
73
|
+
if any(isinstance(index, bool) or not isinstance(index, int) or index < 0 for index in indices):
|
|
74
|
+
raise ValueError("page_indices must contain non-negative integers")
|
|
75
|
+
|
|
76
|
+
writer = PdfWriter()
|
|
77
|
+
for source_page, original_index in zip(reader.pages, indices):
|
|
78
|
+
# 直接复制原页可保留 MediaBox、CropBox、Rotate 和原有批注。
|
|
79
|
+
page_copy = writer.add_page(source_page)
|
|
80
|
+
middle_page = pages_by_index.get(original_index)
|
|
81
|
+
if middle_page is not None:
|
|
82
|
+
overlay = _build_page_overlay(source_page, middle_page)
|
|
83
|
+
if overlay is not None:
|
|
84
|
+
page_copy.merge_page(overlay)
|
|
85
|
+
|
|
86
|
+
output = BytesIO()
|
|
87
|
+
writer.write(output)
|
|
88
|
+
return output.getvalue()
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _build_page_overlay(page: PageObject, middle_page: PageInfo) -> PageObject | None:
|
|
92
|
+
"""先绘制边框,再按显示方向放置标签,保留原页方向和页面框。"""
|
|
93
|
+
if page.cropbox.width <= 0 or page.cropbox.height <= 0:
|
|
94
|
+
return None
|
|
95
|
+
boxes = list(_iter_overlay_boxes(middle_page.blocks))
|
|
96
|
+
if not boxes:
|
|
97
|
+
return None
|
|
98
|
+
|
|
99
|
+
packet = BytesIO()
|
|
100
|
+
painter = canvas.Canvas(packet, pagesize=(float(page.mediabox.width), float(page.mediabox.height)))
|
|
101
|
+
painter.setLineWidth(1.0)
|
|
102
|
+
for block_type, bbox, _ in boxes:
|
|
103
|
+
x0, y0, x1, y1 = _normalized_bbox_to_pdf(bbox, page)
|
|
104
|
+
painter.setStrokeColorRGB(*_BLOCK_COLORS.get(block_type, (0.90, 0.10, 0.10)))
|
|
105
|
+
painter.rect(x0, y0, max(0.5, x1 - x0), max(0.5, y1 - y0), stroke=1, fill=0)
|
|
106
|
+
_draw_overlay_labels(painter, page, boxes)
|
|
107
|
+
painter.save()
|
|
108
|
+
packet.seek(0)
|
|
109
|
+
overlay = PdfReader(packet).pages[0]
|
|
110
|
+
# merge_page 按 overlay 的 CropBox 裁剪,必须同步原页偏移,支持负坐标。
|
|
111
|
+
overlay.mediabox = RectangleObject(page.mediabox)
|
|
112
|
+
overlay.cropbox = RectangleObject(page.cropbox)
|
|
113
|
+
return overlay
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def _iter_overlay_boxes(blocks: Iterable[BlockBase]) -> Iterable[tuple[str, BBox, int | None]]:
|
|
117
|
+
"""遍历当前 block 树并保留自身 index;视觉父块只画子块,列表保留层级框。"""
|
|
118
|
+
for block in blocks:
|
|
119
|
+
if block.bbox is not None and block.type not in _VISUAL_PARENT_TYPES:
|
|
120
|
+
yield str(block.type), block.bbox, block.index
|
|
121
|
+
content = getattr(block, "content", None)
|
|
122
|
+
children = [child for child in content if isinstance(child, BlockBase)] if isinstance(content, list) else []
|
|
123
|
+
if block.type in _VISUAL_PARENT_TYPES:
|
|
124
|
+
for child in children:
|
|
125
|
+
if child.bbox is not None:
|
|
126
|
+
yield str(child.type), child.bbox, child.index
|
|
127
|
+
elif children:
|
|
128
|
+
yield from _iter_overlay_boxes(children)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def _draw_overlay_labels(painter: canvas.Canvas, page: PageObject, boxes: Sequence[tuple[str, BBox, int | None]]) -> None:
|
|
132
|
+
"""在显示方向的左下原点坐标系中绘制正向标签,并用白底保护文字可读性。"""
|
|
133
|
+
left, bottom = float(page.cropbox.left), float(page.cropbox.bottom)
|
|
134
|
+
width, height = float(page.cropbox.width), float(page.cropbox.height)
|
|
135
|
+
rotation = page.rotation % 360
|
|
136
|
+
transforms = {
|
|
137
|
+
0: (1, 0, 0, 1, left, bottom),
|
|
138
|
+
90: (0, 1, -1, 0, left + width, bottom),
|
|
139
|
+
180: (-1, 0, 0, -1, left + width, bottom + height),
|
|
140
|
+
270: (0, -1, 1, 0, left, bottom + height),
|
|
141
|
+
}
|
|
142
|
+
painter.saveState()
|
|
143
|
+
painter.transform(*transforms[rotation])
|
|
144
|
+
if rotation in (90, 270):
|
|
145
|
+
width, height = height, width
|
|
146
|
+
ascent, descent = pdfmetrics.getAscentDescent(_LABEL_FONT, _LABEL_FONT_SIZE)
|
|
147
|
+
label_height = ascent - descent + 2 * _LABEL_PADDING
|
|
148
|
+
occupied: list[BBox] = []
|
|
149
|
+
for block_type, bbox, index in boxes:
|
|
150
|
+
label = f"{block_type}: {index if index is not None else '-'}"
|
|
151
|
+
text_width = pdfmetrics.stringWidth(label, _LABEL_FONT, _LABEL_FONT_SIZE)
|
|
152
|
+
label_width = min(text_width + 2 * _LABEL_PADDING, width)
|
|
153
|
+
rect = _place_label(bbox[0] * width, (1 - bbox[1]) * height, label_width, label_height, width, height, occupied)
|
|
154
|
+
occupied.append(rect)
|
|
155
|
+
x0, y0, x1, y1 = rect
|
|
156
|
+
painter.setFillColorRGB(1, 1, 1)
|
|
157
|
+
painter.rect(x0, y0, x1 - x0, y1 - y0, stroke=0, fill=1)
|
|
158
|
+
painter.setFillColorRGB(*_BLOCK_COLORS.get(block_type, (0.90, 0.10, 0.10)))
|
|
159
|
+
text = painter.beginText(x0 + _LABEL_PADDING, y0 + _LABEL_PADDING - descent)
|
|
160
|
+
text.setFont(_LABEL_FONT, _LABEL_FONT_SIZE)
|
|
161
|
+
# 极窄页面仅压缩标签的水平宽度,不让右侧文字越过 CropBox。
|
|
162
|
+
text.setHorizScale(100 * min(1, max(0, label_width - 2 * _LABEL_PADDING) / text_width))
|
|
163
|
+
text.textOut(label)
|
|
164
|
+
painter.drawText(text)
|
|
165
|
+
painter.restoreState()
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def _place_label(
|
|
169
|
+
left: float,
|
|
170
|
+
top: float,
|
|
171
|
+
width: float,
|
|
172
|
+
height: float,
|
|
173
|
+
page_width: float,
|
|
174
|
+
page_height: float,
|
|
175
|
+
occupied: Sequence[BBox],
|
|
176
|
+
) -> BBox:
|
|
177
|
+
"""优先在框上方逐行避让,页顶受限时向框内下移;满页时选遮叠面积最小的位置。"""
|
|
178
|
+
left = max(0, min(left, page_width - width))
|
|
179
|
+
step = height + _LABEL_GAP
|
|
180
|
+
candidates: list[BBox] = []
|
|
181
|
+
y = top + _LABEL_GAP
|
|
182
|
+
while y + height <= page_height:
|
|
183
|
+
candidates.append((left, y, left + width, y + height))
|
|
184
|
+
y += step
|
|
185
|
+
y = min(top - _LABEL_GAP - height, page_height - height)
|
|
186
|
+
while y >= 0:
|
|
187
|
+
candidates.append((left, y, left + width, y + height))
|
|
188
|
+
y -= step
|
|
189
|
+
if not candidates:
|
|
190
|
+
candidates.append((left, 0, left + width, min(height, page_height)))
|
|
191
|
+
best = candidates[0]
|
|
192
|
+
best_overlap = float("inf")
|
|
193
|
+
for candidate in candidates:
|
|
194
|
+
x0, y0, x1, y1 = candidate
|
|
195
|
+
overlap = sum(
|
|
196
|
+
max(0, min(x1, other[2]) - max(x0, other[0])) * max(0, min(y1, other[3]) - max(y0, other[1])) for other in occupied
|
|
197
|
+
)
|
|
198
|
+
if overlap == 0:
|
|
199
|
+
return candidate
|
|
200
|
+
if overlap < best_overlap:
|
|
201
|
+
best, best_overlap = candidate, overlap
|
|
202
|
+
return best
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def _normalized_bbox_to_pdf(bbox: BBox, page: PageObject) -> BBox:
|
|
206
|
+
"""反转显示方向的直角旋转,并把 CropBox 内的归一化框还原为 PDF 坐标。"""
|
|
207
|
+
left, bottom = float(page.cropbox.left), float(page.cropbox.bottom)
|
|
208
|
+
width, height = float(page.cropbox.width), float(page.cropbox.height)
|
|
209
|
+
x0, y0, x1, y1 = bbox
|
|
210
|
+
rotation = page.rotation % 360
|
|
211
|
+
if rotation == 90:
|
|
212
|
+
return left + y0 * width, bottom + x0 * height, left + y1 * width, bottom + x1 * height
|
|
213
|
+
if rotation == 180:
|
|
214
|
+
return left + (1 - x1) * width, bottom + y0 * height, left + (1 - x0) * width, bottom + y1 * height
|
|
215
|
+
if rotation == 270:
|
|
216
|
+
return left + (1 - y1) * width, bottom + (1 - x1) * height, left + (1 - y0) * width, bottom + (1 - x0) * height
|
|
217
|
+
if rotation != 0:
|
|
218
|
+
raise ValueError("PDF page rotation must be a multiple of 90 degrees")
|
|
219
|
+
return left + x0 * width, bottom + (1 - y1) * height, left + x1 * width, bottom + (1 - y0) * height
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
__all__ = ["render_layout_pdf"]
|
|
@@ -67,6 +67,7 @@ src/docvortex/options.py
|
|
|
67
67
|
src/docvortex/result.py
|
|
68
68
|
src/docvortex/schema.py
|
|
69
69
|
src/docvortex/version.py
|
|
70
|
+
src/docvortex/visualization.py
|
|
70
71
|
src/docvortex.egg-info/PKG-INFO
|
|
71
72
|
src/docvortex.egg-info/SOURCES.txt
|
|
72
73
|
src/docvortex.egg-info/dependency_links.txt
|
|
@@ -318,7 +319,6 @@ src/docvortex/document/source.py
|
|
|
318
319
|
src/docvortex/document/pdf/__init__.py
|
|
319
320
|
src/docvortex/document/pdf/classify.py
|
|
320
321
|
src/docvortex/document/pdf/constants.py
|
|
321
|
-
src/docvortex/document/pdf/diagnostics.py
|
|
322
322
|
src/docvortex/document/pdf/document.py
|
|
323
323
|
src/docvortex/document/pdf/font_runtime.py
|
|
324
324
|
src/docvortex/document/pdf/geometry.py
|
|
@@ -555,6 +555,7 @@ tests/unittest/test_pdf_document.py
|
|
|
555
555
|
tests/unittest/test_pdf_render.py
|
|
556
556
|
tests/unittest/test_pdf_render_diagnostics.py
|
|
557
557
|
tests/unittest/test_pdf_text_styles.py
|
|
558
|
+
tests/unittest/test_pdf_visualization.py
|
|
558
559
|
tests/unittest/test_postprocess_page_blocks.py
|
|
559
560
|
tests/unittest/test_postprocess_pages.py
|
|
560
561
|
tests/unittest/test_postprocess_paragraphs.py
|