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