convert-stream 2.2.6__tar.gz → 2.3__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.
- {convert_stream-2.2.6 → convert_stream-2.3}/PKG-INFO +5 -5
- {convert_stream-2.2.6 → convert_stream-2.3}/README.md +4 -4
- convert_stream-2.3/convert_stream/__init__.py +100 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/_version.py +2 -2
- convert_stream-2.2.6/convert_stream/stream.py → convert_stream-2.3/convert_stream/doc_stream.py +51 -18
- convert_stream-2.3/convert_stream/enum_libs/__init__.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/enum_libs/modules.py +25 -25
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/image/img_object.py +92 -85
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/pdf/__init__.py +2 -2
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/pdf/pdf_document.py +143 -73
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/pdf/pdf_page.py +18 -22
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/pdf/pdf_to_image.py +59 -49
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/table_files.py +1 -1
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream.egg-info/PKG-INFO +5 -5
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream.egg-info/SOURCES.txt +2 -1
- {convert_stream-2.2.6 → convert_stream-2.3}/pyproject.toml +1 -1
- convert_stream-2.2.6/convert_stream/__init__.py +0 -32
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/__main__.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/enum_libs/enums.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/image/__init__.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/pdf/image_to_pdf.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/sheets/__init__.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/sheets/load.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/sheets/parse.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/sheets/save.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/text/__init__.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/text/date.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/text/string.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream/text/terminal.py +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream.egg-info/dependency_links.txt +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream.egg-info/requires.txt +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/convert_stream.egg-info/top_level.txt +0 -0
- {convert_stream-2.2.6 → convert_stream-2.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: convert_stream
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3
|
|
4
4
|
Summary: Manipulação de documentos PDF e Imagens. Converter, Ler, rotacionar exportar etc.
|
|
5
5
|
Author: Bruno Chaves
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -24,12 +24,12 @@ pip3 install -r requirements.txt
|
|
|
24
24
|
>>> from file import File, Directory
|
|
25
25
|
>>> from pdflib import PdfStream
|
|
26
26
|
# instâncie o caminho do arquivo PDF e o diretório para exportar os dados.
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
file_pdf = File('path/to/file.pdf')
|
|
28
|
+
output_dir = Directory('path/to/save')
|
|
29
29
|
|
|
30
30
|
pdf_stream = PdfStream()
|
|
31
|
-
pdf_stream.add_file_pdf(
|
|
32
|
-
pdf_stream.to_files_pdf(
|
|
31
|
+
pdf_stream.add_file_pdf(file_pdf)
|
|
32
|
+
pdf_stream.to_files_pdf(output_dir) # isso irá converter cada página em um arquivo PDF
|
|
33
33
|
|
|
34
34
|
# Uso para unir vários arquivos PDF.
|
|
35
35
|
>>> from file import File, Directory
|
|
@@ -6,12 +6,12 @@ pip3 install -r requirements.txt
|
|
|
6
6
|
>>> from file import File, Directory
|
|
7
7
|
>>> from pdflib import PdfStream
|
|
8
8
|
# instâncie o caminho do arquivo PDF e o diretório para exportar os dados.
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
file_pdf = File('path/to/file.pdf')
|
|
10
|
+
output_dir = Directory('path/to/save')
|
|
11
11
|
|
|
12
12
|
pdf_stream = PdfStream()
|
|
13
|
-
pdf_stream.add_file_pdf(
|
|
14
|
-
pdf_stream.to_files_pdf(
|
|
13
|
+
pdf_stream.add_file_pdf(file_pdf)
|
|
14
|
+
pdf_stream.to_files_pdf(output_dir) # isso irá converter cada página em um arquivo PDF
|
|
15
15
|
|
|
16
16
|
# Uso para unir vários arquivos PDF.
|
|
17
17
|
>>> from file import File, Directory
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
from io import BytesIO
|
|
4
|
+
from typing import Union
|
|
5
|
+
from soup_files import File, Directory, LibraryDocs, InputFiles
|
|
6
|
+
|
|
7
|
+
from ._version import (
|
|
8
|
+
__module_name__, __author__, __license__, __modify_date__, __version__
|
|
9
|
+
)
|
|
10
|
+
from convert_stream.enum_libs.enums import *
|
|
11
|
+
from convert_stream.enum_libs.modules import (
|
|
12
|
+
LibPDF, LibDate, LibImage, LibPdfToImage, LibImageToPdf,
|
|
13
|
+
DEFAULT_LIB_PDF, DEFAULT_LIB_IMAGE, DEFAULT_LIB_PDF_TO_IMG,
|
|
14
|
+
DEFAULT_LIB_IMAGE_TO_PDF, ModPdfToImage, ModPagePdf, ModuleImage,
|
|
15
|
+
ModImageToPdf, MOD_FITZ, MOD_PYPDF, MOD_CANVAS, MOD_IMG_PIL, MOD_IMG_OPENCV,
|
|
16
|
+
)
|
|
17
|
+
from .text.terminal import print_title, print_line
|
|
18
|
+
from .text.string import (
|
|
19
|
+
FindText, ArrayString, MapText
|
|
20
|
+
)
|
|
21
|
+
from .text.date import ConvertStringDate
|
|
22
|
+
from convert_stream.image.img_object import (
|
|
23
|
+
ImageObject, Image, MatLike, get_hash_from_bytes, CollectionImages,
|
|
24
|
+
)
|
|
25
|
+
from convert_stream.pdf import (
|
|
26
|
+
PageDocumentPdf, DocumentPdf, ConvertImageToPdf, ConvertPdfToImages,
|
|
27
|
+
ModImageToPdf, ModDocPdf, CollectionPagePdf, DEFAULT_LIB_PDF,
|
|
28
|
+
DEFAULT_LIB_IMAGE_TO_PDF, DEFAULT_LIB_PDF_TO_IMG
|
|
29
|
+
)
|
|
30
|
+
from .doc_stream import PdfStream, SplitPdf
|
|
31
|
+
from .sheets import save_data, ReadFileSheet
|
|
32
|
+
from .table_files import (
|
|
33
|
+
get_void_df, create_df_from_file_pdf, create_map_from_values,
|
|
34
|
+
FileToTable, ColumnsTable, PdfFinder, SearchableTextPdf
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def __create_stream() -> PdfStream:
|
|
39
|
+
st = PdfStream()
|
|
40
|
+
st.clear()
|
|
41
|
+
return st
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def read_pdf(file: Union[str, File, bytes, BytesIO]) -> PdfStream:
|
|
45
|
+
_pdf_stream = __create_stream()
|
|
46
|
+
|
|
47
|
+
if isinstance(file, File):
|
|
48
|
+
_pdf_stream.add_file_pdf(file)
|
|
49
|
+
elif isinstance(file, str):
|
|
50
|
+
_pdf_stream.add_file_pdf(File(file))
|
|
51
|
+
elif isinstance(file, bytes):
|
|
52
|
+
_pdf_stream.add_document(DocumentPdf(BytesIO(file)))
|
|
53
|
+
elif isinstance(file, BytesIO):
|
|
54
|
+
_pdf_stream.add_document(DocumentPdf(file))
|
|
55
|
+
else:
|
|
56
|
+
raise ValueError()
|
|
57
|
+
return _pdf_stream
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def read_files_pdf(files: Union[list[str], list[File]]) -> PdfStream:
|
|
61
|
+
_pdf_stream = __create_stream()
|
|
62
|
+
if len(files) == 0:
|
|
63
|
+
return _pdf_stream
|
|
64
|
+
|
|
65
|
+
if isinstance(files[0], str):
|
|
66
|
+
for f in files:
|
|
67
|
+
_pdf_stream.add_file_pdf(File(f))
|
|
68
|
+
elif isinstance(files[0], File):
|
|
69
|
+
_pdf_stream.add_files_pdf(files)
|
|
70
|
+
else:
|
|
71
|
+
raise ValueError()
|
|
72
|
+
return _pdf_stream
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def read_image(image: Union[str, File, bytes, BytesIO]) -> PdfStream:
|
|
76
|
+
_pdf_stream = __create_stream()
|
|
77
|
+
if isinstance(image, str):
|
|
78
|
+
_pdf_stream.add_file_image(File(image))
|
|
79
|
+
elif isinstance(image, File):
|
|
80
|
+
_pdf_stream.add_image(ImageObject.create_from_file(image))
|
|
81
|
+
elif isinstance(image, bytes):
|
|
82
|
+
_pdf_stream.add_image(ImageObject.create_from_bytes(image))
|
|
83
|
+
elif isinstance(image, BytesIO):
|
|
84
|
+
image.seek(0)
|
|
85
|
+
_pdf_stream.add_image(ImageObject.create_from_bytes(image.getvalue()))
|
|
86
|
+
else:
|
|
87
|
+
raise ValueError()
|
|
88
|
+
return _pdf_stream
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def merge(stream: list[PdfStream]) -> PdfStream:
|
|
92
|
+
if len(stream) == 0:
|
|
93
|
+
raise ValueError()
|
|
94
|
+
if len(stream) == 1:
|
|
95
|
+
return stream[0]
|
|
96
|
+
else:
|
|
97
|
+
s = stream[0]
|
|
98
|
+
for pdf_stream in stream[1:]:
|
|
99
|
+
s.add_pages(pdf_stream.to_document().to_pages())
|
|
100
|
+
return s
|
convert_stream-2.2.6/convert_stream/stream.py → convert_stream-2.3/convert_stream/doc_stream.py
RENAMED
|
@@ -8,7 +8,6 @@ from convert_stream.enum_libs.modules import (
|
|
|
8
8
|
DEFAULT_LIB_PDF, DEFAULT_LIB_IMAGE, DEFAULT_LIB_PDF_TO_IMG, DEFAULT_LIB_IMAGE_TO_PDF,
|
|
9
9
|
)
|
|
10
10
|
from convert_stream.enum_libs.enums import LibPDF, LibImage, LibImageToPdf, LibPdfToImage
|
|
11
|
-
from convert_stream.text.string import FindText
|
|
12
11
|
from convert_stream.pdf.pdf_page import PageDocumentPdf
|
|
13
12
|
from convert_stream.image.img_object import ImageObject, CollectionImages
|
|
14
13
|
from convert_stream.pdf.pdf_document import DocumentPdf, CollectionPagePdf
|
|
@@ -108,22 +107,43 @@ class PdfStream(object):
|
|
|
108
107
|
def add_directory_image(self, src_dir: Directory, max_files: int = 4000) -> None:
|
|
109
108
|
self.collection_images.add_directory_images(src_dir, max_files=max_files)
|
|
110
109
|
|
|
111
|
-
def to_document(self) -> DocumentPdf:
|
|
110
|
+
def to_document(self, *, land_scape: bool = False, a4: bool = False) -> DocumentPdf:
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
Converte os documentos adicionados em PdfStream (imagens/pdfs) em
|
|
114
|
+
objeto do tipo DocumentPdf().
|
|
115
|
+
"""
|
|
112
116
|
if self.collection_pages.is_null and self.collection_images.is_empty:
|
|
113
117
|
raise ValueError('Adicione imagens e/ou documentos para prosseguir!')
|
|
118
|
+
|
|
114
119
|
_doc = None
|
|
115
|
-
if not self.collection_pages.is_null:
|
|
116
|
-
_doc = DocumentPdf.create_from_pages(self.collection_pages.pages)
|
|
117
120
|
if not self.collection_images.is_empty:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
+
_convert = ConvertImageToPdf(self.collection_images, lib_img_to_pdf=self.lib_img_to_pdf)
|
|
122
|
+
_doc: DocumentPdf = _convert.to_document(land_scape, a4=a4)
|
|
123
|
+
if not self.collection_pages.is_null:
|
|
121
124
|
if _doc is None:
|
|
122
|
-
_doc =
|
|
125
|
+
_doc: DocumentPdf = self.collection_pages.to_document(self.lib_pdf)
|
|
123
126
|
else:
|
|
124
|
-
_doc.add_pages(
|
|
127
|
+
_doc.add_pages(self.collection_pages.pages)
|
|
125
128
|
return _doc
|
|
126
129
|
|
|
130
|
+
def thresold(self, *, land_scape: bool = False, a4: bool = False, dpi=300) -> DocumentPdf:
|
|
131
|
+
images: list[ImageObject] = self.collection_images.images
|
|
132
|
+
if not self.collection_pages.is_null:
|
|
133
|
+
tmp_doc = DocumentPdf.create_from_pages(self.collection_pages.pages)
|
|
134
|
+
conv_pdf_to_img = ConvertPdfToImages.create(tmp_doc)
|
|
135
|
+
images.extend(conv_pdf_to_img.to_images(dpi=dpi))
|
|
136
|
+
del tmp_doc
|
|
137
|
+
if len(images) == 0:
|
|
138
|
+
raise ValueError('Adicione imagens para prosseguir!')
|
|
139
|
+
if land_scape:
|
|
140
|
+
for img in images:
|
|
141
|
+
img.set_landscape()
|
|
142
|
+
for i in images:
|
|
143
|
+
i.set_threshold_gray()
|
|
144
|
+
conv_img_to_pdf = ConvertImageToPdf(CollectionImages(images), lib_img_to_pdf=self.lib_img_to_pdf)
|
|
145
|
+
return conv_img_to_pdf.to_document(a4=a4)
|
|
146
|
+
|
|
127
147
|
def to_files_images(
|
|
128
148
|
self,
|
|
129
149
|
output_dir: Directory, *,
|
|
@@ -134,16 +154,20 @@ class PdfStream(object):
|
|
|
134
154
|
if self.collection_pages.is_null and self.collection_images.is_empty:
|
|
135
155
|
raise ValueError('Adicione imagens e/ou documentos para prosseguir!')
|
|
136
156
|
self.progress.start()
|
|
157
|
+
|
|
158
|
+
image_stream = ImageStream()
|
|
159
|
+
if not self.collection_images.is_empty:
|
|
160
|
+
image_stream.add_images(self.collection_images.images)
|
|
137
161
|
if not self.collection_pages.is_null:
|
|
138
162
|
self.progress.update_text('Processando Imagens')
|
|
139
163
|
# Criar um documento a partir das páginas
|
|
140
164
|
doc_pdf = DocumentPdf.create_from_pages(self.collection_pages.pages)
|
|
141
165
|
convert_pdf_to_img = ConvertPdfToImages.create(doc_pdf)
|
|
142
166
|
# Converter as páginas PDF em imagens e adicionar a coleção já existe de imagens.
|
|
143
|
-
|
|
144
|
-
|
|
167
|
+
_pdf_to_images: list[ImageObject] = convert_pdf_to_img.to_images(dpi=dpi)
|
|
168
|
+
image_stream.add_images(_pdf_to_images)
|
|
145
169
|
# Exportar para arquivos.
|
|
146
|
-
|
|
170
|
+
image_stream.to_files_image(output_dir, replace=replace, land_scape=land_scape)
|
|
147
171
|
self.progress.stop()
|
|
148
172
|
|
|
149
173
|
def to_files_pdf(
|
|
@@ -151,21 +175,27 @@ class PdfStream(object):
|
|
|
151
175
|
output_dir: Directory, *,
|
|
152
176
|
replace: bool = False,
|
|
153
177
|
land_scape: bool = False,
|
|
178
|
+
a4: bool = False,
|
|
179
|
+
prefix: str = None,
|
|
154
180
|
) -> None:
|
|
155
181
|
if self.collection_pages.is_null and self.collection_images.is_empty:
|
|
156
182
|
raise ValueError('Adicione imagens e/ou documentos para prosseguir!')
|
|
183
|
+
pages_document = []
|
|
157
184
|
if not self.collection_pages.is_null:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
self.collection_images.
|
|
185
|
+
pages_document.extend(self.collection_pages.pages)
|
|
186
|
+
if not self.collection_images.is_empty:
|
|
187
|
+
img_to_pdf = ConvertImageToPdf(self.collection_images, lib_img_to_pdf=self.lib_img_to_pdf)
|
|
188
|
+
tmp_document = img_to_pdf.to_document(land_scape, a4=a4)
|
|
189
|
+
pages_document.extend(tmp_document.to_pages())
|
|
190
|
+
final_collection = CollectionPagePdf(pages_document)
|
|
161
191
|
if land_scape:
|
|
162
|
-
|
|
163
|
-
|
|
192
|
+
final_collection.set_land_scape()
|
|
193
|
+
final_collection.to_files_pdf(output_dir, replace=replace, prefix=prefix)
|
|
164
194
|
|
|
165
195
|
|
|
166
196
|
class SplitPdf(object):
|
|
167
197
|
|
|
168
|
-
def __init__(self, pages: list[PageDocumentPdf], pbar: ProgressBarAdapter = ProgressBarAdapter()):
|
|
198
|
+
def __init__(self, pages: list[PageDocumentPdf] = [], pbar: ProgressBarAdapter = ProgressBarAdapter()):
|
|
169
199
|
self.pbar: ProgressBarAdapter = pbar
|
|
170
200
|
self.__collection_pages: CollectionPagePdf = CollectionPagePdf(pages)
|
|
171
201
|
self.__collection_pages.set_pbar(self.pbar)
|
|
@@ -173,6 +203,9 @@ class SplitPdf(object):
|
|
|
173
203
|
def is_empty(self) -> bool:
|
|
174
204
|
return self.__collection_pages.is_null
|
|
175
205
|
|
|
206
|
+
def add_pages_pdf(self, pages: list[PageDocumentPdf]) -> None:
|
|
207
|
+
self.__collection_pages.add_pages(pages)
|
|
208
|
+
|
|
176
209
|
def export(self, output_dir: Directory, *, replace: bool = False, prefix: str = 'pag') -> None:
|
|
177
210
|
if self.is_empty():
|
|
178
211
|
self.pbar.update_text(f'O Documento está vazio!')
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from typing import Union, TypeAlias
|
|
4
|
+
from typing import Union, TypeAlias, Any
|
|
5
5
|
from convert_stream.enum_libs.enums import *
|
|
6
6
|
|
|
7
7
|
MOD_IMG_PIL: bool = False
|
|
@@ -18,16 +18,16 @@ try:
|
|
|
18
18
|
from cv2.typing import MatLike
|
|
19
19
|
MOD_IMG_OPENCV = True
|
|
20
20
|
except ImportError:
|
|
21
|
-
cv2.typing.MatLike =
|
|
22
|
-
MatLike =
|
|
21
|
+
cv2.typing.MatLike = Any
|
|
22
|
+
MatLike = Any
|
|
23
23
|
|
|
24
24
|
try:
|
|
25
25
|
from PIL import Image
|
|
26
26
|
from PIL import ImageOps, ImageFilter
|
|
27
27
|
MOD_IMG_PIL = True
|
|
28
28
|
except ImportError:
|
|
29
|
-
Image =
|
|
30
|
-
Image.Image =
|
|
29
|
+
Image = Any
|
|
30
|
+
Image.Image = Any
|
|
31
31
|
|
|
32
32
|
if MOD_IMG_OPENCV and MOD_IMG_PIL:
|
|
33
33
|
ModuleImage: TypeAlias = Union[MatLike, Image.Image]
|
|
@@ -40,7 +40,7 @@ elif MOD_IMG_PIL:
|
|
|
40
40
|
DEFAULT_LIB_IMAGE = LibImage.PIL
|
|
41
41
|
else:
|
|
42
42
|
DEFAULT_LIB_IMAGE = LibImage.NOT_IMPLEMENTED
|
|
43
|
-
ModuleImage =
|
|
43
|
+
ModuleImage = Any # fallback para runtime
|
|
44
44
|
|
|
45
45
|
#=================================================================#
|
|
46
46
|
# Módulos para PDF fitz e pypdf
|
|
@@ -54,34 +54,34 @@ except ImportError:
|
|
|
54
54
|
import pymupdf as fitz
|
|
55
55
|
MOD_FITZ = True
|
|
56
56
|
except ImportError:
|
|
57
|
-
fitz =
|
|
58
|
-
fitz.Page =
|
|
59
|
-
fitz.TextPage =
|
|
57
|
+
fitz = Any
|
|
58
|
+
fitz.Page = Any
|
|
59
|
+
fitz.TextPage = Any
|
|
60
60
|
|
|
61
61
|
try:
|
|
62
62
|
from pypdf import PdfWriter, PdfReader, PageObject
|
|
63
63
|
MOD_PYPDF = True
|
|
64
64
|
except ImportError:
|
|
65
|
-
PageObject =
|
|
66
|
-
PdfReader =
|
|
67
|
-
PdfWriter =
|
|
65
|
+
PageObject = Any
|
|
66
|
+
PdfReader = Any
|
|
67
|
+
PdfWriter = Any
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
if MOD_FITZ and MOD_PYPDF:
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
ModPagePdf = Union[PageObject, fitz.Page]
|
|
72
|
+
ModDocPdf = Union[fitz.Document, PdfWriter]
|
|
73
73
|
DEFAULT_LIB_PDF = LibPDF.FITZ
|
|
74
74
|
elif MOD_FITZ:
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
ModPagePdf = Union[fitz.Page]
|
|
76
|
+
ModDocPdf = Union[fitz.Document]
|
|
77
77
|
DEFAULT_LIB_PDF = LibPDF.FITZ
|
|
78
78
|
elif MOD_PYPDF:
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
ModPagePdf = Union[PageObject]
|
|
80
|
+
ModDocPdf = Union[PdfWriter]
|
|
81
81
|
DEFAULT_LIB_PDF = LibPDF.PYPDF
|
|
82
82
|
else:
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
ModPagePdf = Any # fallback para runtime
|
|
84
|
+
ModDocPdf = Any
|
|
85
85
|
DEFAULT_LIB_PDF = LibPDF.NOT_IMPLEMENTED
|
|
86
86
|
|
|
87
87
|
#=================================================================#
|
|
@@ -95,10 +95,10 @@ try:
|
|
|
95
95
|
from reportlab.lib.utils import ImageReader
|
|
96
96
|
MOD_CANVAS = True
|
|
97
97
|
except ImportError:
|
|
98
|
-
canvas =
|
|
99
|
-
Canvas =
|
|
98
|
+
canvas = Any
|
|
99
|
+
Canvas = Any
|
|
100
100
|
letter = (612, 792)
|
|
101
|
-
ImageReader =
|
|
101
|
+
ImageReader = Any
|
|
102
102
|
|
|
103
103
|
if MOD_CANVAS and MOD_FITZ and MOD_IMG_PIL:
|
|
104
104
|
ModImageToPdf: TypeAlias = Union[canvas, fitz.Page, Image]
|
|
@@ -113,7 +113,7 @@ elif MOD_IMG_PIL:
|
|
|
113
113
|
ModImageToPdf: TypeAlias = Union[Image]
|
|
114
114
|
DEFAULT_LIB_IMAGE_TO_PDF = LibImageToPdf.IMAGE_TO_PDF_PIL
|
|
115
115
|
else:
|
|
116
|
-
ModImageToPdf =
|
|
116
|
+
ModImageToPdf = Any
|
|
117
117
|
DEFAULT_LIB_IMAGE_TO_PDF = LibImageToPdf.NOT_IMPLEMENTED
|
|
118
118
|
|
|
119
119
|
#=================================================================#
|
|
@@ -125,4 +125,4 @@ if MOD_FITZ:
|
|
|
125
125
|
ModPdfToImage: TypeAlias = Union[fitz]
|
|
126
126
|
else:
|
|
127
127
|
DEFAULT_LIB_PDF_TO_IMG = LibPdfToImage.NOT_IMPLEMENTED
|
|
128
|
-
ModPdfToImage =
|
|
128
|
+
ModPdfToImage = Any
|