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.
Files changed (75) hide show
  1. {babeldoc-0.1.10 → babeldoc-0.1.11}/PKG-INFO +1 -1
  2. babeldoc-0.1.11/babeldoc/__init__.py +1 -0
  3. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/backend/pdf_creater.py +48 -8
  4. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/main.py +1 -1
  5. {babeldoc-0.1.10 → babeldoc-0.1.11}/pyproject.toml +2 -2
  6. {babeldoc-0.1.10 → babeldoc-0.1.11}/uv.lock +1 -1
  7. babeldoc-0.1.10/babeldoc/__init__.py +0 -1
  8. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  9. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  10. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/dependabot.yml +0 -0
  11. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/labels.yml +0 -0
  12. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/release-drafter.yml +0 -0
  13. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/codeql.yml +0 -0
  14. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/docs.yml +0 -0
  15. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/labeler.yml +0 -0
  16. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/publish-to-pypi.yml +0 -0
  17. {babeldoc-0.1.10 → babeldoc-0.1.11}/.github/workflows/test.yml +0 -0
  18. {babeldoc-0.1.10 → babeldoc-0.1.11}/.gitignore +0 -0
  19. {babeldoc-0.1.10 → babeldoc-0.1.11}/.pre-commit-config.yaml +0 -0
  20. {babeldoc-0.1.10 → babeldoc-0.1.11}/LICENSE +0 -0
  21. {babeldoc-0.1.10 → babeldoc-0.1.11}/README.md +0 -0
  22. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/asynchronize/__init__.py +0 -0
  23. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/const.py +0 -0
  24. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/converter.py +0 -0
  25. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/__init__.py +0 -0
  26. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/backend/__init__.py +0 -0
  27. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/frontend/__init__.py +0 -0
  28. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/frontend/il_creater.py +0 -0
  29. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.py +0 -0
  30. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.rnc +0 -0
  31. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.rng +0 -0
  32. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/il_version_1.xsd +0 -0
  33. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/__init__.py +0 -0
  34. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  35. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/il_translator.py +0 -0
  36. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/layout_parser.py +0 -0
  37. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
  38. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/remove_descent.py +0 -0
  39. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/styles_and_formulas.py +0 -0
  40. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/midend/typesetting.py +0 -0
  41. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/__init__.py +0 -0
  42. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/cache.py +0 -0
  43. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/translator/translator.py +0 -0
  44. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/fontmap.py +0 -0
  45. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/layout_helper.py +0 -0
  46. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/utils/style_helper.py +0 -0
  47. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/document_il/xml_converter.py +0 -0
  48. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/README.md +0 -0
  49. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/__init__.py +0 -0
  50. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/doclayout.py +0 -0
  51. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/docvision/rpc_doclayout.py +0 -0
  52. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/high_level.py +0 -0
  53. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/pdfinterp.py +0 -0
  54. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/progress_monitor.py +0 -0
  55. {babeldoc-0.1.10 → babeldoc-0.1.11}/babeldoc/translation_config.py +0 -0
  56. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CODE_OF_CONDUCT.md +0 -0
  57. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CONTRIBUTING.md +0 -0
  58. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/CONTRIBUTOR_REWARD.md +0 -0
  59. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  60. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  61. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  62. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  63. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  64. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/README.md +0 -0
  65. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  66. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  67. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/README.md +0 -0
  68. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/deploy.sh +0 -0
  69. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-banner.png +0 -0
  70. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  71. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/images/babeldoc-preview.gif +0 -0
  72. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/index.md +0 -0
  73. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/intro-to-pdf-object.md +0 -0
  74. {babeldoc-0.1.10 → babeldoc-0.1.11}/docs/requirements.txt +0 -0
  75. {babeldoc-0.1.10 → babeldoc-0.1.11}/mkdocs.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.1.10
3
+ Version: 0.1.11
4
4
  Summary: Yet Another Document Translator
5
5
  Project-URL: Homepage, https://github.com/funstory-ai/BabelDOC
6
6
  Project-URL: Issues, https://github.com/funstory-ai/BabelDOC/issues
@@ -0,0 +1 @@
1
+ __version__ = "0.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
- dual = pymupdf.open(self.original_pdf_path)
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
- dual.insert_file(pdf)
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.10"
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.10"
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.10"
127
+ current_version = "0.1.11"
128
128
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
129
129
 
130
130
  [bumpver.file_patterns]
@@ -48,7 +48,7 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.1.10"
51
+ version = "0.1.11"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
@@ -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