BabelDOC 0.1.30__tar.gz → 0.1.32__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 (90) hide show
  1. {babeldoc-0.1.30 → babeldoc-0.1.32}/PKG-INFO +1 -1
  2. babeldoc-0.1.32/babeldoc/__init__.py +1 -0
  3. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/const.py +1 -1
  4. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/frontend/il_creater.py +30 -0
  5. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/styles_and_formulas.py +1 -1
  6. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/main.py +1 -1
  7. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/CONTRIBUTING.md +2 -0
  8. {babeldoc-0.1.30 → babeldoc-0.1.32}/pyproject.toml +2 -2
  9. {babeldoc-0.1.30 → babeldoc-0.1.32}/uv.lock +1 -1
  10. babeldoc-0.1.30/babeldoc/__init__.py +0 -1
  11. {babeldoc-0.1.30 → babeldoc-0.1.32}/.cursorignore +0 -0
  12. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  13. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  14. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/dependabot.yml +0 -0
  15. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/labels.yml +0 -0
  16. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/release-drafter.yml +0 -0
  17. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/workflows/codeql.yml +0 -0
  18. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/workflows/docs.yml +0 -0
  19. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/workflows/labeler.yml +0 -0
  20. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/workflows/publish-to-pypi.yml +0 -0
  21. {babeldoc-0.1.30 → babeldoc-0.1.32}/.github/workflows/test.yml +0 -0
  22. {babeldoc-0.1.30 → babeldoc-0.1.32}/.gitignore +0 -0
  23. {babeldoc-0.1.30 → babeldoc-0.1.32}/.pre-commit-config.yaml +0 -0
  24. {babeldoc-0.1.30 → babeldoc-0.1.32}/LICENSE +0 -0
  25. {babeldoc-0.1.30 → babeldoc-0.1.32}/README.md +0 -0
  26. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/assets/assets.py +0 -0
  27. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  28. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/asynchronize/__init__.py +0 -0
  29. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/converter.py +0 -0
  30. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/__init__.py +0 -0
  31. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/babeldoc_exception/BabelDOCException.py +0 -0
  32. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/backend/__init__.py +0 -0
  33. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/backend/pdf_creater.py +0 -0
  34. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/frontend/__init__.py +0 -0
  35. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/il_version_1.py +0 -0
  36. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/il_version_1.rnc +0 -0
  37. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/il_version_1.rng +0 -0
  38. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/il_version_1.xsd +0 -0
  39. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/__init__.py +0 -0
  40. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  41. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/detect_scanned_file.py +0 -0
  42. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/il_translator.py +0 -0
  43. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/layout_parser.py +0 -0
  44. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/paragraph_finder.py +2 -2
  45. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/remove_descent.py +0 -0
  46. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/midend/typesetting.py +0 -0
  47. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/translator/__init__.py +0 -0
  48. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/translator/cache.py +0 -0
  49. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/translator/translator.py +0 -0
  50. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/utils/fontmap.py +0 -0
  51. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/utils/layout_helper.py +0 -0
  52. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/utils/style_helper.py +0 -0
  53. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/document_il/xml_converter.py +0 -0
  54. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/docvision/README.md +0 -0
  55. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/docvision/__init__.py +0 -0
  56. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/docvision/doclayout.py +0 -0
  57. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/docvision/rpc_doclayout.py +0 -0
  58. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/high_level.py +0 -0
  59. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/pdfinterp.py +0 -0
  60. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/progress_monitor.py +0 -0
  61. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/tools/generate_font_metadata.py +0 -0
  62. {babeldoc-0.1.30 → babeldoc-0.1.32}/babeldoc/translation_config.py +0 -0
  63. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/CODE_OF_CONDUCT.md +0 -0
  64. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/CONTRIBUTOR_REWARD.md +0 -0
  65. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  66. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  67. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  68. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  69. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  70. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/README.md +0 -0
  71. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  72. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  73. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/README.md +0 -0
  74. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/deploy.sh +0 -0
  75. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-banner.png +0 -0
  76. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  77. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  78. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  79. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  80. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-big-logo.png +0 -0
  81. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  82. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-preview.gif +0 -0
  83. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  84. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  85. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/images/babeldoc-small-logo.png +0 -0
  86. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/index.md +0 -0
  87. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/intro-to-pdf-object.md +0 -0
  88. {babeldoc-0.1.30 → babeldoc-0.1.32}/docs/requirements.txt +0 -0
  89. {babeldoc-0.1.30 → babeldoc-0.1.32}/mkdocs.yml +0 -0
  90. {babeldoc-0.1.30 → babeldoc-0.1.32}/tests/test_translation_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.1.30
3
+ Version: 0.1.32
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.32"
@@ -2,7 +2,7 @@ import shutil
2
2
  import subprocess
3
3
  from pathlib import Path
4
4
 
5
- __version__ = "0.1.30"
5
+ __version__ = "0.1.32"
6
6
 
7
7
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
8
8
 
