BabelDOC 0.3.43__tar.gz → 0.3.45__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 (108) hide show
  1. babeldoc-0.3.45/.github/PULL_REQUEST_TEMPLATE.md +65 -0
  2. {babeldoc-0.3.43 → babeldoc-0.3.45}/PKG-INFO +1 -1
  3. babeldoc-0.3.45/babeldoc/__init__.py +1 -0
  4. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/const.py +1 -1
  5. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/backend/pdf_creater.py +11 -7
  6. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/layout_parser.py +3 -1
  7. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/styles_and_formulas.py +1 -0
  8. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/table_parser.py +3 -1
  9. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/translator/translator.py +1 -0
  10. babeldoc-0.3.45/babeldoc/document_il/utils/mupdf_helper.py +10 -0
  11. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/docvision/doclayout.py +4 -1
  12. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/docvision/rpc_doclayout.py +3 -1
  13. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/docvision/table_detection/rapidocr.py +3 -1
  14. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/main.py +1 -1
  15. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/pdfinterp.py +7 -1
  16. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/CONTRIBUTING.md +7 -1
  17. {babeldoc-0.3.43 → babeldoc-0.3.45}/pyproject.toml +2 -2
  18. {babeldoc-0.3.43 → babeldoc-0.3.45}/uv.lock +1 -1
  19. babeldoc-0.3.43/babeldoc/__init__.py +0 -1
  20. {babeldoc-0.3.43 → babeldoc-0.3.45}/.cursorignore +0 -0
  21. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  22. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  23. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
  24. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/dependabot.yml +0 -0
  25. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/labels.yml +0 -0
  26. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/release-drafter.yml +0 -0
  27. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/codeql.yml +0 -0
  28. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/docs.yml +0 -0
  29. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/labeler.yml +0 -0
  30. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/lint.yml +0 -0
  31. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/pr-lint.yml +0 -0
  32. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/publish-to-pypi.yml +0 -0
  33. {babeldoc-0.3.43 → babeldoc-0.3.45}/.github/workflows/test.yml +0 -0
  34. {babeldoc-0.3.43 → babeldoc-0.3.45}/.gitignore +0 -0
  35. {babeldoc-0.3.43 → babeldoc-0.3.45}/.pre-commit-config.yaml +0 -0
  36. {babeldoc-0.3.43 → babeldoc-0.3.45}/LICENSE +0 -0
  37. {babeldoc-0.3.43 → babeldoc-0.3.45}/README.md +0 -0
  38. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/assets/assets.py +0 -0
  39. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  40. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/asynchronize/__init__.py +0 -0
  41. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/converter.py +0 -0
  42. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/__init__.py +0 -0
  43. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/babeldoc_exception/BabelDOCException.py +0 -0
  44. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/backend/__init__.py +0 -0
  45. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/frontend/__init__.py +0 -0
  46. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/frontend/il_creater.py +0 -0
  47. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/il_version_1.py +0 -0
  48. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/il_version_1.rnc +0 -0
  49. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/il_version_1.rng +0 -0
  50. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/il_version_1.xsd +0 -0
  51. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/__init__.py +0 -0
  52. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  53. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/detect_scanned_file.py +0 -0
  54. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/il_translator.py +0 -0
  55. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/il_translator_llm_only.py +0 -0
  56. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
  57. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/remove_descent.py +0 -0
  58. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/midend/typesetting.py +0 -0
  59. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/translator/__init__.py +0 -0
  60. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/translator/cache.py +0 -0
  61. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/atomic_integer.py +0 -0
  62. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/fontmap.py +0 -0
  63. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/layout_helper.py +0 -0
  64. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/paragraph_helper.py +0 -0
  65. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/priority_thread_pool_executor.py +0 -0
  66. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/style_helper.py +0 -0
  67. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/utils/zstd_helper.py +0 -0
  68. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/document_il/xml_converter.py +0 -0
  69. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/docvision/README.md +0 -0
  70. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/docvision/__init__.py +0 -0
  71. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/format/office/__init__.py +0 -0
  72. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/high_level.py +0 -0
  73. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/progress_monitor.py +0 -0
  74. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/result_merger.py +0 -0
  75. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/split_manager.py +0 -0
  76. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/tools/generate_font_metadata.py +0 -0
  77. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/tools/italic_assistance.py +0 -0
  78. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/tools/italic_recognize_tool.py +0 -0
  79. {babeldoc-0.3.43 → babeldoc-0.3.45}/babeldoc/translation_config.py +0 -0
  80. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/CODE_OF_CONDUCT.md +0 -0
  81. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/CONTRIBUTOR_REWARD.md +0 -0
  82. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  83. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  84. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  85. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  86. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  87. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/README.md +0 -0
  88. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  89. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  90. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/README.md +0 -0
  91. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/deploy.sh +0 -0
  92. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-banner.png +0 -0
  93. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  94. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  95. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  96. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  97. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-big-logo.png +0 -0
  98. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  99. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-preview.gif +0 -0
  100. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  101. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  102. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/images/babeldoc-small-logo.png +0 -0
  103. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/index.md +0 -0
  104. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/intro-to-pdf-object.md +0 -0
  105. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/requirements.txt +0 -0
  106. {babeldoc-0.3.43 → babeldoc-0.3.45}/docs/supported_languages.md +0 -0
  107. {babeldoc-0.3.43 → babeldoc-0.3.45}/mkdocs.yml +0 -0
  108. {babeldoc-0.3.43 → babeldoc-0.3.45}/tests/test_translation_config.py +0 -0
