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.
- {babeldoc-0.4.0 → babeldoc-0.4.2}/PKG-INFO +1 -3
- babeldoc-0.4.2/babeldoc/__init__.py +1 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/const.py +1 -1
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +11 -28
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/typesetting.py +3 -1
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/formular_helper.py +31 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/high_level.py +9 -1
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/main.py +1 -1
- {babeldoc-0.4.0 → babeldoc-0.4.2}/pyproject.toml +3 -5
- {babeldoc-0.4.0 → babeldoc-0.4.2}/uv.lock +164 -253
- babeldoc-0.4.0/babeldoc/__init__.py +0 -1
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.cursorignore +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/dependabot.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/labels.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/release-drafter.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/codeql.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/docs.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/labeler.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/lint.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/pr-lint.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/publish-to-pypi.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.github/workflows/test.yml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.gitignore +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/.pre-commit-config.yaml +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/LICENSE +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/README.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/assets/assets.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/assets/embedding_assets_metadata.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/asynchronize/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/babeldoc_exception/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/README.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/base_doclayout.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/doclayout.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/rpc_doclayout.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/rpc_doclayout2.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/converter.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/frontend/il_creater.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.rnc +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.rng +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/il_version_1.xsd +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/layout_helper.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/xml_converter.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/pdfinterp.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/result_merger.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/split_manager.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/translation_config.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/glossary.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/LICENSE +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/_saslprep.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/arcfour.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/ascii85.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/casting.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/ccitt.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/README.txt +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/cmapdb.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/converter.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/data_structures.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/encodingdb.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/fontmetrics.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/glyphlist.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/high_level.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/image.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/jbig2.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/latin_enc.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/layout.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/lzw.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfcolor.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfdevice.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfdocument.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfexceptions.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdffont.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfinterp.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfpage.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdfparser.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/pdftypes.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/psexceptions.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/psparser.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/py.typed +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/runlength.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/settings.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/pdfminer/utils.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/progress_monitor.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/generate_font_metadata.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/italic_assistance.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/tools/italic_recognize_tool.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/cache.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/translator/translator.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/__init__.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/atomic_integer.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CODE_OF_CONDUCT.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CONTRIBUTING.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/CONTRIBUTOR_REWARD.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/README.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/README.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/deploy.sh +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/example/demo_glossary.csv +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-banner.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-big-logo.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-contributor_reward_example.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-preview.gif +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/images/babeldoc-small-logo.png +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/index.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/intro-to-pdf-object.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/requirements.txt +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/docs/supported_languages.md +0 -0
- {babeldoc-0.4.0 → babeldoc-0.4.2}/mkdocs.yml +0 -0
- {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.
|
|
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"
|
{babeldoc-0.4.0 → babeldoc-0.4.2}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py
RENAMED
|
@@ -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,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "BabelDOC"
|
|
3
|
-
version = "0.4.
|
|
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.
|
|
160
|
+
current_version = "0.4.2"
|
|
163
161
|
version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
|
|
164
162
|
|
|
165
163
|
[bumpver.file_patterns]
|