docvortex 0.4.0__tar.gz → 0.4.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.
Files changed (611) hide show
  1. docvortex-0.4.2/PKG-INFO +218 -0
  2. docvortex-0.4.2/README.md +165 -0
  3. {docvortex-0.4.0 → docvortex-0.4.2}/docs/JSON_PROTOCOL.md +42 -0
  4. docvortex-0.4.2/docs/USAGE.md +326 -0
  5. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/pipeline.py +1 -1
  6. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/api.py +21 -2
  7. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/cli.py +9 -2
  8. docvortex-0.4.2/src/docvortex/document/pdf/layout.py +139 -0
  9. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/public_api.py +9 -0
  10. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/__init__.py +2 -0
  11. docvortex-0.4.2/src/docvortex/render/_internal/pdf/diagnostics.py +35 -0
  12. docvortex-0.4.2/src/docvortex/render/_internal/pdf/font_plan.py +152 -0
  13. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/inline.py +19 -10
  14. docvortex-0.4.2/src/docvortex/render/_internal/pdf/original.py +431 -0
  15. docvortex-0.4.2/src/docvortex/render/_internal/pdf/pagination.py +193 -0
  16. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/renderer.py +80 -13
  17. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/styles.py +6 -2
  18. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/table.py +20 -1
  19. docvortex-0.4.2/src/docvortex/render/_internal/pdf/title_layout.py +176 -0
  20. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/api.py +1 -0
  21. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/contracts.py +12 -0
  22. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/pdf.py +3 -1
  23. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/version.py +1 -1
  24. docvortex-0.4.2/src/docvortex.egg-info/PKG-INFO +218 -0
  25. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex.egg-info/SOURCES.txt +13 -0
  26. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_flash_pdf_test_utils.py +23 -0
  27. docvortex-0.4.2/tests/unittest/test_flash_pdf_equation_images.py +47 -0
  28. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_samples.py +3 -2
  29. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_scripts.py +3 -2
  30. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_semantics.py +4 -3
  31. docvortex-0.4.2/tests/unittest/test_pdf_cjk_wrapping.py +113 -0
  32. docvortex-0.4.2/tests/unittest/test_pdf_original_layout.py +496 -0
  33. docvortex-0.4.2/tests/unittest/test_pdf_pagination.py +251 -0
  34. docvortex-0.4.2/tests/unittest/test_pdf_title_font_plan.py +147 -0
  35. docvortex-0.4.2/tests/unittest/test_pdf_title_space.py +325 -0
  36. docvortex-0.4.0/PKG-INFO +0 -221
  37. docvortex-0.4.0/README.md +0 -168
  38. docvortex-0.4.0/src/docvortex.egg-info/PKG-INFO +0 -221
  39. {docvortex-0.4.0 → docvortex-0.4.2}/LICENSE.md +0 -0
  40. {docvortex-0.4.0 → docvortex-0.4.2}/MANIFEST.in +0 -0
  41. {docvortex-0.4.0 → docvortex-0.4.2}/demo/README.md +0 -0
  42. {docvortex-0.4.0 → docvortex-0.4.2}/demo/demo.py +0 -0
  43. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/README.md +0 -0
  44. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/docx_01.doc +0 -0
  45. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/docx_01.docx +0 -0
  46. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/pptx_01.ppt +0 -0
  47. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/pptx_01.pptx +0 -0
  48. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/rtf_01.rtf +0 -0
  49. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/xlsx_01.xls +0 -0
  50. {docvortex-0.4.0 → docvortex-0.4.2}/demo/office_docs/xlsx_01.xlsx +0 -0
  51. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/2407.00079v4_origi-10.pdf +0 -0
  52. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/IEBM_A_2667169_O-5.pdf +0 -0
  53. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/caibao1.pdf +0 -0
  54. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/demo1.pdf +0 -0
  55. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/demo2.pdf +0 -0
  56. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/demo3.pdf +0 -0
  57. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/demo4.pdf +0 -0
  58. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/demo6.pdf +0 -0
  59. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/mixed_elements_pages_03_06.pdf +0 -0
  60. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/mixed_elements_pages_07_10.pdf +0 -0
  61. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/mixed_elements_pages_11_15.pdf +0 -0
  62. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/mixed_elements_pages_39_40.pdf +0 -0
  63. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs/small_ocr.pdf +0 -0
  64. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/207.pdf" +0 -0
  65. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2072.pdf" +0 -0
  66. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2073.pdf" +0 -0
  67. {docvortex-0.4.0 → docvortex-0.4.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2074.pdf" +0 -0
  68. {docvortex-0.4.0 → docvortex-0.4.2}/docs/HTML_PROTOCOL.md +0 -0
  69. {docvortex-0.4.0 → docvortex-0.4.2}/docs/METADATA.md +0 -0
  70. {docvortex-0.4.0 → docvortex-0.4.2}/docs/PDF_FONTS.md +0 -0
  71. {docvortex-0.4.0 → docvortex-0.4.2}/docs/RENDER_OWNERSHIP.md +0 -0
  72. {docvortex-0.4.0 → docvortex-0.4.2}/docs/sdk-0.4.md +0 -0
  73. {docvortex-0.4.0 → docvortex-0.4.2}/pyproject.toml +0 -0
  74. {docvortex-0.4.0 → docvortex-0.4.2}/schemas/middle-2.0.json +0 -0
  75. {docvortex-0.4.0 → docvortex-0.4.2}/schemas/model-2.0.json +0 -0
  76. {docvortex-0.4.0 → docvortex-0.4.2}/setup.cfg +0 -0
  77. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/__init__.py +0 -0
  78. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/__init__.py +0 -0
  79. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/__init__.py +0 -0
  80. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/__init__.py +0 -0
  81. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/hyperlink.py +0 -0
  82. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/image.py +0 -0
  83. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/markup/__init__.py +0 -0
  84. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/markup/anchors.py +0 -0
  85. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/markup/formula.py +0 -0
  86. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/markup/projector.py +0 -0
  87. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/markup/styles.py +0 -0
  88. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/mathml.py +0 -0
  89. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/names.py +0 -0
  90. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/_shared/xycut.py +0 -0
  91. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/contracts.py +0 -0
  92. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/csv.py +0 -0
  93. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/__init__.py +0 -0
  94. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/constants.py +0 -0
  95. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/converter.py +0 -0
  96. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/errors.py +0 -0
  97. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/metadata.py +0 -0
  98. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/package.py +0 -0
  99. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/properties.py +0 -0
  100. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/epub/xhtml.py +0 -0
  101. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/__init__.py +0 -0
  102. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/anchors.py +0 -0
  103. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/constants.py +0 -0
  104. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/converter.py +0 -0
  105. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/document.py +0 -0
  106. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/errors.py +0 -0
  107. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/metadata.py +0 -0
  108. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/resources.py +0 -0
  109. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/html/selector.py +0 -0
  110. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/models.py +0 -0
  111. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/__init__.py +0 -0
  112. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/assembly.py +0 -0
  113. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/constants.py +0 -0
  114. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/converter.py +0 -0
  115. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/errors.py +0 -0
  116. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/geometry.py +0 -0
  117. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/images.py +0 -0
  118. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/metadata.py +0 -0
  119. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/models.py +0 -0
  120. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/package.py +0 -0
  121. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/path.py +0 -0
  122. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/reading_order.py +0 -0
  123. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/resources.py +0 -0
  124. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/scene.py +0 -0
  125. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/table.py +0 -0
  126. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/text.py +0 -0
  127. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/ofd/vector.py +0 -0
  128. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/__init__.py +0 -0
  129. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/__init__.py +0 -0
  130. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/bookmarks.py +0 -0
  131. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/doc_converter.py +0 -0
  132. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/fib.py +0 -0
  133. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/fields.py +0 -0
  134. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/formatting.py +0 -0
  135. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/images.py +0 -0
  136. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/lists.py +0 -0
  137. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/models.py +0 -0
  138. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/parser.py +0 -0
  139. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/pieces.py +0 -0
  140. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/records.py +0 -0
  141. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/sprm.py +0 -0
  142. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/doc/styles.py +0 -0
  143. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/__init__.py +0 -0
  144. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/context.py +0 -0
  145. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/docx_converter.py +0 -0
  146. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/equationxml.py +0 -0
  147. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/fields.py +0 -0
  148. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/formatting_types.py +0 -0
  149. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/main.py +0 -0
  150. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/numbering.py +0 -0
  151. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/office_xml.py +0 -0
  152. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/package_normalizer.py +0 -0
  153. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/resources.py +0 -0
  154. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/styles.py +0 -0
  155. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/docx/tables.py +0 -0
  156. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/__init__.py +0 -0
  157. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/image.py +0 -0
  158. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/latex_dict.py +0 -0
  159. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/mtef.py +0 -0
  160. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/mtef_v5.py +0 -0
  161. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/omml.py +0 -0
  162. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/equation/ooxml.py +0 -0
  163. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/errors.py +0 -0
  164. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/image.py +0 -0
  165. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/legacy/__init__.py +0 -0
  166. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/legacy/binary.py +0 -0
  167. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/legacy/officeart.py +0 -0
  168. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/legacy/ole.py +0 -0
  169. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/limits.py +0 -0
  170. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/metadata.py +0 -0
  171. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/__init__.py +0 -0
  172. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/chart.py +0 -0
  173. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/constants.py +0 -0
  174. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/converters.py +0 -0
  175. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/errors.py +0 -0
  176. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/metadata.py +0 -0
  177. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/models.py +0 -0
  178. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/package.py +0 -0
  179. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/styles.py +0 -0
  180. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/table.py +0 -0
  181. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/odf/text.py +0 -0
  182. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ooxml_chart.py +0 -0
  183. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/opc.py +0 -0
  184. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/__init__.py +0 -0
  185. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/models.py +0 -0
  186. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/parser.py +0 -0
  187. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/ppt_converter.py +0 -0
  188. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/records.py +0 -0
  189. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/ppt/style_text.py +0 -0
  190. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/__init__.py +0 -0
  191. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/context.py +0 -0
  192. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/lists.py +0 -0
  193. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/main.py +0 -0
  194. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/package_normalizer.py +0 -0
  195. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/pptx_converter.py +0 -0
  196. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/resources.py +0 -0
  197. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/shapes.py +0 -0
  198. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/text_styles.py +0 -0
  199. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/pptx/titles.py +0 -0
  200. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rich_text.py +0 -0
  201. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/__init__.py +0 -0
  202. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/converter.py +0 -0
  203. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/lexer.py +0 -0
  204. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/math.py +0 -0
  205. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/metadata.py +0 -0
  206. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/models.py +0 -0
  207. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/rtf/parser.py +0 -0
  208. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/spreadsheet/__init__.py +0 -0
  209. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/spreadsheet/html.py +0 -0
  210. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/spreadsheet/models.py +0 -0
  211. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/spreadsheet/projector.py +0 -0
  212. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/streams.py +0 -0
  213. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/__init__.py +0 -0
  214. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/chart.py +0 -0
  215. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/embedded_chart.py +0 -0
  216. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/models.py +0 -0
  217. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/number_format.py +0 -0
  218. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/parser.py +0 -0
  219. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/records.py +0 -0
  220. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/strings.py +0 -0
  221. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xls/xls_converter.py +0 -0
  222. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xlsx/__init__.py +0 -0
  223. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xlsx/main.py +0 -0
  224. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xlsx/ooxml_ole.py +0 -0
  225. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xlsx/package_normalizer.py +0 -0
  226. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/office/xlsx/xlsx_converter.py +0 -0
  227. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/__init__.py +0 -0
  228. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_script_geometry.py +0 -0
  229. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/__init__.py +0 -0
  230. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/candidate.py +0 -0
  231. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/contracts.py +0 -0
  232. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/engine.py +0 -0
  233. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/geometry.py +0 -0
  234. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_common.py +0 -0
  235. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_hybrid.py +0 -0
  236. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_multiline.py +0 -0
  237. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/text.py +0 -0
  238. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/text_grid.py +0 -0
  239. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/_table_recovery/vector.py +0 -0
  240. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/auxiliary_text.py +0 -0
  241. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/char_geometry.py +0 -0
  242. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/code_blocks.py +0 -0
  243. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/formulas.py +0 -0
  244. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/geometry.py +0 -0
  245. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/graphics.py +0 -0
  246. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/index_blocks.py +0 -0
  247. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/__init__.py +0 -0
  248. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/common.py +0 -0
  249. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/detection.py +0 -0
  250. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/matching.py +0 -0
  251. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/materialize.py +0 -0
  252. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/scripts.py +0 -0
  253. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/inline/types.py +0 -0
  254. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/line_layout.py +0 -0
  255. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/line_merging.py +0 -0
  256. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/models.py +0 -0
  257. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/native_text.py +0 -0
  258. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/spatial_text.py +0 -0
  259. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_annotations.py +0 -0
  260. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_constants.py +0 -0
  261. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_detection.py +0 -0
  262. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_filled_grid.py +0 -0
  263. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_geometry.py +0 -0
  264. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_materialization.py +0 -0
  265. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_rows.py +0 -0
  266. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_rules.py +0 -0
  267. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/table_text_styles.py +0 -0
  268. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/tables.py +0 -0
  269. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/__init__.py +0 -0
  270. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/annotations.py +0 -0
  271. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/assembly.py +0 -0
  272. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/common.py +0 -0
  273. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/footnotes.py +0 -0
  274. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/merging.py +0 -0
  275. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_assembly/rows.py +0 -0
  276. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/text_blocks.py +0 -0
  277. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/__init__.py +0 -0
  278. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/body_profile.py +0 -0
  279. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/common.py +0 -0
  280. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/document_profile.py +0 -0
  281. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/lane_titles.py +0 -0
  282. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/page_titles.py +0 -0
  283. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/prototype.py +0 -0
  284. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/title_analysis/structural.py +0 -0
  285. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/titles.py +0 -0
  286. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/typography.py +0 -0
  287. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/native/pdf/visual_annotations.py +0 -0
  288. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/analyzers/pdf.py +0 -0
  289. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/assets/__init__.py +0 -0
  290. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/assets/images.py +0 -0
  291. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/assets/store.py +0 -0
  292. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/__init__.py +0 -0
  293. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/html/__init__.py +0 -0
  294. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/html/contracts.py +0 -0
  295. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/html/materializer.py +0 -0
  296. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/html/parser.py +0 -0
  297. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/html/resources.py +0 -0
  298. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/codecs/json.py +0 -0
  299. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/__init__.py +0 -0
  300. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/inline.py +0 -0
  301. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/links.py +0 -0
  302. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/markup/__init__.py +0 -0
  303. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/markup/anchors.py +0 -0
  304. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/markup/formula.py +0 -0
  305. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/markup/projector.py +0 -0
  306. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/markup/styles.py +0 -0
  307. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/mathml.py +0 -0
  308. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/normalization.py +0 -0
  309. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/spans.py +0 -0
  310. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/__init__.py +0 -0
  311. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/blocks.py +0 -0
  312. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/content.py +0 -0
  313. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/document.py +0 -0
  314. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/html.py +0 -0
  315. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/models.py +0 -0
  316. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/rules.py +0 -0
  317. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/table/structure.py +0 -0
  318. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/text.py +0 -0
  319. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/content/tree.py +0 -0
  320. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/__init__.py +0 -0
  321. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/contracts.py +0 -0
  322. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/detection.py +0 -0
  323. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/filetypes.py +0 -0
  324. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/page_range.py +0 -0
  325. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/__init__.py +0 -0
  326. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/_document.py +0 -0
  327. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/classify.py +0 -0
  328. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/constants.py +0 -0
  329. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/font_runtime.py +0 -0
  330. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/images.py +0 -0
  331. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/metadata.py +0 -0
  332. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_annotations.py +0 -0
  333. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_contracts.py +0 -0
  334. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_coordinates.py +0 -0
  335. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_lifecycle.py +0 -0
  336. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_objects.py +0 -0
  337. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/native_text_geometry.py +0 -0
  338. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/pdfium.py +0 -0
  339. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/raster.py +0 -0
  340. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/text/__init__.py +0 -0
  341. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/text/_contracts.py +0 -0
  342. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/text/extract.py +0 -0
  343. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/text/geometry.py +0 -0
  344. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/text/groups.py +0 -0
  345. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/pdf/visuals.py +0 -0
  346. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/properties.py +0 -0
  347. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/document/source.py +0 -0
  348. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/errors.py +0 -0
  349. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/export/__init__.py +0 -0
  350. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/export/bundle.py +0 -0
  351. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/export/files.py +0 -0
  352. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/export/middle.py +0 -0
  353. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/__init__.py +0 -0
  354. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_coordinates.py +0 -0
  355. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_geometry.py +0 -0
  356. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_hyperlink.py +0 -0
  357. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_image.py +0 -0
  358. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_image_operations.py +0 -0
  359. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_image_payload.py +0 -0
  360. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/_text.py +0 -0
  361. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/image_encoding.py +0 -0
  362. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/language.py +0 -0
  363. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/type_identity.py +0 -0
  364. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/foundation/xml_names.py +0 -0
  365. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/geometry.py +0 -0
  366. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/metadata.py +0 -0
  367. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/options.py +0 -0
  368. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/__init__.py +0 -0
  369. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/content.py +0 -0
  370. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/document.py +0 -0
  371. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/lists.py +0 -0
  372. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/page_blocks.py +0 -0
  373. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/pages.py +0 -0
  374. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/paragraphs.py +0 -0
  375. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/postprocess/visual.py +0 -0
  376. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/__init__.py +0 -0
  377. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/__init__.py +0 -0
  378. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/context.py +0 -0
  379. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/html_table.py +0 -0
  380. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/index.py +0 -0
  381. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/list_items.py +0 -0
  382. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/common/planner.py +0 -0
  383. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/__init__.py +0 -0
  384. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/assets.py +0 -0
  385. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/inline.py +0 -0
  386. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/math.py +0 -0
  387. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/renderer.py +0 -0
  388. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/styles.py +0 -0
  389. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/docx/table.py +0 -0
  390. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/epub/__init__.py +0 -0
  391. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/epub/assets.py +0 -0
  392. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/epub/package.py +0 -0
  393. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/epub/renderer.py +0 -0
  394. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/html/__init__.py +0 -0
  395. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/html/inline.py +0 -0
  396. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/html/renderer.py +0 -0
  397. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/html/sanitizer.py +0 -0
  398. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/html/table.py +0 -0
  399. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/latex/__init__.py +0 -0
  400. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/latex/assets.py +0 -0
  401. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/latex/inline.py +0 -0
  402. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/latex/renderer.py +0 -0
  403. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/latex/table.py +0 -0
  404. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/__init__.py +0 -0
  405. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/assets.py +0 -0
  406. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/blocks.py +0 -0
  407. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/escaping.py +0 -0
  408. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/inline.py +0 -0
  409. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/renderer.py +0 -0
  410. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/markdown/table.py +0 -0
  411. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/__init__.py +0 -0
  412. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/assets.py +0 -0
  413. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/pdf/formula.py +0 -0
  414. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/structured_content/__init__.py +0 -0
  415. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/_internal/structured_content/renderer.py +0 -0
  416. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/docx.py +0 -0
  417. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/epub.py +0 -0
  418. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/fragments.py +0 -0
  419. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/html.py +0 -0
  420. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/latex.py +0 -0
  421. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/markdown.py +0 -0
  422. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/render/structured_content.py +0 -0
  423. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/epub/docvortex.css +0 -0
  424. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/fasttext-langdetect/lid.176.ftz +0 -0
  425. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/fonts/DroidSansFallbackFull.ttf +0 -0
  426. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/fonts/NOTICE +0 -0
  427. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/fonts/manifest.json +0 -0
  428. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/html/docvortex.css +0 -0
  429. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/resources/html/docvortex.min.css +0 -0
  430. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/result.py +0 -0
  431. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/schema.py +0 -0
  432. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex/visualization.py +0 -0
  433. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex.egg-info/dependency_links.txt +0 -0
  434. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex.egg-info/entry_points.txt +0 -0
  435. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex.egg-info/requires.txt +0 -0
  436. {docvortex-0.4.0 → docvortex-0.4.2}/src/docvortex.egg-info/top_level.txt +0 -0
  437. {docvortex-0.4.0 → docvortex-0.4.2}/tests/benchmarks/flash_pdf.py +0 -0
  438. {docvortex-0.4.0 → docvortex-0.4.2}/tests/benchmarks/pipeline.py +0 -0
  439. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/evaluate_native_pdf_table_manifest.py +0 -0
  440. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/flash_layout_block_expectations.json +0 -0
  441. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/flash_layout_geometry_manifest.json +0 -0
  442. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/flash_layout_semantic_expectations.json +0 -0
  443. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/generate_synthetic_pdf_fixtures.py +0 -0
  444. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/native_pdf_table_cross_page_manifest.json +0 -0
  445. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/native_pdf_table_demo_manifest.json +0 -0
  446. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/native_pdf_table_script_truth.json +0 -0
  447. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/pdf_mixed_font_script_line.json +0 -0
  448. {docvortex-0.4.0 → docvortex-0.4.2}/tests/fixtures/rtf/semantic.rtf +0 -0
  449. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_architecture.py +0 -0
  450. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_benchmark_entrypoint.py +0 -0
  451. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_brand_protocol.py +0 -0
  452. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_complete_pipeline.py +0 -0
  453. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_converter_lifecycle.py +0 -0
  454. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_document_envelope.py +0 -0
  455. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_document_metadata.py +0 -0
  456. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_format_matrix.py +0 -0
  457. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_geometry_api.py +0 -0
  458. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_html_namespace.py +0 -0
  459. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_mixed_font_script_reference.py +0 -0
  460. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_analysis_api.py +0 -0
  461. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_font_geometry.py +0 -0
  462. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_font_runtime.py +0 -0
  463. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_model_text_normalization.py +0 -0
  464. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_output_text.py +0 -0
  465. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_render_pool.py +0 -0
  466. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_source_row_merging.py +0 -0
  467. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_pdf_symbol_normalization.py +0 -0
  468. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_public_image_api.py +0 -0
  469. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_public_pipeline.py +0 -0
  470. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_refactor_raster.py +0 -0
  471. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_refactor_rendering.py +0 -0
  472. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_refactor_resources.py +0 -0
  473. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_render_ownership.py +0 -0
  474. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_renderer_branding.py +0 -0
  475. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_shared_boundaries.py +0 -0
  476. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_system_font_pdf_pipeline.py +0 -0
  477. {docvortex-0.4.0 → docvortex-0.4.2}/tests/test_validated_geometry.py +0 -0
  478. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_docx_equationxml_test_utils.py +0 -0
  479. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_epub_test_utils.py +0 -0
  480. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_image_mtef_test_utils.py +0 -0
  481. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_legacy_doc_test_utils.py +0 -0
  482. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_legacy_ppt_test_utils.py +0 -0
  483. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_legacy_xls_test_utils.py +0 -0
  484. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_metafile_test_utils.py +0 -0
  485. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_mtef_test_utils.py +0 -0
  486. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_mtef_v5_test_utils.py +0 -0
  487. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_native_test_utils.py +0 -0
  488. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_odf_test_utils.py +0 -0
  489. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_ofd_test_utils.py +0 -0
  490. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_office_image_mtef_test_utils.py +0 -0
  491. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_ooxml_mtef_test_utils.py +0 -0
  492. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/_span_test_utils.py +0 -0
  493. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/flash_layout/mixed_text_layout_sample.pdf.xor +0 -0
  494. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/flash_table_annotations_synthetic.pdf +0 -0
  495. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/metabolic_pathway_page_3.pdf +0 -0
  496. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_cjk_layout_synthetic.pdf +0 -0
  497. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_fundraising_projects_table.pdf +0 -0
  498. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_management_roles_table.pdf +0 -0
  499. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_research_projects_table.pdf +0 -0
  500. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/conference_schedule_tables.pdf +0 -0
  501. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/engineering_process_restrictions_table.pdf +0 -0
  502. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/fund_asset_and_transaction_tables.pdf +0 -0
  503. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/fund_manager_profile_table.pdf +0 -0
  504. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/manufacturing_facilities_cross_page_table.pdf +0 -0
  505. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/pollutant_discharge_tables.pdf +0 -0
  506. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/procurement_contract_tables.pdf +0 -0
  507. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/procurement_document_blank_page_tables.pdf +0 -0
  508. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/native_pdf_tables/quarterly_report_financial_tables.pdf +0 -0
  509. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/pdfs/test.pdf +0 -0
  510. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_backend_architecture.py +0 -0
  511. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_backend_block_object_regressions.py +0 -0
  512. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_assets.py +0 -0
  513. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_complex_fields.py +0 -0
  514. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_math.py +0 -0
  515. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_render.py +0 -0
  516. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_special_char_tables.py +0 -0
  517. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_docx_table.py +0 -0
  518. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_emfplus_integration.py +0 -0
  519. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_epub_backlinks.py +0 -0
  520. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_epub_quoted_note_types.py +0 -0
  521. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_epub_render.py +0 -0
  522. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_csv.py +0 -0
  523. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_docx_equationxml.py +0 -0
  524. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_epub.py +0 -0
  525. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_html.py +0 -0
  526. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_image_mtef.py +0 -0
  527. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_chart_data.py +0 -0
  528. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_doc.py +0 -0
  529. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_doc_mtef.py +0 -0
  530. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_ppt.py +0 -0
  531. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_xls.py +0 -0
  532. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_legacy_xls_ppt_mtef.py +0 -0
  533. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_markup_anchors.py +0 -0
  534. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_model.py +0 -0
  535. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_mtef_v5.py +0 -0
  536. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_odf.py +0 -0
  537. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_ofd.py +0 -0
  538. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_image_mtef.py +0 -0
  539. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_metafile.py +0 -0
  540. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_models.py +0 -0
  541. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_mtef_v5.py +0 -0
  542. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_package_normalizers.py +0 -0
  543. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_office_title_types.py +0 -0
  544. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_ooxml_mtef.py +0 -0
  545. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_auxiliary_text.py +0 -0
  546. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_char_geometry.py +0 -0
  547. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_code_blocks.py +0 -0
  548. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_document_profile.py +0 -0
  549. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_extractor.py +0 -0
  550. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_formulas.py +0 -0
  551. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_graphics.py +0 -0
  552. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_index_blocks.py +0 -0
  553. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_line_metadata.py +0 -0
  554. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_native_text.py +0 -0
  555. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_pipeline.py +0 -0
  556. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_tables.py +0 -0
  557. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_text_blocks.py +0 -0
  558. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_titles.py +0 -0
  559. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_pdf_visual_annotations.py +0 -0
  560. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_rtf.py +0 -0
  561. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_shared_helpers.py +0 -0
  562. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_flash_spreadsheet_projector.py +0 -0
  563. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_guess_suffix_ole2.py +0 -0
  564. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_html_css_build.py +0 -0
  565. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_html_render.py +0 -0
  566. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_html_security.py +0 -0
  567. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_hybrid_script_source_pdfs.py +0 -0
  568. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_latex_render.py +0 -0
  569. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_markdown_render.py +0 -0
  570. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_middle_json_block_models.py +0 -0
  571. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_middle_json_export.py +0 -0
  572. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_middle_json_validator.py +0 -0
  573. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_model_json.py +0 -0
  574. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_native_pdf_table.py +0 -0
  575. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_native_pdf_table_demo_manifest.py +0 -0
  576. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_native_pdf_table_manifest.py +0 -0
  577. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_native_pdf_table_pipeline.py +0 -0
  578. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_native_pdf_table_scripts.py +0 -0
  579. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_ofd_assembly.py +0 -0
  580. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_ofd_vector_tables.py +0 -0
  581. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_office_demo_exports.py +0 -0
  582. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_office_demo_pages.py +0 -0
  583. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_office_parser_regressions.py +0 -0
  584. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_classify.py +0 -0
  585. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_demo_links.py +0 -0
  586. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_document.py +0 -0
  587. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_render.py +0 -0
  588. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_render_diagnostics.py +0 -0
  589. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_text_styles.py +0 -0
  590. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_pdf_visualization.py +0 -0
  591. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_postprocess_page_blocks.py +0 -0
  592. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_postprocess_pages.py +0 -0
  593. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_postprocess_paragraphs.py +0 -0
  594. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_postprocess_visual.py +0 -0
  595. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_render_api.py +0 -0
  596. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_render_html_table.py +0 -0
  597. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_render_image_renderer.py +0 -0
  598. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_render_list_index_utils.py +0 -0
  599. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_structured_content_render.py +0 -0
  600. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_table_merge.py +0 -0
  601. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_table_merge_cell_merge.py +0 -0
  602. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_text_block_anchor.py +0 -0
  603. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_text_boundary_rules.py +0 -0
  604. {docvortex-0.4.0 → docvortex-0.4.2}/tests/unittest/test_text_utils.py +0 -0
  605. {docvortex-0.4.0 → docvortex-0.4.2}/tools/__init__.py +0 -0
  606. {docvortex-0.4.0 → docvortex-0.4.2}/tools/build_html_css.py +0 -0
  607. {docvortex-0.4.0 → docvortex-0.4.2}/tools/calibrate_pdf_geometry.py +0 -0
  608. {docvortex-0.4.0 → docvortex-0.4.2}/tools/capture_baseline.py +0 -0
  609. {docvortex-0.4.0 → docvortex-0.4.2}/tools/capture_platform_layout.py +0 -0
  610. {docvortex-0.4.0 → docvortex-0.4.2}/tools/compare_font_platforms.py +0 -0
  611. {docvortex-0.4.0 → docvortex-0.4.2}/tools/font_geometry.py +0 -0
@@ -0,0 +1,218 @@
1
+ Metadata-Version: 2.4
2
+ Name: docvortex
3
+ Version: 0.4.2
4
+ Summary: A fast, multi-format document parsing and conversion engine
5
+ License-Expression: MIT
6
+ Project-URL: Repository, https://github.com/myhloli/DocVortex
7
+ Project-URL: Issues, https://github.com/myhloli/DocVortex/issues
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Requires-Python: <3.15,>=3.10
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE.md
17
+ Requires-Dist: click>=8.1.7
18
+ Requires-Dist: loguru>=0.7.2
19
+ Requires-Dist: numpy>=1.21.6
20
+ Requires-Dist: pillow>=11.0.0
21
+ Requires-Dist: pypdfium2<6,>=5.10.1
22
+ Requires-Dist: pypdf>=5.6.0
23
+ Requires-Dist: pydantic<3,>=2.12.5
24
+ Requires-Dist: metafile-render<1.0.0,>=0.3.0
25
+ Requires-Dist: ftfy<7,>=6.3.1
26
+ Requires-Dist: fonttools<5,>=4
27
+ Requires-Dist: beautifulsoup4<5,>=4.13.5
28
+ Requires-Dist: lxml<7,>=4
29
+ Requires-Dist: nh3<0.4,>=0.3.6
30
+ Requires-Dist: python-docx<2,>=1.2.0
31
+ Requires-Dist: pypptx-with-oxml<2,>=1.0.3
32
+ Requires-Dist: mammoth<2,>=1.11.0
33
+ Requires-Dist: openpyxl<4,>=3.1.5
34
+ Requires-Dist: olefile<1,>=0.47
35
+ Requires-Dist: pylatexenc<3,>=2.10
36
+ Requires-Dist: latex2mathml<4,>=3.81.0
37
+ Requires-Dist: mathml2omml==0.0.2
38
+ Requires-Dist: resvg_py<0.6,>=0.5.0
39
+ Requires-Dist: reportlab
40
+ Requires-Dist: ziamath<0.14,>=0.13
41
+ Requires-Dist: magika<1.1.0,>=0.6.2
42
+ Requires-Dist: opencv-python>=4.11.0.86
43
+ Provides-Extra: test
44
+ Requires-Dist: pytest; extra == "test"
45
+ Requires-Dist: pytest-cov; extra == "test"
46
+ Requires-Dist: markdown; extra == "test"
47
+ Requires-Dist: jsonschema<5,>=4; extra == "test"
48
+ Provides-Extra: dev
49
+ Requires-Dist: ruff==0.14.2; extra == "dev"
50
+ Requires-Dist: build; extra == "dev"
51
+ Requires-Dist: twine; extra == "dev"
52
+ Dynamic: license-file
53
+
54
+ <div align="center">
55
+
56
+ <img src="https://raw.githubusercontent.com/myhloli/DocVortex/main/docs/images/docvortex-logo.jpg" alt="DocVortex logo" width="200">
57
+
58
+ # DocVortex
59
+
60
+ **Native document parsing. One structure, many outputs.**
61
+
62
+ [![PyPI](https://img.shields.io/pypi/v/docvortex?color=008cff)](https://pypi.org/project/docvortex/)
63
+ [![Python](https://img.shields.io/pypi/pyversions/docvortex)](https://pypi.org/project/docvortex/)
64
+ [![CI](https://github.com/myhloli/DocVortex/actions/workflows/ci.yml/badge.svg)](https://github.com/myhloli/DocVortex/actions/workflows/ci.yml)
65
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/myhloli/DocVortex/blob/main/LICENSE.md)
66
+
67
+ **English** · [简体中文](https://github.com/myhloli/DocVortex/blob/main/README_zh-CN.md)
68
+
69
+ [Quick start](#quick-start) · [Formats](#supported-formats) · [Documentation](#documentation)
70
+
71
+ </div>
72
+
73
+ ## Documents in. Possibilities out.
74
+
75
+ DocVortex is a standalone Python engine for parsing and converting documents.
76
+ It reads native text and document structure into a unified representation,
77
+ then exports the result in the formats your workflow needs.
78
+
79
+ - **Multi-format input** — read text PDFs, Office files, OpenDocument files, EPUB, HTML, OFD and CSV.
80
+ - **Parse once, export many times** — reuse the same result for Markdown, HTML, LaTeX, DOCX, EPUB, PDF and structured JSON.
81
+ - **Portable results** — save document structure and image assets in a Bundle, then export again without the source file.
82
+ - **Composable APIs** — use the complete pipeline or integrate analysis, postprocessing and rendering separately.
83
+
84
+ Native parsing works without an OCR or VLM inference service. Use DocVortex
85
+ directly through its CLI or Python SDK, independently of MinerU.
86
+
87
+ ![DocVortex pipeline: native documents become a unified representation, then Markdown, HTML, LaTeX, DOCX, EPUB, PDF or structured JSON.](https://raw.githubusercontent.com/myhloli/DocVortex/main/docs/images/docvortex-overview.jpg)
88
+
89
+ ## Quick start
90
+
91
+ Requires **Python 3.10–3.14**.
92
+
93
+ ### Install
94
+
95
+ ```bash
96
+ pip install docvortex
97
+ ```
98
+
99
+ ### Command line
100
+
101
+ Convert a text PDF to Markdown:
102
+
103
+ ```bash
104
+ docvortex convert report.pdf --format markdown --output output/report.md
105
+ ```
106
+
107
+ Replace `report.pdf` with a local file in any supported input format.
108
+ Use `--format` to choose the output; run `docvortex convert --help` for options.
109
+
110
+ ### Python
111
+
112
+ Parse a document once and export it twice:
113
+
114
+ ```python
115
+ import docvortex
116
+
117
+ result = docvortex.parse("report.pdf")
118
+ result.export("output/report.md", output_format="markdown")
119
+ result.export("output/report.docx", output_format="docx")
120
+ ```
121
+
122
+ The result owns its document structure and assets, so further exports do not
123
+ reopen or reparse the source. Existing output files are protected by default;
124
+ use `overwrite=True` in Python or `--overwrite` in the CLI to replace them.
125
+
126
+ ## Supported formats
127
+
128
+ ### Native inputs · 15 formats
129
+
130
+ | Document family | Formats |
131
+ | --- | --- |
132
+ | PDF with native text | PDF |
133
+ | Word & rich text | DOC, DOCX, RTF |
134
+ | Presentations | PPT, PPTX |
135
+ | Spreadsheets | XLS, XLSX, CSV |
136
+ | OpenDocument | ODT, ODS, ODP |
137
+ | E-books & web documents | EPUB, HTML |
138
+ | Open Fixed-layout Document | OFD |
139
+
140
+ ### Outputs · 7 formats
141
+
142
+ | Output | `--format` / `output_format` |
143
+ | --- | --- |
144
+ | Markdown | `markdown` |
145
+ | HTML | `html` |
146
+ | LaTeX | `latex` |
147
+ | Word document | `docx` |
148
+ | EPUB e-book | `epub` |
149
+ | PDF | `pdf` |
150
+ | Structured JSON | `structured_content` |
151
+
152
+ PPT/PPTX and XLS/XLSX are input formats only. Structured JSON is an export
153
+ format; the [document JSON protocol](https://github.com/myhloli/DocVortex/blob/main/docs/JSON_PROTOCOL.md)
154
+ separately defines the analysis and intermediate representations.
155
+
156
+ ## Save now, export later
157
+
158
+ A Bundle packages the parsed document and its image assets for reuse across
159
+ processes or machines. Load it whenever you need another output format:
160
+
161
+ ```python
162
+ import docvortex
163
+
164
+ result = docvortex.parse("report.pdf")
165
+ result.save_bundle("output/report.bundle")
166
+
167
+ restored = docvortex.load_bundle("output/report.bundle")
168
+ restored.export("output/report.epub", output_format="epub")
169
+ ```
170
+
171
+ The restored result works without the original file. See the
172
+ [usage guide](https://github.com/myhloli/DocVortex/blob/main/docs/USAGE.md#portable-bundles)
173
+ for Bundle contents, asset handling and overwrite rules.
174
+
175
+ Need only the title, authors or other source properties?
176
+ [`docvortex.extract_metadata()`](https://github.com/myhloli/DocVortex/blob/main/docs/METADATA.md)
177
+ reads metadata without parsing the document body.
178
+
179
+ ## Choose the right workflow
180
+
181
+ - **Text PDFs:** native parsing uses the document's existing text and structure. Scanned pages requiring OCR need an external OCR or inference service.
182
+ - **PDF classification:** `docvortex classify report.pdf` returns `txt` or `ocr`. Classification is explicit and does not start inference; parsing does not automatically switch backends.
183
+ - **PDF export:** PDF sources with page geometry default to block layout restoration, with selectable text and region images for tables/charts. Other sources and older results use semantic reflow. Use `--pdf-layout original|reflow` to select explicitly; fonts, line breaks and drawing instructions are not reproduced losslessly. See [PDF output layout](docs/USAGE.md#pdf-output-layout).
184
+
185
+ ## Documentation
186
+
187
+ | Guide | What you will find |
188
+ | --- | --- |
189
+ | [Usage](https://github.com/myhloli/DocVortex/blob/main/docs/USAGE.md) | Stage APIs, PDF pages, classification, images and Bundles |
190
+ | [Agent skill](skills/docvortex/SKILL.md) | CLI and Python SDK workflows for agents; copy the entire `skills/docvortex` folder to reuse |
191
+ | [Examples](https://github.com/myhloli/DocVortex/blob/main/demo/README.md) | Local PDF and Office samples with a runnable demo |
192
+ | [Metadata](https://github.com/myhloli/DocVortex/blob/main/docs/METADATA.md) | Source properties and per-format coverage |
193
+ | [JSON protocol](https://github.com/myhloli/DocVortex/blob/main/docs/JSON_PROTOCOL.md) | Document schemas, extensions and protocol migration |
194
+ | [HTML protocol](https://github.com/myhloli/DocVortex/blob/main/docs/HTML_PROTOCOL.md) | Semantic markers and round trips |
195
+ | [Public SDK & migration](https://github.com/myhloli/DocVortex/blob/main/docs/sdk-0.4.md) | Supported integration boundaries and the 0.4 upgrade |
196
+ | [Rendering ownership](https://github.com/myhloli/DocVortex/blob/main/docs/RENDER_OWNERSHIP.md) | DocVortex exports and MinerU-specific renderers |
197
+
198
+ ## Development
199
+
200
+ From a local checkout:
201
+
202
+ ```bash
203
+ uv venv
204
+ uv pip install -e ".[test,dev]"
205
+ uv run --no-project python -m pytest -q
206
+ uv run --no-project ruff check src
207
+ uv run --no-project ruff format --check src
208
+ uv build
209
+ ```
210
+
211
+ Bug reports and contributions are welcome. When reporting a parsing issue,
212
+ include a reproducible command and a sample document you can share in
213
+ [GitHub Issues](https://github.com/myhloli/DocVortex/issues).
214
+
215
+ ## License
216
+
217
+ DocVortex project code is released under the
218
+ [MIT License](https://github.com/myhloli/DocVortex/blob/main/LICENSE.md).
@@ -0,0 +1,165 @@
1
+ <div align="center">
2
+
3
+ <img src="https://raw.githubusercontent.com/myhloli/DocVortex/main/docs/images/docvortex-logo.jpg" alt="DocVortex logo" width="200">
4
+
5
+ # DocVortex
6
+
7
+ **Native document parsing. One structure, many outputs.**
8
+
9
+ [![PyPI](https://img.shields.io/pypi/v/docvortex?color=008cff)](https://pypi.org/project/docvortex/)
10
+ [![Python](https://img.shields.io/pypi/pyversions/docvortex)](https://pypi.org/project/docvortex/)
11
+ [![CI](https://github.com/myhloli/DocVortex/actions/workflows/ci.yml/badge.svg)](https://github.com/myhloli/DocVortex/actions/workflows/ci.yml)
12
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/myhloli/DocVortex/blob/main/LICENSE.md)
13
+
14
+ **English** · [简体中文](https://github.com/myhloli/DocVortex/blob/main/README_zh-CN.md)
15
+
16
+ [Quick start](#quick-start) · [Formats](#supported-formats) · [Documentation](#documentation)
17
+
18
+ </div>
19
+
20
+ ## Documents in. Possibilities out.
21
+
22
+ DocVortex is a standalone Python engine for parsing and converting documents.
23
+ It reads native text and document structure into a unified representation,
24
+ then exports the result in the formats your workflow needs.
25
+
26
+ - **Multi-format input** — read text PDFs, Office files, OpenDocument files, EPUB, HTML, OFD and CSV.
27
+ - **Parse once, export many times** — reuse the same result for Markdown, HTML, LaTeX, DOCX, EPUB, PDF and structured JSON.
28
+ - **Portable results** — save document structure and image assets in a Bundle, then export again without the source file.
29
+ - **Composable APIs** — use the complete pipeline or integrate analysis, postprocessing and rendering separately.
30
+
31
+ Native parsing works without an OCR or VLM inference service. Use DocVortex
32
+ directly through its CLI or Python SDK, independently of MinerU.
33
+
34
+ ![DocVortex pipeline: native documents become a unified representation, then Markdown, HTML, LaTeX, DOCX, EPUB, PDF or structured JSON.](https://raw.githubusercontent.com/myhloli/DocVortex/main/docs/images/docvortex-overview.jpg)
35
+
36
+ ## Quick start
37
+
38
+ Requires **Python 3.10–3.14**.
39
+
40
+ ### Install
41
+
42
+ ```bash
43
+ pip install docvortex
44
+ ```
45
+
46
+ ### Command line
47
+
48
+ Convert a text PDF to Markdown:
49
+
50
+ ```bash
51
+ docvortex convert report.pdf --format markdown --output output/report.md
52
+ ```
53
+
54
+ Replace `report.pdf` with a local file in any supported input format.
55
+ Use `--format` to choose the output; run `docvortex convert --help` for options.
56
+
57
+ ### Python
58
+
59
+ Parse a document once and export it twice:
60
+
61
+ ```python
62
+ import docvortex
63
+
64
+ result = docvortex.parse("report.pdf")
65
+ result.export("output/report.md", output_format="markdown")
66
+ result.export("output/report.docx", output_format="docx")
67
+ ```
68
+
69
+ The result owns its document structure and assets, so further exports do not
70
+ reopen or reparse the source. Existing output files are protected by default;
71
+ use `overwrite=True` in Python or `--overwrite` in the CLI to replace them.
72
+
73
+ ## Supported formats
74
+
75
+ ### Native inputs · 15 formats
76
+
77
+ | Document family | Formats |
78
+ | --- | --- |
79
+ | PDF with native text | PDF |
80
+ | Word & rich text | DOC, DOCX, RTF |
81
+ | Presentations | PPT, PPTX |
82
+ | Spreadsheets | XLS, XLSX, CSV |
83
+ | OpenDocument | ODT, ODS, ODP |
84
+ | E-books & web documents | EPUB, HTML |
85
+ | Open Fixed-layout Document | OFD |
86
+
87
+ ### Outputs · 7 formats
88
+
89
+ | Output | `--format` / `output_format` |
90
+ | --- | --- |
91
+ | Markdown | `markdown` |
92
+ | HTML | `html` |
93
+ | LaTeX | `latex` |
94
+ | Word document | `docx` |
95
+ | EPUB e-book | `epub` |
96
+ | PDF | `pdf` |
97
+ | Structured JSON | `structured_content` |
98
+
99
+ PPT/PPTX and XLS/XLSX are input formats only. Structured JSON is an export
100
+ format; the [document JSON protocol](https://github.com/myhloli/DocVortex/blob/main/docs/JSON_PROTOCOL.md)
101
+ separately defines the analysis and intermediate representations.
102
+
103
+ ## Save now, export later
104
+
105
+ A Bundle packages the parsed document and its image assets for reuse across
106
+ processes or machines. Load it whenever you need another output format:
107
+
108
+ ```python
109
+ import docvortex
110
+
111
+ result = docvortex.parse("report.pdf")
112
+ result.save_bundle("output/report.bundle")
113
+
114
+ restored = docvortex.load_bundle("output/report.bundle")
115
+ restored.export("output/report.epub", output_format="epub")
116
+ ```
117
+
118
+ The restored result works without the original file. See the
119
+ [usage guide](https://github.com/myhloli/DocVortex/blob/main/docs/USAGE.md#portable-bundles)
120
+ for Bundle contents, asset handling and overwrite rules.
121
+
122
+ Need only the title, authors or other source properties?
123
+ [`docvortex.extract_metadata()`](https://github.com/myhloli/DocVortex/blob/main/docs/METADATA.md)
124
+ reads metadata without parsing the document body.
125
+
126
+ ## Choose the right workflow
127
+
128
+ - **Text PDFs:** native parsing uses the document's existing text and structure. Scanned pages requiring OCR need an external OCR or inference service.
129
+ - **PDF classification:** `docvortex classify report.pdf` returns `txt` or `ocr`. Classification is explicit and does not start inference; parsing does not automatically switch backends.
130
+ - **PDF export:** PDF sources with page geometry default to block layout restoration, with selectable text and region images for tables/charts. Other sources and older results use semantic reflow. Use `--pdf-layout original|reflow` to select explicitly; fonts, line breaks and drawing instructions are not reproduced losslessly. See [PDF output layout](docs/USAGE.md#pdf-output-layout).
131
+
132
+ ## Documentation
133
+
134
+ | Guide | What you will find |
135
+ | --- | --- |
136
+ | [Usage](https://github.com/myhloli/DocVortex/blob/main/docs/USAGE.md) | Stage APIs, PDF pages, classification, images and Bundles |
137
+ | [Agent skill](skills/docvortex/SKILL.md) | CLI and Python SDK workflows for agents; copy the entire `skills/docvortex` folder to reuse |
138
+ | [Examples](https://github.com/myhloli/DocVortex/blob/main/demo/README.md) | Local PDF and Office samples with a runnable demo |
139
+ | [Metadata](https://github.com/myhloli/DocVortex/blob/main/docs/METADATA.md) | Source properties and per-format coverage |
140
+ | [JSON protocol](https://github.com/myhloli/DocVortex/blob/main/docs/JSON_PROTOCOL.md) | Document schemas, extensions and protocol migration |
141
+ | [HTML protocol](https://github.com/myhloli/DocVortex/blob/main/docs/HTML_PROTOCOL.md) | Semantic markers and round trips |
142
+ | [Public SDK & migration](https://github.com/myhloli/DocVortex/blob/main/docs/sdk-0.4.md) | Supported integration boundaries and the 0.4 upgrade |
143
+ | [Rendering ownership](https://github.com/myhloli/DocVortex/blob/main/docs/RENDER_OWNERSHIP.md) | DocVortex exports and MinerU-specific renderers |
144
+
145
+ ## Development
146
+
147
+ From a local checkout:
148
+
149
+ ```bash
150
+ uv venv
151
+ uv pip install -e ".[test,dev]"
152
+ uv run --no-project python -m pytest -q
153
+ uv run --no-project ruff check src
154
+ uv run --no-project ruff format --check src
155
+ uv build
156
+ ```
157
+
158
+ Bug reports and contributions are welcome. When reporting a parsing issue,
159
+ include a reproducible command and a sample document you can share in
160
+ [GitHub Issues](https://github.com/myhloli/DocVortex/issues).
161
+
162
+ ## License
163
+
164
+ DocVortex project code is released under the
165
+ [MIT License](https://github.com/myhloli/DocVortex/blob/main/LICENSE.md).
@@ -91,3 +91,45 @@ publication, date, authoring-software, and qualified count fields are shared by
91
91
  The schema version remains 2.0. New readers accept absent source properties in existing documents;
92
92
  old strict readers require an upgrade to accept this addition. No legacy data is rewritten or
93
93
  silently enriched. See [source metadata](METADATA.md) for field and format semantics.
94
+
95
+ ## Optional PDF layout geometry
96
+
97
+ Native PDF analysis adds `extensions.docvortex_layout` and deterministic
98
+ postprocessing preserves it in Middle JSON and result bundles:
99
+
100
+ ```json
101
+ {"docvortex_layout":{"version":1,"pages":[{"page_idx":0,"width_pt":595.28,"height_pt":841.89}]}}
102
+ ```
103
+
104
+ `page_idx` is the original zero-based source index, including for page selections.
105
+ Dimensions are finite positive PDF points (72 points per inch), in the same
106
+ visible-page orientation as normalized block bboxes. Page rotation is already
107
+ accounted for; consumers must not rotate these coordinates again. Blank pages
108
+ also have geometry. Producers should provide an entry for each result page.
109
+ Duplicate indices, unsupported extension versions, and missing/invalid dimensions
110
+ cannot be used for original PDF layout. Extra source-page entries may be retained
111
+ when selecting a subset of an existing result.
112
+
113
+ Pages may also contain `image_rotations`, such as `{"3":270}`: keys are source
114
+ block indices encoded as strings, and values are the 0/90/180/270-degree angles
115
+ used to turn region crops upright. The original-layout renderer reverses this
116
+ crop transform when placing the image. This preserves rotated table images
117
+ without duplicating image data or adding rotated-text reconstruction.
118
+
119
+ This uses the existing JSON extension mechanism; Model/Middle/bundle schema
120
+ versions remain 2.0. Older documents without this extension remain readable.
121
+ OFD geometry is not collected in this version. Other producers can supply the
122
+ same extension for PDF results without depending on a live PDFDocument.
123
+
124
+ Host analyzers can reuse `docvortex.document.pdf.layout.extract_layout_geometry`
125
+ before closing their existing PDFDocument, then `attach_layout_image_rotations`
126
+ after block filtering. Preserve crop angles before removing inference-only
127
+ metadata. `remap_layout_geometry` maps local indices to source indices;
128
+ `merge_layout_extensions` merges cached page batches while requiring other
129
+ extensions to match and retaining the winning page's crop orientation.
130
+ MinerU uses these helpers for all PDF tiers alongside `extensions.mineru`.
131
+
132
+ Since 0.4.2, native PDF display equations have `content: ""` at the final output
133
+ boundary and keep their image payload, bbox and detected equation-number region.
134
+ Detection still uses internal text evidence. Inline formulas and model-assisted
135
+ non-Flash formulas are unchanged; existing results are not rewritten.