@@ -0,0 +1,65 @@
1
+ ### PR Title
2
+
3
+ <!-- Please fill in a concise and clear PR title below -->
4
+ [PR] <Your concise title here>
5
+
6
+ ### Related Issue(s)
7
+
8
+ <!-- If this PR closes or is related to one or more issues, please list them here (e.g., #37) -->
9
+ <!-- e.g.: Closes #37, Relates to #42 -->
10
+
11
+ ### Motivation and Context
12
+
13
+ <!-- Why is this change required? What problem does it solve? -->
14
+ <!-- If it fixes an open issue, please link to the issue here. -->
15
+
16
+ ### Summary of Changes
17
+
18
+ <!-- What does this PR introduce or fix? Please describe concisely. -->
19
+
20
+ ### PR Type
21
+
22
+ <!-- What kind of change is this? Please select one or more -->
23
+ - [ ] ✨ Enhancement
24
+ - [ ] 🐛 Bug Fix
25
+ - [ ] 📚 Documentation
26
+ - [ ] 🏗️ Refactor
27
+ - [ ] 🧪 Test
28
+ - [ ] 🧹 Chore
29
+
30
+ ### Breaking Changes
31
+
32
+ <!-- Does this PR introduce any breaking changes? If so, please describe them. -->
33
+ <!-- - [ ] Yes, this PR introduces breaking changes.
34
+ <!-- - [ ] No, this PR does not introduce breaking changes. -->
35
+ <!-- Detailed description of breaking changes (if any): -->
36
+
37
+ ### Contributor Checklist
38
+
39
+ - [ ] I have fully read and understood the **[CONTRIBUTING.md](https://funstory-ai.github.io/BabelDOC/CONTRIBUTING/)** guide.
40
+ - [ ] I have performed a self-review of my own code.
41
+ - [ ] My changes follow the project's code style and guidelines
42
+ - [ ] I have linked the related issue(s) in the description above (if applicable)
43
+ - [ ] I have updated relevant documentation (if applicable)
44
+ - [ ] I have added necessary tests that prove my fix is effective or that my feature works (if applicable)
45
+ - [ ] All new and existing tests passed locally with my changes
46
+ - [ ] My changes generate no new warnings or errors
47
+ - [ ] I understand that due to limited maintainer resources, only small PRs are accepted. Suggestions with proof-of-concept patches are appreciated, and my patch may be rewritten if necessary.
48
+
49
+ ### Testing Instructions
50
+
51
+ <!-- Please provide clear and concise step-by-step instructions on how to test your changes. -->
52
+ <!-- e.g.: -->
53
+ <!-- 1. Check out this branch. -->
54
+ <!-- 2. Run `...` to install dependencies. -->
55
+ <!-- 3. Run `...` to start the application/run the script. -->
56
+ <!-- 4. Navigate to `...` or observe `...` -->
57
+ <!-- 5. Verify that `...` (expected outcome). -->
58
+
59
+ ### Screenshots (if applicable)
60
+
61
+ <!-- If your changes include UI modifications, please add screenshots or GIFs to show the before and after. -->
62
+
63
+ ### Additional Notes
64
+
65
+ <!-- Is there anything else the reviewer should know? For example, any dependencies, or potential impacts. -->
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.3.43
3
+ Version: 0.3.45
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.3.45"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.3.43"
6
+ __version__ = "0.3.45"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -386,20 +386,22 @@ class PDFCreater:
386
386
  # Get pages from both PDFs
387
387
  orig_page = original_pdf[page_id]
388
388
  trans_page = translated_pdf[page_id]
389
-
390
- # Calculate total width and use max height
389
+ rotate_angle = orig_page.rotation
391
390
  total_width = orig_page.rect.width + trans_page.rect.width
392
391
  max_height = max(orig_page.rect.height, trans_page.rect.height)
393
-
394
- # Create new page with combined width
395
- dual_page = dual.new_page(width=total_width, height=max_height)
396
-
397
- # Define rectangles for left and right sides
398
392
  left_width = (
399
393
  orig_page.rect.width
400
394
  if not translation_config.dual_translate_first
401
395
  else trans_page.rect.width
402
396
  )
397
+
398
+ orig_page.set_rotation(0)
399
+ trans_page.set_rotation(0)
400
+
401
+ # Create new page with combined width
402
+ dual_page = dual.new_page(width=total_width, height=max_height)
403
+
404
+ # Define rectangles for left and right sides
403
405
  rect_left = pymupdf.Rect(0, 0, left_width, max_height)
404
406
  rect_right = pymupdf.Rect(left_width, 0, total_width, max_height)
405
407
 
@@ -414,6 +416,7 @@ class PDFCreater:
414
416
  original_pdf,
415
417
  page_id,
416
418
  keep_proportion=True,
419
+ rotate=-rotate_angle,
417
420
  )
418
421
  except Exception as e:
419
422
  logger.warning(
@@ -429,6 +432,7 @@ class PDFCreater:
429
432
  translated_pdf,
430
433
  page_id,
431
434
  keep_proportion=True,
435
+ rotate=-rotate_angle,
432
436
  )
433
437
  except Exception as e:
434
438
  logger.warning(
@@ -6,6 +6,7 @@ import numpy as np
6
6
  from pymupdf import Document
7
7
 
8
8
  from babeldoc.document_il import il_version_1
9
+ from babeldoc.document_il.utils.mupdf_helper import get_no_rotation_img
9
10
  from babeldoc.document_il.utils.style_helper import GREEN
10
11
  from babeldoc.translation_config import TranslationConfig
11
12
 
@@ -124,7 +125,8 @@ class LayoutParser:
124
125
  # Convert coordinate system from picture to il
125
126
  # system to the il coordinate system
126
127
  x0, y0, x1, y1 = layout.xyxy
127
- pix = mupdf_doc[page.page_number].get_pixmap()
128
+ pix = get_no_rotation_img(mupdf_doc[page.page_number])
129
+ # pix = mupdf_doc[page.page_number].get_pixmap()
128
130
  h, w = pix.height, pix.width
129
131
  x0, y0, x1, y1 = (
130
132
  np.clip(int(x0 - 1), 0, w - 1),
@@ -607,6 +607,7 @@ class StylesAndFormulas:
607
607
  r"|.*Mincho.*"
608
608
  r"|.*Amerigo.*"
609
609
  r"|.*MSGloriolaIIStd.*"
610
+ r"|.*CMU.+"
610
611
  r")$"
611
612
  )
612
613
  precise_formula_font_pattern = (
@@ -6,6 +6,7 @@ import numpy as np
6
6
  from pymupdf import Document
7
7
 
8
8
  from babeldoc.document_il import il_version_1
9
+ from babeldoc.document_il.utils.mupdf_helper import get_no_rotation_img
9
10
  from babeldoc.document_il.utils.style_helper import GREEN
10
11
  from babeldoc.translation_config import TranslationConfig
11
12
 
@@ -136,7 +137,8 @@ class TableParser:
136
137
  # Convert coordinate system from picture to il
137
138
  # system to the il coordinate system
138
139
  x0, y0, x1, y1 = layout.xyxy
139
- pix = mupdf_doc[page.page_number].get_pixmap()
140
+ # pix = mupdf_doc[page.page_number].get_pixmap()
141
+ pix = get_no_rotation_img(mupdf_doc[page.page_number])
140
142
  h, w = pix.height, pix.width
141
143
  x0, y0, x1, y1 = (
142
144
  np.clip(int(x0 - 1), 0, w - 1),
@@ -255,6 +255,7 @@ class OpenAITranslator(BaseTranslator):
255
255
  response = self.client.chat.completions.create(
256
256
  model=self.model,
257
257
  **self.options,
258
+ max_tokens=2048,
258
259
  messages=[
259
260
  {
260
261
  "role": "user",
@@ -0,0 +1,10 @@
1
+ import pymupdf
2
+
3
+
4
+ def get_no_rotation_img(page: pymupdf.Page):
5
+ # return page.get_pixmap(dpi=72)
6
+ original_rotation = page.rotation
7
+ page.set_rotation(0)
8
+ pix = page.get_pixmap(dpi=72)
9
+ page.set_rotation(original_rotation)
10
+ return pix
@@ -9,6 +9,8 @@ from collections.abc import Generator
9
9
  import cv2
10
10
  import numpy as np
11
11
 
12
+ from babeldoc.document_il.utils.mupdf_helper import get_no_rotation_img
13
+
12
14
  try:
13
15
  import onnx
14
16
  import onnxruntime
@@ -282,7 +284,8 @@ class OnnxModel(DocLayoutModel):
282
284
  for page in pages:
283
285
  translate_config.raise_if_cancelled()
284
286
  with self.lock:
285
- pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
287
+ # pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
288
+ pix = get_no_rotation_img(mupdf_doc[page.page_number])
286
289
  image = np.fromstring(pix.samples, np.uint8).reshape(
287
290
  pix.height,
288
291
  pix.width,
@@ -14,6 +14,7 @@ from tenacity import stop_after_attempt
14
14
  from tenacity import wait_exponential
15
15
 
16
16
  import babeldoc
17
+ from babeldoc.document_il.utils.mupdf_helper import get_no_rotation_img
17
18
  from babeldoc.docvision.doclayout import DocLayoutModel
18
19
  from babeldoc.docvision.doclayout import YoloBox
19
20
  from babeldoc.docvision.doclayout import YoloResult
@@ -256,7 +257,8 @@ class RpcDocLayoutModel(DocLayoutModel):
256
257
  ):
257
258
  translate_config.raise_if_cancelled()
258
259
  with self.lock:
259
- pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
260
+ # pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
261
+ pix = get_no_rotation_img(mupdf_doc[page.page_number])
260
262
  image = np.fromstring(pix.samples, np.uint8).reshape(
261
263
  pix.height,
262
264
  pix.width,
@@ -6,6 +6,7 @@ from collections.abc import Generator
6
6
  import cv2
7
7
  import numpy as np
8
8
  from babeldoc.assets.assets import get_table_detection_rapidocr_model_path
9
+ from babeldoc.document_il.utils.mupdf_helper import get_no_rotation_img
9
10
  from babeldoc.docvision.doclayout import YoloBox
10
11
  from babeldoc.docvision.doclayout import YoloResult
11
12
  from rapidocr_onnxruntime import RapidOCR
@@ -236,7 +237,8 @@ class RapidOCRModel:
236
237
  for page in pages:
237
238
  translate_config.raise_if_cancelled()
238
239
  with self.lock:
239
- pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
240
+ # pix = mupdf_doc[page.page_number].get_pixmap(dpi=72)
241
+ pix = get_no_rotation_img(mupdf_doc[page.page_number])
240
242
  image = np.fromstring(pix.samples, np.uint8).reshape(
241
243
  pix.height,
242
244
  pix.width,
@@ -23,7 +23,7 @@ from babeldoc.translation_config import TranslationConfig
23
23
  from babeldoc.translation_config import WatermarkOutputMode
24
24
 
25
25
  logger = logging.getLogger(__name__)
26
- __version__ = "0.3.43"
26
+ __version__ = "0.3.45"
27
27
 
28
28
 
29
29
  def create_parser():
@@ -377,6 +377,11 @@ class PDFPageInterpreterEx(PDFPageInterpreter):
377
377
  ctm = (0, 1, -1, 0, y1, -x0)
378
378
  else:
379
379
  ctm = (1, 0, 0, 1, -x0, -y0)
380
+ # ctm_for_ops = copy.copy(ctm)
381
+ ctm_for_ops = (1, 0, 0, 1, -x0, -y0)
382
+ ctm = (1, 0, 0, 1, -x0, -y0)
383
+ if page.rotate == 90 or page.rotate == 270:
384
+ (x0, y0, x1, y1) = (y0, x1, y1, x0)
380
385
  self.il_creater.on_page_start()
381
386
  self.il_creater.on_page_crop_box(x0, y0, x1, y1)
382
387
  self.device.begin_page(page, ctm)
@@ -391,7 +396,8 @@ class PDFPageInterpreterEx(PDFPageInterpreter):
391
396
  # )
392
397
  # for obj in page.contents:
393
398
  # self.obj_patch[obj.objid] = ""
394
- return f"q {ops_base} Q 1 0 0 1 {x0} {y0} cm"
399
+ return f"q {ops_base} Q {' '.join(f'{x:f}' for x in ctm_for_ops)} cm"
400
+ # return f"q {ops_base} Q 1 0 0 1 {x0} {y0} cm"
395
401
 
396
402
  def render_contents(
397
403
  self,
@@ -28,6 +28,12 @@ Please pay special attention to:
28
28
  - This project is not intended for direct end-user use, and the supported translators are mainly for debugging purposes. Unless it clearly helps with development and debugging, PRs for directly adding translators will not be accepted.
29
29
  - You can directly use [PDFMathTranslate](https://github.com/Byaidu/PDFMathTranslate) to get support for more translators.
30
30
 
31
+ ### **If you want to add new accelerator support for the layout model**
32
+
33
+ - This project only plans to support various accelerators through onnxruntime. Please submit your accelerator support directly to onnxruntime.
34
+
35
+ - Additionally, [translation_config.py](https://github.com/funstory-ai/BabelDOC/blob/9e5be3a05c15ecae98024ba695e4a2db1412c062/babeldoc/translation_config.py#L41) shows that the layout model implementation actually used in this project is passed in from outside. You can implement a layout model class according to the relevant interface, and then pass it through this parameter at runtime.
36
+
31
37
  ### **If you wish to contribute to BabelDOC**
32
38
 
33
39
  > [!TIP]
@@ -40,7 +46,7 @@ Please pay special attention to:
40
46
  >
41
47
  > Due to the current high rate of code changes, this project only accepts small PRs. If you would like to suggest a change and you include a patch as a proof-of-concept, that would be great. However, please do not be offended if we rewrite your patch from scratch.
42
48
  >
43
- > Please discuss with the maintainers in the [Issue](https://github.com/funstory-ai/BabelDOC/issues) before sending a PR.
49
+ > **This project cannot accept all PRs. We recommend that you discuss with the maintainers via [Issue](https://github.com/funstory-ai/BabelDOC/issues) before submitting a PR.**
44
50
 
45
51
  [//]: # (> We welcome pull requests and will review your contributions.)
46
52
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.3.43"
3
+ version = "0.3.45"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -150,7 +150,7 @@ pythonpath = [".", "src"]
150
150
  testpaths = ["tests"]
151
151
 
152
152
  [bumpver]
153
- current_version = "0.3.43"
153
+ current_version = "0.3.45"
154
154
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
155
155
 
156
156
  [bumpver.file_patterns]
@@ -48,7 +48,7 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.3.43"
51
+ version = "0.3.45"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
@@ -1 +0,0 @@
1
- __version__ = "0.3.43"
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