@@ -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