BabelDOC 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 (301) hide show
  1. {babeldoc-0.4.0 → babeldoc-0.4.2}/PKG-INFO +1 -3
  2. babeldoc-0.4.2/babeldoc/__init__.py +1 -0
  3. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/const.py +1 -1
  4. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +11 -28
  5. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/typesetting.py +3 -1
  6. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/formular_helper.py +31 -0
  7. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/high_level.py +9 -1
  8. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/main.py +1 -1
  9. {babeldoc-0.4.0 → babeldoc-0.4.2}/pyproject.toml +3 -5
  10. {babeldoc-0.4.0 → babeldoc-0.4.2}/uv.lock +164 -253
  11. babeldoc-0.4.0/babeldoc/__init__.py +0 -1
  12. {babeldoc-0.4.0 → babeldoc-0.4.2}/.cursorignore +0 -0
  13. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  14. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  15. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
  16. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/dependabot.yml +0 -0
  18. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/labels.yml +0 -0
  19. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/release-drafter.yml +0 -0
  20. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/codeql.yml +0 -0
  21. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/docs.yml +0 -0
  22. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/labeler.yml +0 -0
  23. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/lint.yml +0 -0
  24. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/pr-lint.yml +0 -0
  25. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/publish-to-pypi.yml +0 -0
  26. {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/test.yml +0 -0
  27. {babeldoc-0.4.0 → babeldoc-0.4.2}/.gitignore +0 -0
  28. {babeldoc-0.4.0 → babeldoc-0.4.2}/.pre-commit-config.yaml +0 -0
  29. {babeldoc-0.4.0 → babeldoc-0.4.2}/LICENSE +0 -0
  30. {babeldoc-0.4.0 → babeldoc-0.4.2}/README.md +0 -0
  31. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/assets/assets.py +0 -0
  32. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  33. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/asynchronize/__init__.py +0 -0
  34. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
  35. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/babeldoc_exception/__init__.py +0 -0
  36. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/README.md +0 -0
  37. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/__init__.py +0 -0
  38. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/base_doclayout.py +0 -0
  39. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/doclayout.py +0 -0
  40. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/rpc_doclayout.py +0 -0
  41. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/rpc_doclayout2.py +0 -0
  42. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
  43. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/__init__.py +0 -0
  44. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/__init__.py +0 -0
  45. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/converter.py +0 -0
  46. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/__init__.py +0 -0
  47. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
  48. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +0 -0
  49. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
  50. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/frontend/il_creater.py +0 -0
  51. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.py +0 -0
  52. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.rnc +0 -0
  53. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.rng +0 -0
  54. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.xsd +0 -0
  55. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
  56. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
  57. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +0 -0
  58. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
  59. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
  60. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +0 -0
  61. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
  62. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
  63. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
  64. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
  65. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
  66. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
  67. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/layout_helper.py +0 -0
  68. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
  69. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
  70. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
  71. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
  72. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/xml_converter.py +0 -0
  73. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/pdfinterp.py +0 -0
  74. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/result_merger.py +0 -0
  75. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/split_manager.py +0 -0
  76. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/translation_config.py +0 -0
  77. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/glossary.py +0 -0
  78. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/LICENSE +0 -0
  79. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/__init__.py +0 -0
  80. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/_saslprep.py +0 -0
  81. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/arcfour.py +0 -0
  82. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/ascii85.py +0 -0
  83. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/casting.py +0 -0
  84. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/ccitt.py +0 -0
  85. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
  86. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
  87. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
  88. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
  89. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
  90. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
  91. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
  92. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
  93. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
  94. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
  95. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
  96. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
  97. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
  98. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
  99. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
  100. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
  101. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
  102. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
  103. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
  104. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
  105. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
  106. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
  107. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
  108. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
  109. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
  110. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
  111. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
  112. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
  113. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
  114. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
  115. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
  116. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
  117. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
  118. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
  119. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
  120. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
  121. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
  122. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
  123. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
  124. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
  125. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
  126. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
  127. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
  128. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
  129. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
  130. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
  131. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
  132. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
  133. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
  134. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
  135. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
  136. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
  137. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
  138. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
  139. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
  140. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
  141. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
  142. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
  143. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
  144. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
  145. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
  146. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
  147. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
  148. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
  149. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
  150. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
  151. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
  152. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
  153. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
  154. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
  155. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
  156. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
  157. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
  158. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
  159. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
  160. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
  161. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
  162. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
  163. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
  164. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
  165. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
  166. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
  167. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
  168. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
  169. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
  170. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
  171. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
  172. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
  173. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
  174. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
  175. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
  176. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
  177. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
  178. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/README.txt +0 -0
  179. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
  180. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
  181. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
  182. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
  183. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
  184. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
  185. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
  186. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
  187. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
  188. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
  189. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
  190. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
  191. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
  192. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
  193. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
  194. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
  195. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
  196. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
  197. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
  198. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
  199. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
  200. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
  201. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
  202. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
  203. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
  204. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
  205. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
  206. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
  207. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
  208. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
  209. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
  210. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
  211. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
  212. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
  213. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
  214. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
  215. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
  216. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
  217. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
  218. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
  219. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
  220. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
  221. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
  222. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
  223. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
  224. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
  225. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
  226. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
  227. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
  228. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
  229. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
  230. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
  231. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
  232. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
  233. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
  234. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmapdb.py +0 -0
  235. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/converter.py +0 -0
  236. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/data_structures.py +0 -0
  237. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/encodingdb.py +0 -0
  238. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/fontmetrics.py +0 -0
  239. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/glyphlist.py +0 -0
  240. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/high_level.py +0 -0
  241. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/image.py +0 -0
  242. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/jbig2.py +0 -0
  243. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/latin_enc.py +0 -0
  244. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/layout.py +0 -0
  245. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/lzw.py +0 -0
  246. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfcolor.py +0 -0
  247. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfdevice.py +0 -0
  248. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfdocument.py +0 -0
  249. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfexceptions.py +0 -0
  250. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdffont.py +0 -0
  251. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfinterp.py +0 -0
  252. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfpage.py +0 -0
  253. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfparser.py +0 -0
  254. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdftypes.py +0 -0
  255. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/psexceptions.py +0 -0
  256. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/psparser.py +0 -0
  257. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/py.typed +0 -0
  258. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/runlength.py +0 -0
  259. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/settings.py +0 -0
  260. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/utils.py +0 -0
  261. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/progress_monitor.py +0 -0
  262. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/generate_font_metadata.py +0 -0
  263. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/italic_assistance.py +0 -0
  264. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/italic_recognize_tool.py +0 -0
  265. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/__init__.py +0 -0
  266. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/cache.py +0 -0
  267. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/translator.py +0 -0
  268. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/__init__.py +0 -0
  269. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/atomic_integer.py +0 -0
  270. {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
  271. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CODE_OF_CONDUCT.md +0 -0
  272. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CONTRIBUTING.md +0 -0
  273. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CONTRIBUTOR_REWARD.md +0 -0
  274. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  275. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  276. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  277. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  278. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  279. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/README.md +0 -0
  280. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  281. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  282. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/README.md +0 -0
  283. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/deploy.sh +0 -0
  284. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/example/demo_glossary.csv +0 -0
  285. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-banner.png +0 -0
  286. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  287. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  288. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  289. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  290. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo.png +0 -0
  291. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  292. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-preview.gif +0 -0
  293. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  294. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  295. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo.png +0 -0
  296. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/index.md +0 -0
  297. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/intro-to-pdf-object.md +0 -0
  298. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/requirements.txt +0 -0
  299. {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/supported_languages.md +0 -0
  300. {babeldoc-0.4.0 → babeldoc-0.4.2}/mkdocs.yml +0 -0
  301. {babeldoc-0.4.0 → babeldoc-0.4.2}/tests/test_translation_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Yet Another Document Translator
5
5
  Project-URL: Homepage, https://github.com/funstory-ai/BabelDOC
6
6
  Project-URL: Issues, https://github.com/funstory-ai/BabelDOC/issues
@@ -17,7 +17,6 @@ Requires-Dist: charset-normalizer>=2.0.0
17
17
  Requires-Dist: configargparse>=1.7
18
18
  Requires-Dist: cryptography>=36.0.0
19
19
  Requires-Dist: freetype-py>=2.5.1
20
- Requires-Dist: hdbscan>=0.8.40
21
20
  Requires-Dist: httpx[socks]>=0.27.0
22
21
  Requires-Dist: huggingface-hub>=0.27.0
23
22
  Requires-Dist: hyperscan>=0.7.13
@@ -38,7 +37,6 @@ Requires-Dist: rapidocr-onnxruntime>=1.4.4
38
37
  Requires-Dist: rich>=13.9.4
39
38
  Requires-Dist: rtree>=1.4.0
40
39
  Requires-Dist: scikit-image>=0.25.2
41
- Requires-Dist: scikit-learn<1.8.0
42
40
  Requires-Dist: tenacity>=9.0.0
43
41
  Requires-Dist: tiktoken>=0.9.0
44
42
  Requires-Dist: toml>=0.10.2
@@ -0,0 +1 @@
1
+ __version__ = "0.4.2"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.4.0"
6
+ __version__ = "0.4.2"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -19,15 +19,13 @@ from babeldoc.format.pdf.document_il.utils.formular_helper import (
19
19
  is_formulas_middle_char,
20
20
  )
21
21
  from babeldoc.format.pdf.document_il.utils.formular_helper import is_formulas_start_char
22
+ from babeldoc.format.pdf.document_il.utils.formular_helper import update_formula_data
22
23
  from babeldoc.format.pdf.document_il.utils.layout_helper import LEFT_BRACKET
23
24
  from babeldoc.format.pdf.document_il.utils.layout_helper import RIGHT_BRACKET
24
25
  from babeldoc.format.pdf.document_il.utils.layout_helper import build_layout_index
25
26
  from babeldoc.format.pdf.document_il.utils.layout_helper import (
26
27
  calculate_y_iou_for_boxes,
27
28
  )
28
- from babeldoc.format.pdf.document_il.utils.layout_helper import (
29
- formular_height_ignore_char,
30
- )
31
29
  from babeldoc.format.pdf.document_il.utils.layout_helper import is_bullet_point
32
30
  from babeldoc.format.pdf.document_il.utils.layout_helper import is_same_style
33
31
  from babeldoc.format.pdf.translation_config import TranslationConfig
@@ -40,6 +38,9 @@ class StylesAndFormulas:
40
38
  self.translation_config = translation_config
41
39
  self.font_mapper = FontMapper(translation_config)
42
40
 
41
+ def update_formula_data(self, formula: PdfFormula):
42
+ update_formula_data(formula)
43
+
43
44
  def process(self, document: Document):
44
45
  with self.translation_config.progress_monitor.stage_start(
45
46
  self.stage_name,
@@ -50,6 +51,12 @@ class StylesAndFormulas:
50
51
  self.process_page(page)
51
52
  pbar.advance()
52
53
 
54
+ def update_all_formula_data(self, page: Page):
55
+ for para in page.pdf_paragraph:
56
+ for comp in para.pdf_paragraph_composition:
57
+ if comp.pdf_formula:
58
+ self.update_formula_data(comp.pdf_formula)
59
+
53
60
  def process_page(self, page: Page):
54
61
  """处理页面,包括公式识别和偏移量计算"""
55
62
  build_layout_index(page)
@@ -60,6 +67,7 @@ class StylesAndFormulas:
60
67
  # self.process_page_offsets(page)
61
68
  self.process_translatable_formulas(page)
62
69
  self.process_page_offsets(page)
70
+ self.update_all_formula_data(page)
63
71
  self.process_page_styles(page)
64
72
 
65
73
  # clean up to save memory
@@ -590,31 +598,6 @@ class StylesAndFormulas:
590
598
  self.update_line_data(new_line)
591
599
  return PdfParagraphComposition(pdf_line=new_line)
592
600
 
593
- def update_formula_data(self, formula: PdfFormula):
594
- min_x = min(char.visual_bbox.box.x for char in formula.pdf_character)
595
- max_x = max(char.visual_bbox.box.x2 for char in formula.pdf_character)
596
- if not all(map(formular_height_ignore_char, formula.pdf_character)):
597
- min_y = min(
598
- char.visual_bbox.box.y
599
- for char in formula.pdf_character
600
- if not formular_height_ignore_char(char)
601
- )
602
- max_y = max(
603
- char.visual_bbox.box.y2
604
- for char in formula.pdf_character
605
- if not formular_height_ignore_char(char)
606
- )
607
- else:
608
- min_y = min(char.visual_bbox.box.y for char in formula.pdf_character)
609
- max_y = max(char.visual_bbox.box.y2 for char in formula.pdf_character)
610
- formula.box = Box(min_x, min_y, max_x, max_y)
611
- if not formula.y_offset:
612
- formula.y_offset = 0
613
- if not formula.x_offset:
614
- formula.x_offset = 0
615
- if not formula.x_advance:
616
- formula.x_advance = 0
617
-
618
601
  def is_translatable_formula(self, formula: PdfFormula) -> bool:
619
602
  """判断公式是否只包含需要正常翻译的字符(数字、空格和英文逗号)"""
620
603
  text = "".join(char.char_unicode for char in formula.pdf_character)
@@ -15,6 +15,7 @@ from babeldoc.format.pdf.document_il import PdfParagraphComposition
15
15
  from babeldoc.format.pdf.document_il import PdfStyle
16
16
  from babeldoc.format.pdf.document_il import il_version_1
17
17
  from babeldoc.format.pdf.document_il.utils.fontmap import FontMapper
18
+ from babeldoc.format.pdf.document_il.utils.formular_helper import update_formula_data
18
19
  from babeldoc.format.pdf.translation_config import TranslationConfig
19
20
  from babeldoc.format.pdf.translation_config import WatermarkOutputMode
20
21
 
@@ -481,6 +482,7 @@ class TypesettingUnit:
481
482
  y_offset=self.formular.y_offset * scale,
482
483
  x_advance=self.formular.x_advance * scale,
483
484
  )
485
+ update_formula_data(new_formula)
484
486
  return TypesettingUnit(formular=new_formula)
485
487
 
486
488
  elif self.unicode:
@@ -819,7 +821,7 @@ class Typesetting:
819
821
  # 更新 x 坐标
820
822
  current_x = relocated_unit.box.x2
821
823
  if prev_x > current_x:
822
- logger.warning(f"坐标回绕!!!TypesettingUnit: {unit}, ")
824
+ logger.warning(f"坐标回绕!!!TypesettingUnit: {unit.box}, ")
823
825
 
824
826
  last_unit = relocated_unit
825
827
 
@@ -3,8 +3,13 @@ import functools
3
3
  import re
4
4
  import unicodedata
5
5
 
6
+ from babeldoc.format.pdf.document_il.il_version_1 import Box
6
7
  from babeldoc.format.pdf.document_il.il_version_1 import Page
8
+ from babeldoc.format.pdf.document_il.il_version_1 import PdfFormula
7
9
  from babeldoc.format.pdf.document_il.utils.fontmap import FontMapper
10
+ from babeldoc.format.pdf.document_il.utils.layout_helper import (
11
+ formular_height_ignore_char,
12
+ )
8
13
  from babeldoc.format.pdf.translation_config import TranslationConfig
9
14
 
10
15
 
@@ -301,3 +306,29 @@ def is_formulas_font(font_name: str, formular_font_pattern: str | None) -> bool:
301
306
  return True
302
307
 
303
308
  return False
309
+
310
+
311
+ def update_formula_data(formula: PdfFormula):
312
+ min_x = min(char.visual_bbox.box.x for char in formula.pdf_character)
313
+ max_x = max(char.visual_bbox.box.x2 for char in formula.pdf_character)
314
+ if not all(map(formular_height_ignore_char, formula.pdf_character)):
315
+ min_y = min(
316
+ char.visual_bbox.box.y
317
+ for char in formula.pdf_character
318
+ if not formular_height_ignore_char(char)
319
+ )
320
+ max_y = max(
321
+ char.visual_bbox.box.y2
322
+ for char in formula.pdf_character
323
+ if not formular_height_ignore_char(char)
324
+ )
325
+ else:
326
+ min_y = min(char.visual_bbox.box.y for char in formula.pdf_character)
327
+ max_y = max(char.visual_bbox.box.y2 for char in formula.pdf_character)
328
+ formula.box = Box(min_x, min_y, max_x, max_y)
329
+ if not formula.y_offset:
330
+ formula.y_offset = 0
331
+ if not formula.x_offset:
332
+ formula.x_offset = 0
333
+ if not formula.x_advance:
334
+ formula.x_advance = 0
@@ -640,7 +640,6 @@ def migrate_toc(
640
640
  old_doc = Document(translation_config.input_file)
641
641
  if not old_doc:
642
642
  return
643
-
644
643
  try:
645
644
  fix_filter(old_doc)
646
645
  fix_null_xref(old_doc)
@@ -653,6 +652,15 @@ def migrate_toc(
653
652
  logger.info("No TOC found in the original PDF, skipping migration.")
654
653
  return
655
654
 
655
+ if translation_config.only_include_translated_page:
656
+ total_page = set(range(0, len(old_doc)))
657
+
658
+ pages_to_translate = {
659
+ i for i in len(old_doc) if translation_config.should_translate_page(i + 1)
660
+ }
661
+
662
+ should_removed_page = list(total_page - pages_to_translate)
663
+
656
664
  files = {
657
665
  translate_result.dual_pdf_path,
658
666
  # translate_result.mono_pdf_path,
@@ -21,7 +21,7 @@ from babeldoc.translator.translator import OpenAITranslator
21
21
  from babeldoc.translator.translator import set_translate_rate_limiter
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
- __version__ = "0.4.0"
24
+ __version__ = "0.4.2"
25
25
 
26
26
 
27
27
  def create_parser():
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.4.0"
3
+ version = "0.4.2"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -47,9 +47,7 @@ dependencies = [
47
47
  "rapidocr-onnxruntime>=1.4.4",
48
48
  "pyzstd>=0.17.0",
49
49
  "hyperscan>=0.7.13",
50
- "rtree>=1.4.0",
51
- "hdbscan>=0.8.40",
52
- "scikit-learn<1.8.0"
50
+ "rtree>=1.4.0"
53
51
  ]
54
52
 
55
53
  [project.optional-dependencies]
@@ -159,7 +157,7 @@ pythonpath = [".", "src"]
159
157
  testpaths = ["tests"]
160
158
 
161
159
  [bumpver]
162
- current_version = "0.4.0"
160
+ current_version = "0.4.2"
163
161
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
164
162
 
165
163
  [bumpver.file_patterns]