BabelDOC 0.3.0__tar.gz → 0.3.1__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.3.0 → babeldoc-0.3.1}/PKG-INFO +1 -1
- babeldoc-0.3.1/babeldoc/__init__.py +1 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/const.py +1 -1
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/backend/pdf_creater.py +7 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/high_level.py +15 -1
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/main.py +1 -1
- {babeldoc-0.3.0 → babeldoc-0.3.1}/pyproject.toml +2 -2
- {babeldoc-0.3.0 → babeldoc-0.3.1}/uv.lock +1 -1
- babeldoc-0.3.0/babeldoc/__init__.py +0 -1
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.cursorignore +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/dependabot.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/labels.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/release-drafter.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/workflows/codeql.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/workflows/docs.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/workflows/labeler.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/workflows/publish-to-pypi.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.github/workflows/test.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.gitignore +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/.pre-commit-config.yaml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/LICENSE +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/README.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/assets/assets.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/assets/embedding_assets_metadata.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/asynchronize/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/converter.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/babeldoc_exception/BabelDOCException.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/backend/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/frontend/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/frontend/il_creater.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/il_version_1.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/il_version_1.rnc +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/il_version_1.rng +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/il_version_1.xsd +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/add_debug_information.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/detect_scanned_file.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/il_translator.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/il_translator_llm_only.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/layout_parser.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/remove_descent.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/styles_and_formulas.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/table_parser.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/midend/typesetting.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/translator/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/translator/cache.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/translator/translator.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/atomic_integer.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/fontmap.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/layout_helper.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/priority_thread_pool_executor.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/style_helper.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/xml_converter.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/docvision/README.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/docvision/__init__.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/docvision/doclayout.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/docvision/rpc_doclayout.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/pdfinterp.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/progress_monitor.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/result_merger.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/split_manager.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/tools/generate_font_metadata.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/tools/italic_assistance.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/translation_config.py +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/CODE_OF_CONDUCT.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/CONTRIBUTING.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/CONTRIBUTOR_REWARD.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/README.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/README.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/deploy.sh +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-banner.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-contributor_reward_example.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-preview.gif +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-small-logo.png +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/index.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/intro-to-pdf-object.md +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/docs/requirements.txt +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/mkdocs.yml +0 -0
- {babeldoc-0.3.0 → babeldoc-0.3.1}/tests/test_translation_config.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.1"
|
|
@@ -85,12 +85,14 @@ class PDFCreater:
|
|
|
85
85
|
original_pdf_path: str,
|
|
86
86
|
document: il_version_1.Document,
|
|
87
87
|
translation_config: TranslationConfig,
|
|
88
|
+
mediabox_data: dict,
|
|
88
89
|
):
|
|
89
90
|
self.original_pdf_path = original_pdf_path
|
|
90
91
|
self.docs = document
|
|
91
92
|
self.font_path = translation_config.font
|
|
92
93
|
self.font_mapper = FontMapper(translation_config)
|
|
93
94
|
self.translation_config = translation_config
|
|
95
|
+
self.mediabox_data = mediabox_data
|
|
94
96
|
|
|
95
97
|
def render_graphic_state(
|
|
96
98
|
self,
|
|
@@ -636,6 +638,10 @@ class PDFCreater:
|
|
|
636
638
|
|
|
637
639
|
return False
|
|
638
640
|
|
|
641
|
+
def restore_media_box(self, doc: pymupdf.Document, mediabox_data: dict) -> None:
|
|
642
|
+
for pageno, mediabox in mediabox_data.items():
|
|
643
|
+
doc.xref_set_key(doc[pageno].xref, "MediaBox", mediabox[1])
|
|
644
|
+
|
|
639
645
|
def write(
|
|
640
646
|
self, translation_config: TranslationConfig, check_font_exists: bool = False
|
|
641
647
|
) -> TranslateResult:
|
|
@@ -776,6 +782,7 @@ class PDFCreater:
|
|
|
776
782
|
)
|
|
777
783
|
|
|
778
784
|
pbar.advance()
|
|
785
|
+
self.restore_media_box(pdf, self.mediabox_data)
|
|
779
786
|
with self.translation_config.progress_monitor.stage_start(
|
|
780
787
|
SAVE_PDF_STAGE_NAME,
|
|
781
788
|
2,
|
|
@@ -525,6 +525,17 @@ def do_translate(
|
|
|
525
525
|
translation_config.cleanup_temp_files()
|
|
526
526
|
|
|
527
527
|
|
|
528
|
+
def fix_media_box(doc: Document) -> None:
|
|
529
|
+
mediabox_data = {}
|
|
530
|
+
for page in doc:
|
|
531
|
+
if page.mediabox.x0 != 0 or page.mediabox.y0 != 0:
|
|
532
|
+
x1 = page.mediabox.x1
|
|
533
|
+
y1 = page.mediabox.y1
|
|
534
|
+
mediabox_data[page.number] = doc.xref_get_key(page.xref, "MediaBox")
|
|
535
|
+
doc.xref_set_key(page.xref, "MediaBox", f"[0 0 {x1} {y1}]")
|
|
536
|
+
return mediabox_data
|
|
537
|
+
|
|
538
|
+
|
|
528
539
|
def _do_translate_single(
|
|
529
540
|
pm: ProgressMonitor,
|
|
530
541
|
translation_config: TranslationConfig,
|
|
@@ -541,6 +552,7 @@ def _do_translate_single(
|
|
|
541
552
|
# Fix null xref in PDF file
|
|
542
553
|
fix_null_xref(doc_input)
|
|
543
554
|
doc_input.save(output_path, expand=True, pretty=True)
|
|
555
|
+
del doc_input
|
|
544
556
|
|
|
545
557
|
# Continue with original processing
|
|
546
558
|
temp_pdf_path = translation_config.get_working_file_path("input.pdf")
|
|
@@ -550,6 +562,8 @@ def _do_translate_single(
|
|
|
550
562
|
# Fix null xref in PDF file
|
|
551
563
|
fix_null_xref(doc_pdf2zh)
|
|
552
564
|
|
|
565
|
+
mediabox_data = fix_media_box(doc_pdf2zh)
|
|
566
|
+
|
|
553
567
|
for page in doc_pdf2zh:
|
|
554
568
|
page.insert_font(resfont, None)
|
|
555
569
|
|
|
@@ -677,7 +691,7 @@ def _do_translate_single(
|
|
|
677
691
|
translation_config.get_working_file_path("typsetting.json"),
|
|
678
692
|
)
|
|
679
693
|
|
|
680
|
-
pdf_creater = PDFCreater(temp_pdf_path, docs, translation_config)
|
|
694
|
+
pdf_creater = PDFCreater(temp_pdf_path, docs, translation_config, mediabox_data)
|
|
681
695
|
result = pdf_creater.write(translation_config)
|
|
682
696
|
try:
|
|
683
697
|
if mono_watermark_first_page_doc_bytes:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "BabelDOC"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.1"
|
|
4
4
|
description = "Yet Another Document Translator"
|
|
5
5
|
license = "AGPL-3.0"
|
|
6
6
|
readme = "README.md"
|
|
@@ -148,7 +148,7 @@ pythonpath = [".", "src"]
|
|
|
148
148
|
testpaths = ["tests"]
|
|
149
149
|
|
|
150
150
|
[bumpver]
|
|
151
|
-
current_version = "0.3.
|
|
151
|
+
current_version = "0.3.1"
|
|
152
152
|
version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
|
|
153
153
|
|
|
154
154
|
[bumpver.file_patterns]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.0"
|
|
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.3.0 → babeldoc-0.3.1}/babeldoc/document_il/babeldoc_exception/BabelDOCException.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
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/babeldoc/document_il/utils/priority_thread_pool_executor.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
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md
RENAMED
|
File without changes
|
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-with-transparent-background.png
RENAMED
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-big-logo-with-transparent-background.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-small-logo-with-transparent-background.png
RENAMED
|
File without changes
|
{babeldoc-0.3.0 → babeldoc-0.3.1}/docs/images/babeldoc-small-logo-with-transparent-background.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|