@@ -1,6 +1,7 @@
1
1
  import base64
2
2
  import logging
3
3
  import re
4
+ from functools import wraps
4
5
 
5
6
  import pdfminer.pdfinterp
6
7
  import pymupdf
@@ -8,6 +9,9 @@ from pdfminer.layout import LTChar
8
9
  from pdfminer.layout import LTFigure
9
10
  from pdfminer.pdffont import PDFCIDFont
10
11
  from pdfminer.pdffont import PDFFont
12
+ from pdfminer.pdfpage import PDFPage as PDFMinerPDFPage
13
+ from pdfminer.pdftypes import PDFObjRef as PDFMinerPDFObjRef
14
+ from pdfminer.pdftypes import resolve1 as pdftypes_resolve1
11
15
  from pdfminer.psparser import PSLiteral
12
16
 
13
17
  from babeldoc.document_il import il_version_1
@@ -16,6 +20,26 @@ from babeldoc.translation_config import TranslationConfig
16
20
  logger = logging.getLogger(__name__)
17
21
 
18
22
 
23
+ def create_hook(func, hook):
24
+ @wraps(func)
25
+ def wrapper(*args, **kwargs):
26
+ hook(*args, **kwargs)
27
+ return func(*args, **kwargs)
28
+
29
+ return wrapper
30
+
31
+
32
+ def hook_pdfminer_pdf_page_init(*args):
33
+ attrs = args[3]
34
+ while isinstance(attrs["MediaBox"], PDFMinerPDFObjRef):
35
+ attrs["MediaBox"] = pdftypes_resolve1(attrs["MediaBox"])
36
+
37
+
38
+ PDFMinerPDFPage.__init__ = create_hook(
39
+ PDFMinerPDFPage.__init__, hook_pdfminer_pdf_page_init
40
+ )
41
+
42
+
19
43
  class ILCreater:
20
44
  stage_name = "Parse PDF and Create Intermediate Representation"
21
45
 
@@ -313,6 +337,12 @@ class ILCreater:
313
337
  pdf_style=pdf_style,
314
338
  xobj_id=char.xobj_id,
315
339
  )
340
+ if pdf_style.font_size == 0.0:
341
+ logger.warning(
342
+ "Font size is 0.0 for character %s. Skip it.",
343
+ char_unicode,
344
+ )
345
+ return
316
346
  self.current_page.pdf_character.append(pdf_char)
317
347
 
318
348
  def create_il(self):
@@ -479,7 +479,7 @@ class StylesAndFormulas:
479
479
  return bool(re.match(r"^[0-9, ]+$", text))
480
480
 
481
481
  def is_formulas_font(self, font_name: str) -> bool:
482
- pattern2 = r"^(Cambria|Cambria-BoldItalic|Cambria-Bold|Cambria-Italic|EUAlbertina.+|NimbusRomNo9L.+)$"
482
+ pattern2 = r"^(Cambria|Cambria-BoldItalic|Cambria-Bold|Cambria-Italic|EUAlbertina.+|NimbusRomNo9L.+|GlosaMath.+)$"
483
483
  if self.translation_config.formular_font_pattern:
484
484
  pattern = self.translation_config.formular_font_pattern
485
485
  else:
@@ -25,7 +25,7 @@ from babeldoc.translation_config import TranslationConfig
25
25
  from babeldoc.translation_config import WatermarkOutputMode
26
26
 
27
27
  logger = logging.getLogger(__name__)
28
- __version__ = "0.1.30"
28
+ __version__ = "0.1.32"
29
29
 
30
30
 
31
31
  def create_parser():
@@ -39,6 +39,8 @@ Please pay special attention to:
39
39
  > You can contact the maintainers in the pdf2zh discussion group.
40
40
  >
41
41
  > We welcome pull requests and will review your contributions.
42
+ >
43
+ > Sometimes we may not choose to accept your PR, but instead implement the related code ourselves. Please don't be offended if we implement the related code from scratch.
42
44
 
43
45
 
44
46
  1. Fork this repository and clone it locally.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.1.30"
3
+ version = "0.1.32"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -133,7 +133,7 @@ pythonpath = [".", "src"]
133
133
  testpaths = ["tests"]
134
134
 
135
135
  [bumpver]
136
- current_version = "0.1.30"
136
+ current_version = "0.1.32"
137
137
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
138
138
 
139
139
  [bumpver.file_patterns]
@@ -48,7 +48,7 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.1.30"
51
+ version = "0.1.32"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
@@ -1 +0,0 @@
1
- __version__ = "0.1.30"
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -307,10 +307,10 @@ class ParagraphFinder:
307
307
  "formula_caption",
308
308
  "isolate_formula",
309
309
  "table_footnote",
310
- "table",
311
- "figure",
312
310
  "table_caption",
313
311
  "figure_caption",
312
+ "table",
313
+ "figure",
314
314
  "abandon",
315
315
  "plain text",
316
316
  "tiny text",
File without changes
File without changes
File without changes
File without changes