BabelDOC 0.4.16__tar.gz → 0.4.18__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 (304) hide show
  1. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/ISSUE_TEMPLATE/bug_report.yaml +7 -1
  2. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/ISSUE_TEMPLATE/feature_request.yaml +10 -0
  3. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/docs.yml +1 -1
  4. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/publish-to-pypi.yml +1 -1
  5. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/test.yml +1 -1
  6. {babeldoc-0.4.16 → babeldoc-0.4.18}/PKG-INFO +1 -1
  7. babeldoc-0.4.18/babeldoc/__init__.py +1 -0
  8. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/const.py +1 -1
  9. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/rpc_doclayout3.py +2 -2
  10. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/frontend/il_creater.py +22 -0
  11. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/high_level.py +26 -9
  12. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/pdfinterp.py +4 -0
  13. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/main.py +1 -1
  14. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfpage.py +4 -1
  15. {babeldoc-0.4.16 → babeldoc-0.4.18}/pyproject.toml +2 -2
  16. babeldoc-0.4.16/babeldoc/__init__.py +0 -1
  17. {babeldoc-0.4.16 → babeldoc-0.4.18}/.cursorignore +0 -0
  18. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
  19. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/dependabot.yml +0 -0
  21. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/labels.yml +0 -0
  22. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/release-drafter.yml +0 -0
  23. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/codeql.yml +0 -0
  24. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/labeler.yml +0 -0
  25. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/lint.yml +0 -0
  26. {babeldoc-0.4.16 → babeldoc-0.4.18}/.github/workflows/pr-lint.yml +0 -0
  27. {babeldoc-0.4.16 → babeldoc-0.4.18}/.gitignore +0 -0
  28. {babeldoc-0.4.16 → babeldoc-0.4.18}/.pre-commit-config.yaml +0 -0
  29. {babeldoc-0.4.16 → babeldoc-0.4.18}/LICENSE +0 -0
  30. {babeldoc-0.4.16 → babeldoc-0.4.18}/README.md +0 -0
  31. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/assets/assets.py +0 -0
  32. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  33. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/asynchronize/__init__.py +0 -0
  34. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
  35. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/babeldoc_exception/__init__.py +0 -0
  36. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/README.md +0 -0
  37. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/__init__.py +0 -0
  38. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/base_doclayout.py +0 -0
  39. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/doclayout.py +0 -0
  40. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/rpc_doclayout.py +0 -0
  41. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/rpc_doclayout2.py +0 -0
  42. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/rpc_doclayout4.py +0 -0
  43. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
  44. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/__init__.py +0 -0
  45. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/__init__.py +0 -0
  46. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/babelpdf/base14.py +0 -0
  47. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/babelpdf/encoding.py +0 -0
  48. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/converter.py +0 -0
  49. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/__init__.py +0 -0
  50. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
  51. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +0 -0
  52. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
  53. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/il_version_1.py +0 -0
  54. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/il_version_1.rnc +0 -0
  55. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/il_version_1.rng +0 -0
  56. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/il_version_1.xsd +0 -0
  57. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
  58. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
  59. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +0 -0
  60. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
  61. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
  62. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +0 -0
  63. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
  64. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
  65. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
  66. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +0 -0
  67. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
  68. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/midend/typesetting.py +0 -0
  69. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
  70. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
  71. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/formular_helper.py +0 -0
  72. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/layout_helper.py +0 -0
  73. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
  74. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
  75. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
  76. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
  77. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/document_il/xml_converter.py +0 -0
  78. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/result_merger.py +0 -0
  79. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/split_manager.py +0 -0
  80. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/format/pdf/translation_config.py +0 -0
  81. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/glossary.py +0 -0
  82. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/LICENSE +0 -0
  83. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/__init__.py +0 -0
  84. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/_saslprep.py +0 -0
  85. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/arcfour.py +0 -0
  86. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/ascii85.py +0 -0
  87. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/casting.py +0 -0
  88. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/ccitt.py +0 -0
  89. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
  90. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
  91. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
  92. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
  93. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
  94. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
  95. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
  96. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
  97. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
  98. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
  99. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
  100. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
  101. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
  102. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
  103. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
  104. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
  105. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
  106. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
  107. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
  108. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
  109. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
  110. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
  111. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
  112. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
  113. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
  114. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
  115. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
  116. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
  117. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
  118. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
  119. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
  120. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
  121. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
  122. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
  123. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
  124. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
  125. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
  126. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
  127. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
  128. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
  129. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
  130. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
  131. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
  132. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
  133. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
  134. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
  135. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
  136. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
  137. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
  138. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
  139. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
  140. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
  141. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
  142. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
  143. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
  144. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
  145. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
  146. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
  147. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
  148. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
  149. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
  150. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
  151. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
  152. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
  153. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
  154. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
  155. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
  156. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
  157. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
  158. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
  159. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
  160. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
  161. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
  162. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
  163. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
  164. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
  165. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
  166. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
  167. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
  168. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
  169. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
  170. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
  171. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
  172. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
  173. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
  174. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
  175. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
  176. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
  177. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
  178. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
  179. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
  180. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
  181. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
  182. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/README.txt +0 -0
  183. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
  184. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
  185. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
  186. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
  187. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
  188. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
  189. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
  190. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
  191. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
  192. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
  193. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
  194. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
  195. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
  196. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
  197. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
  198. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
  199. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
  200. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
  201. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
  202. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
  203. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
  204. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
  205. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
  206. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
  207. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
  208. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
  209. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
  210. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
  211. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
  212. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
  213. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
  214. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
  215. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
  216. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
  217. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
  218. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
  219. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
  220. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
  221. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
  222. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
  223. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
  224. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
  225. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
  226. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
  227. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
  228. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
  229. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
  230. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
  231. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
  232. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
  233. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
  234. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
  235. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
  236. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
  237. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
  238. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/cmapdb.py +0 -0
  239. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/converter.py +0 -0
  240. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/data_structures.py +0 -0
  241. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/encodingdb.py +0 -0
  242. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/fontmetrics.py +0 -0
  243. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/glyphlist.py +0 -0
  244. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/high_level.py +0 -0
  245. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/image.py +0 -0
  246. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/jbig2.py +0 -0
  247. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/latin_enc.py +0 -0
  248. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/layout.py +0 -0
  249. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/lzw.py +0 -0
  250. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfcolor.py +0 -0
  251. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfdevice.py +0 -0
  252. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfdocument.py +0 -0
  253. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfexceptions.py +0 -0
  254. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdffont.py +0 -0
  255. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfinterp.py +0 -0
  256. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdfparser.py +0 -0
  257. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/pdftypes.py +0 -0
  258. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/psexceptions.py +0 -0
  259. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/psparser.py +0 -0
  260. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/py.typed +0 -0
  261. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/runlength.py +0 -0
  262. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/settings.py +0 -0
  263. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/pdfminer/utils.py +0 -0
  264. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/progress_monitor.py +0 -0
  265. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/tools/generate_font_metadata.py +0 -0
  266. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/tools/italic_assistance.py +0 -0
  267. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/tools/italic_recognize_tool.py +0 -0
  268. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/translator/__init__.py +0 -0
  269. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/translator/cache.py +0 -0
  270. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/translator/translator.py +0 -0
  271. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/utils/__init__.py +0 -0
  272. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/utils/atomic_integer.py +0 -0
  273. {babeldoc-0.4.16 → babeldoc-0.4.18}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
  274. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/CODE_OF_CONDUCT.md +0 -0
  275. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/CONTRIBUTING.md +0 -0
  276. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/CONTRIBUTOR_REWARD.md +0 -0
  277. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  278. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  279. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  280. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  281. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  282. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/README.md +0 -0
  283. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  284. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  285. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/README.md +0 -0
  286. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/deploy.sh +0 -0
  287. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/example/demo_glossary.csv +0 -0
  288. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-banner.png +0 -0
  289. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  290. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  291. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  292. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  293. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-big-logo.png +0 -0
  294. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  295. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-preview.gif +0 -0
  296. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  297. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  298. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/images/babeldoc-small-logo.png +0 -0
  299. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/index.md +0 -0
  300. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/intro-to-pdf-object.md +0 -0
  301. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/requirements.txt +0 -0
  302. {babeldoc-0.4.16 → babeldoc-0.4.18}/docs/supported_languages.md +0 -0
  303. {babeldoc-0.4.16 → babeldoc-0.4.18}/mkdocs.yml +0 -0
  304. {babeldoc-0.4.16 → babeldoc-0.4.18}/tests/test_translation_config.py +0 -0
