BabelDOC 0.1.10__tar.gz → 0.1.11__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.1.10 → babeldoc-0.1.11}/PKG-INFO +1 -1
- babeldoc-0.1.11/babeldoc/__init__.py +1 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/backend/pdf_creater.py +48 -8
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/main.py +1 -1
- {babeldoc-0.1.10 → babeldoc-0.1.11}/pyproject.toml +2 -2
- {babeldoc-0.1.10 → babeldoc-0.1.11}/uv.lock +1 -1
- babeldoc-0.1.10/babeldoc/__init__.py +0 -1
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/dependabot.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/labels.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/release-drafter.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/codeql.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/docs.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/labeler.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/publish-to-pypi.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/test.yml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.gitignore +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/.pre-commit-config.yaml +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/LICENSE +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/README.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/asynchronize/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/const.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/converter.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/backend/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/frontend/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/frontend/il_creater.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.rnc +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.rng +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.xsd +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/add_debug_information.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/il_translator.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/layout_parser.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/remove_descent.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/styles_and_formulas.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/typesetting.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/cache.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/translator.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/fontmap.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/layout_helper.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/style_helper.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/xml_converter.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/README.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/__init__.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/doclayout.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/rpc_doclayout.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/high_level.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/pdfinterp.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/progress_monitor.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/translation_config.py +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CODE_OF_CONDUCT.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CONTRIBUTING.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CONTRIBUTOR_REWARD.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/README.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/README.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/deploy.sh +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-banner.png +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-contributor_reward_example.png +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-preview.gif +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/index.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/intro-to-pdf-object.md +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/requirements.txt +0 -0
- {babeldoc-0.1.10 → babeldoc-0.1.11}/mkdocs.yml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.11"
|
|
@@ -385,7 +385,53 @@ class PDFCreater:
|
|
|
385
385
|
f"{basename}{debug_suffix}.{translation_config.lang_out}.dual.pdf",
|
|
386
386
|
)
|
|
387
387
|
translation_config.raise_if_cancelled()
|
|
388
|
-
|
|
388
|
+
original_pdf = pymupdf.open(self.original_pdf_path)
|
|
389
|
+
translated_pdf = pdf
|
|
390
|
+
|
|
391
|
+
# Create a new PDF for side-by-side pages
|
|
392
|
+
dual = pymupdf.open()
|
|
393
|
+
page_count = min(original_pdf.page_count, translated_pdf.page_count)
|
|
394
|
+
|
|
395
|
+
for page_id in range(page_count):
|
|
396
|
+
# Get pages from both PDFs
|
|
397
|
+
orig_page = original_pdf[page_id]
|
|
398
|
+
trans_page = translated_pdf[page_id]
|
|
399
|
+
|
|
400
|
+
# Calculate total width and use max height
|
|
401
|
+
total_width = orig_page.rect.width + trans_page.rect.width
|
|
402
|
+
max_height = max(orig_page.rect.height, trans_page.rect.height)
|
|
403
|
+
|
|
404
|
+
# Create new page with combined width
|
|
405
|
+
dual_page = dual.new_page(width=total_width, height=max_height)
|
|
406
|
+
|
|
407
|
+
# Define rectangles for left and right sides
|
|
408
|
+
left_width = (
|
|
409
|
+
orig_page.rect.width
|
|
410
|
+
if not translation_config.dual_translate_first
|
|
411
|
+
else trans_page.rect.width
|
|
412
|
+
)
|
|
413
|
+
rect_left = pymupdf.Rect(0, 0, left_width, max_height)
|
|
414
|
+
rect_right = pymupdf.Rect(left_width, 0, total_width, max_height)
|
|
415
|
+
|
|
416
|
+
# Show pages according to dual_translate_first setting
|
|
417
|
+
if translation_config.dual_translate_first:
|
|
418
|
+
# Show translated page on left and original on right
|
|
419
|
+
rect_left, rect_right = rect_right, rect_left
|
|
420
|
+
|
|
421
|
+
# Show original page on left and translated on right (default)
|
|
422
|
+
dual_page.show_pdf_page(
|
|
423
|
+
rect_left,
|
|
424
|
+
original_pdf,
|
|
425
|
+
page_id,
|
|
426
|
+
keep_proportion=True,
|
|
427
|
+
)
|
|
428
|
+
dual_page.show_pdf_page(
|
|
429
|
+
rect_right,
|
|
430
|
+
translated_pdf,
|
|
431
|
+
page_id,
|
|
432
|
+
keep_proportion=True,
|
|
433
|
+
)
|
|
434
|
+
|
|
389
435
|
if translation_config.debug:
|
|
390
436
|
translation_config.raise_if_cancelled()
|
|
391
437
|
try:
|
|
@@ -395,13 +441,7 @@ class PDFCreater:
|
|
|
395
441
|
"Failed to write debug info to dual PDF",
|
|
396
442
|
exc_info=True,
|
|
397
443
|
)
|
|
398
|
-
|
|
399
|
-
page_count = pdf.page_count
|
|
400
|
-
for page_id in range(page_count):
|
|
401
|
-
if translation_config.dual_translate_first:
|
|
402
|
-
dual.move_page(page_count + page_id, page_id * 2)
|
|
403
|
-
else:
|
|
404
|
-
dual.move_page(page_count + page_id, page_id * 2 + 1)
|
|
444
|
+
|
|
405
445
|
dual.save(
|
|
406
446
|
dual_out_path,
|
|
407
447
|
garbage=3,
|
|
@@ -20,7 +20,7 @@ from babeldoc.document_il.translator.translator import set_translate_rate_limite
|
|
|
20
20
|
from babeldoc.translation_config import TranslationConfig
|
|
21
21
|
|
|
22
22
|
logger = logging.getLogger(__name__)
|
|
23
|
-
__version__ = "0.1.
|
|
23
|
+
__version__ = "0.1.11"
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def create_parser():
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "BabelDOC"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.11"
|
|
4
4
|
description = "Yet Another Document Translator"
|
|
5
5
|
license = "AGPL-3.0"
|
|
6
6
|
readme = "README.md"
|
|
@@ -124,7 +124,7 @@ dev = [
|
|
|
124
124
|
]
|
|
125
125
|
|
|
126
126
|
[bumpver]
|
|
127
|
-
current_version = "0.1.
|
|
127
|
+
current_version = "0.1.11"
|
|
128
128
|
version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
|
|
129
129
|
|
|
130
130
|
[bumpver.file_patterns]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.10"
|
|
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
|
{babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md
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
|