Skip to content

Commit 581f8ae

Browse files
jonathanMindeefharper
authored andcommitted
chg: ✨ Added cut pdf mode in Input class
1 parent 7410d40 commit 581f8ae

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

mindee/inputs.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ def __init__(
1111
file,
1212
input_type="path",
1313
filename=None,
14-
cut_pdf=True
14+
cut_pdf=True,
15+
n_pdf_pages=3
1516
):
1617
"""
1718
:param file: Either path or base64 string, or stream
@@ -21,6 +22,7 @@ def __init__(
2122
"""
2223
self.allowed_extensions = ["image/png", "image/jpg", "image/jpeg", "image/webp", "application/pdf"]
2324
assert input_type in ["base64", "path", "stream", "dummy"]
25+
assert 0 < n_pdf_pages <= 3
2426

2527
if input_type == "base64":
2628
# Only for images
@@ -54,9 +56,9 @@ def __init__(
5456
raise Exception("File type not allowed, must be in {%s}" % ", ".join(self.allowed_extensions))
5557

5658
if self.file_extension == "application/pdf" and cut_pdf is True:
57-
n_pages = self.count_pdf_pages()
58-
if n_pages > 3:
59-
self.merge_pdf_pages({0, n_pages - 2, n_pages - 1})
59+
count_pages = self.count_pdf_pages()
60+
if count_pages > 3:
61+
self.merge_pdf_pages([0, count_pages - 2, count_pages - 1][:n_pdf_pages])
6062

6163
@staticmethod
6264
def load(input_type, filename, filepath, file_extension):
@@ -111,7 +113,10 @@ def merge_pdf_pages(self, pages_number):
111113
height = spage.MediaBoxSize[1]
112114
r = fitz.Rect(0, 0, width, height)
113115
page = doc.newPage(-1, width=width, height=height)
114-
page.showPDFpage(r, src, spage.number)
116+
try:
117+
page.showPDFpage(r, src, spage.number)
118+
except:
119+
pass
115120
self.file_object.close()
116121
self.file_object = io.BytesIO(doc.write())
117122

0 commit comments

Comments
 (0)