@@ -17,6 +17,12 @@ body:
17
17
  required: true
18
18
  - label: I am certain that this issue is with BabelDOC itself and can be reproduced through the BabelDOC cli
19
19
  required: true
20
+ - label: I have uploaded the original file, or confirmed that this issue is unrelated to the original file
21
+ required: true
22
+ - label: I have uploaded the log.
23
+ required: true
24
+ - label: I confirm that the latest version of BabelDOC is being used.
25
+ required: true
20
26
 
21
27
  - type: markdown
22
28
  attributes:
@@ -77,7 +83,7 @@ body:
77
83
  id: pdf
78
84
  attributes:
79
85
  label: Original PDF File
80
- description: Upload the input PDF if applicable.
86
+ description: Upload the input PDF if applicable. (Issues related to specific PDFs but without uploaded files will be closed directly.)
81
87
  validations:
82
88
  required: false
83
89
 
@@ -7,6 +7,16 @@ body:
7
7
  value: |
8
8
  Thank you for helping improve **BabelDOC**! Please fill out the form below to suggest a feature.
9
9
 
10
+ - type: checkboxes
11
+ id: checks
12
+ attributes:
13
+ label: Before you submit
14
+ options:
15
+ - label: I have searched existing issues
16
+ required: true
17
+ - label: I have fully read and understood the [README](https://github.com/funstory-ai/BabelDOC/blob/main/README.md)
18
+ required: true
19
+
10
20
  - type: textarea
11
21
  id: describe
12
22
  attributes:
@@ -17,7 +17,7 @@ jobs:
17
17
  git config user.name github-actions[bot]
18
18
  git config user.email 41898282+github-actions[bot]@users.noreply.github.com
19
19
  - name: Setup uv with Python 3.12
20
- uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
20
+ uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # v6.4.3
21
21
  with:
22
22
  python-version: "3.12"
23
23
  enable-cache: true
@@ -35,7 +35,7 @@ jobs:
35
35
  token: ${{ secrets.GITHUB_TOKEN }}
36
36
 
37
37
  - name: Setup uv with Python 3.12
38
- uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
38
+ uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # v6.4.3
39
39
  with:
40
40
  python-version: "3.12"
41
41
  enable-cache: true
@@ -28,7 +28,7 @@ jobs:
28
28
  path: ~/.cache/babeldoc
29
29
  key: babeldoc-assets-${{ hashFiles('babeldoc/assets/embedding_assets_metadata.py') }}
30
30
  - name: Setup uv with Python ${{ matrix.python-version }}
31
- uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
31
+ uses: astral-sh/setup-uv@e92bafb6253dcd438e0484186d7669ea7a8ca1cc # v6.4.3
32
32
  with:
33
33
  python-version: ${{ matrix.python-version }}
34
34
  enable-cache: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.4.16
3
+ Version: 0.4.18
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
@@ -0,0 +1 @@
1
+ __version__ = "0.4.18"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.4.16"
6
+ __version__ = "0.4.18"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -82,12 +82,12 @@ def predict_layout(
82
82
  # Send request
83
83
  # logger.debug(f"Sending request to {host}/inference")
84
84
  response = httpx.post(
85
- f"{host}/analyze?min_sim=0.7&early_stop=0.99&timeout=480",
85
+ f"{host}/analyze?min_sim=0.7&early_stop=0.99&timeout=1800",
86
86
  files={"file": ("image.jpg", image_data, "image/jpeg")},
87
87
  headers={
88
88
  "Accept": "application/json",
89
89
  },
90
- timeout=480,
90
+ timeout=1800,
91
91
  follow_redirects=True,
92
92
  )
93
93
 
@@ -1,6 +1,7 @@
1
1
  import base64
2
2
  import functools
3
3
  import logging
4
+ import math
4
5
  import re
5
6
  from io import BytesIO
6
7
  from itertools import islice
@@ -221,6 +222,18 @@ pattern = "^[" + "".join(unicode_spaces) + "]+$"
221
222
  space_regex = re.compile(pattern)
222
223
 
223
224
 
225
+ def get_rotation_angle(matrix):
226
+ """
227
+ 根据 PDF 的字符矩阵计算旋转角度(单位:度)
228
+ matrix: tuple/list, 格式 (a, b, c, d, e, f)
229
+ """
230
+ a, b, c, d, e, f = matrix
231
+ # 旋转角度:arctan2(b, a)
232
+ angle_rad = math.atan2(b, a)
233
+ angle_deg = math.degrees(angle_rad)
234
+ return angle_deg
235
+
236
+
224
237
  class ILCreater:
225
238
  stage_name = "Parse PDF and Create Intermediate Representation"
226
239
 
@@ -582,6 +595,15 @@ class ILCreater:
582
595
  def on_lt_char(self, char: LTChar):
583
596
  if char.aw_font_id is None:
584
597
  return
598
+ try:
599
+ rotation_angle = get_rotation_angle(char.matrix)
600
+ if not (-0.1 <= rotation_angle <= 0.1 or 89.9 <= rotation_angle <= 90.1):
601
+ return
602
+ except Exception:
603
+ logger.warning(
604
+ "Failed to get rotation angle for char %s",
605
+ char.get_text(),
606
+ )
585
607
  gs = self.create_graphic_state(char.graphicstate)
586
608
  # Get font from current page or xobject
587
609
  font = None
@@ -88,6 +88,15 @@ resfont_map = {
88
88
  }
89
89
 
90
90
 
91
+ def safe_save(doc, *args, **kwargs):
92
+ try:
93
+ # first try, saving without options
94
+ doc.save(*args, **kwargs)
95
+ except Exception:
96
+ # second try, saving with 'garbage=3' for object missing
97
+ doc.ez_save(*args, **kwargs)
98
+
99
+
91
100
  def fix_cmap(translate_result: TranslateResult, translate_config: TranslationConfig):
92
101
  processed = []
93
102
  for attr in (
@@ -104,7 +113,7 @@ def fix_cmap(translate_result: TranslateResult, translate_config: TranslationCon
104
113
  temp_path = translate_config.get_working_file_path(f"{path.stem}.cmap.pdf")
105
114
  pdf = pymupdf.open(path)
106
115
  reproduce_cmap(pdf)
107
- pdf.save(temp_path)
116
+ safe_save(pdf, temp_path)
108
117
  shutil.move(temp_path, path)
109
118
 
110
119
 
@@ -563,7 +572,7 @@ def do_translate(
563
572
  from_page=split_point.start_page,
564
573
  to_page=split_point.end_page,
565
574
  )
566
- temp_doc.save(part_temp_input_path)
575
+ safe_save(temp_doc, part_temp_input_path)
567
576
  assert (
568
577
  temp_doc.page_count
569
578
  == split_point.end_page - split_point.start_page + 1
@@ -695,6 +704,7 @@ def migrate_toc(
695
704
  )
696
705
 
697
706
 
707
+ # mediabox -> '[0 nul 792]'
698
708
  def fix_media_box(doc: Document) -> None:
699
709
  mediabox_data = {}
700
710
  for x in range(1, doc.xref_length()):
@@ -703,9 +713,16 @@ def fix_media_box(doc: Document) -> None:
703
713
  if t[1] in ["/Pages", "/Page"]:
704
714
  mediabox = doc.xref_get_key(x, "MediaBox")
705
715
  if mediabox[0] == "array":
706
- _, _, x1, y1 = mediabox[1].replace("[", "").replace("]", "").split(" ")
707
- doc.xref_set_key(x, "MediaBox", f"[0 0 {x1} {y1}]")
708
- box_set["MediaBox"] = mediabox[1]
716
+ try:
717
+ _, _, x1, y1 = (
718
+ mediabox[1].replace("[", "").replace("]", "").split(" ")
719
+ )
720
+ doc.xref_set_key(x, "MediaBox", f"[0 0 {x1} {y1}]")
721
+ box_set["MediaBox"] = mediabox[1]
722
+ except Exception:
723
+ logger.warning(
724
+ "Attempt to fix media box failed; some pages may not have been processed correctly."
725
+ )
709
726
  for k in ["CropBox", "BleedBox", "TrimBox", "ArtBox"]:
710
727
  box = doc.xref_get_key(x, k)
711
728
  if box[0] != "null":
@@ -754,13 +771,13 @@ def _do_translate_single(
754
771
  fix_null_xref(doc_input)
755
772
  except Exception:
756
773
  logger.exception("auto fix failed, please check the pdf file")
757
- doc_input.save(output_path, expand=True, pretty=True)
774
+ safe_save(doc_input, output_path, expand=True, pretty=True)
758
775
  del doc_input
759
776
 
760
777
  # Continue with original processing
761
778
  temp_pdf_path = translation_config.get_working_file_path("input.pdf")
762
779
  doc_pdf2zh = Document(original_pdf_path)
763
- resfont = "china-ss"
780
+ safe_save(doc_pdf2zh, temp_pdf_path)
764
781
 
765
782
  # Fix null xref in PDF file
766
783
  invalid_pages = []
@@ -777,7 +794,7 @@ def _do_translate_single(
777
794
  # page.insert_font(resfont, None)
778
795
 
779
796
  resfont = None
780
- doc_pdf2zh.save(temp_pdf_path)
797
+ safe_save(doc_pdf2zh, temp_pdf_path)
781
798
 
782
799
  # if not translation_config.skip_scanned_detection and DetectScannedFile(
783
800
  # translation_config
@@ -978,7 +995,7 @@ def generate_first_page_with_watermark(
978
995
  watermarked_temp_pdf_path = watermarked_config.get_working_file_path(
979
996
  "watermarked_temp_input.pdf"
980
997
  )
981
- first_page_doc.save(watermarked_temp_pdf_path)
998
+ safe_save(first_page_doc, watermarked_temp_pdf_path)
982
999
 
983
1000
  Typesetting(watermarked_config).typsetting_document(il_only_first_page_doc)
984
1001
  pdf_creater = PDFCreater(
@@ -283,6 +283,8 @@ class PDFPageInterpreterEx(PDFPageInterpreter):
283
283
  self.il_creater.on_passthrough_per_char("sc", args)
284
284
  return args
285
285
 
286
+ # Ensure bbox has four numbers, otherwise determine it as an illegal image
287
+ # For example, some Form's bbox is '[ null -.00487 1.00412 .99393 ]'
286
288
  def do_Do(self, xobjid_arg: PDFStackT) -> None:
287
289
  # 重载设置 xobj 的 obj_patch
288
290
  """Invoke named XObject"""
@@ -303,6 +305,8 @@ class PDFPageInterpreterEx(PDFPageInterpreter):
303
305
  bbox = list(
304
306
  filter(lambda x: x is not None, cast(Rect, list_value(xobj["BBox"])))
305
307
  )
308
+ if len(bbox) < 4:
309
+ return
306
310
 
307
311
  matrix = cast(Matrix, list_value(xobj.get("Matrix", MATRIX_IDENTITY)))
308
312
  # According to PDF reference 1.7 section 4.9.1, XObjects in
@@ -22,7 +22,7 @@ from babeldoc.translator.translator import OpenAITranslator
22
22
  from babeldoc.translator.translator import set_translate_rate_limiter
23
23
 
24
24
  logger = logging.getLogger(__name__)
25
- __version__ = "0.4.16"
25
+ __version__ = "0.4.18"
26
26
 
27
27
 
28
28
  def create_parser():
@@ -80,7 +80,10 @@ class PDFPage:
80
80
  log.exception(f"try to fix mediabox failed: {attrs}")
81
81
 
82
82
  self.mediabox = self._parse_mediabox(self.attrs.get("MediaBox"))
83
- self.cropbox = self._parse_cropbox(self.attrs.get("CropBox"), self.mediabox)
83
+ try:
84
+ self.cropbox = self._parse_cropbox(self.attrs.get("CropBox"), self.mediabox)
85
+ except Exception:
86
+ self.cropbox = self.mediabox
84
87
  self.contents = self._parse_contents(self.attrs.get("Contents"))
85
88
 
86
89
  self.rotate = (int_value(self.attrs.get("Rotate", 0)) + 360) % 360
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.4.16"
3
+ version = "0.4.18"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -161,7 +161,7 @@ pythonpath = [".", "src"]
161
161
  testpaths = ["tests"]
162
162
 
163
163
  [bumpver]
164
- current_version = "0.4.16"
164
+ current_version = "0.4.18"
165
165
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
166
166
 
167
167
  [bumpver.file_patterns]
@@ -1 +0,0 @@
1
- __version__ = "0.4.16"
File without changes
File without changes
File without changes
File without changes
File without changes