
    :h$                    :   d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ ddl	m
Z
mZmZmZmZmZ ddZ	 	 	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 	 	 	 	 ddZ e
j&                  d	e        e
j(                  d	e        e
j*                  d	d
        e
j,                  d	d       y)    )annotationsN)IOAny   )Image	ImageFileImageSequence	PdfParser__version__featuresc                "    t        | ||d       y )NT)save_all)_save)imfpfilenames      P/var/www/urcfiles/bundle/venv/lib/python3.12/site-packages/PIL/PdfImagePlugin.py	_save_allr   +   s    	"b(T*    c                   d }d }| j                   \  }}ddi}| j                  dk(  rit        j                  d      r6d}	d|d<   t	        j
                  t	        j                  dd||d	      g      }nd
}	t	        j                  d      |d<   d}
n| j                  dk(  rd
}	t	        j                  d      |d<   d}
nm| j                  dk(  rd}	d}
d|d<   nS| j                  dk(  rd}	| j                         }|J t	        j                  d      t	        j                  d      t        |      dz  dz
  t	        j                  |      g|d<   d}
d| j                  v r| j                  d      j                  d      }i |_        t        ||||      d   }||d<   n| j                  dk(  rd
}	t	        j                  d      |d<   d}
nc| j                  dk(  r
d}	d}
d|d<   nJ| j                  dk(  r!d
}	t	        j                  d       |d<   d}
g d!}nd"| j                   }t!        |      t#        j$                         }|	dk(  rFt'        j(                  | |t'        j*                  d#d$| j                   z   d| j                        g       n|	dk(  r/| j-                  |d%d&t/        j0                  |dz        |z  '       nT|	d
k(  rt3        j4                  d(   | ||       n4|	dk(  r|d= t3        j4                  d)   | ||       nd*|	 d+}t!        |      |j7                         }|	dk(  r/|dd  }t	        j
                  t	        j                  |	      g      }nt	        j                  |	      }|j9                  d      } |j:                  |f|t	        j                  d,      t	        j                  d-      |||||d.| ||
fS )/NBitsPerComponent   1libtiffCCITTFaxDecoder   T)KBlackIs1ColumnsRows	DCTDecode
DeviceGray
ColorSpaceImageBLLA	JPXDecodeSMaskInDataPASCIIHexDecodeIndexed	DeviceRGB   ImageItransparencyAr   SMaskRGBImageCRGBACMYK
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode hex)r   r   TIFFgroup4)compression
strip_sizeJPEGJPEG2000zunsupported PDF filter ()XObjectr   )streamTypeSubtypeWidthHeightFilterDecodeDecodeParms)sizemoder   checkr
   PdfArrayPdfDictPdfName
getpalettelen	PdfBinaryinfoconvert
getchannelencoderinfo_write_image
ValueErrorioBytesIOr   r   _Tilesavemathceilr   SAVEgetvaluepop	write_obj)r   r   existing_pdf
image_refsparamsdecodewidthheightdict_objdecode_filterprocsetpalettesmask	image_refmsgopr@   filters                     r   rU   rU   3   s    FF
 GGME6 2A6H	ww#~>>)$,M+,H'(''%%!#(,',$*		F (M!*!2!2<!@	C#!*!2!2<!@	D#"#	C(--/"""i(k*LA!(	"
 RWW$JJt$//4E "E$UHlJOPQRI )HW	E	#!*!2!2;!?	F	#"#	F	#!*!2!2<!@)!"''+o
 
B((B8H!RWW!U VW	*	*
 yy+f4 	 	
 
+	%

62r8,	+	%'(

:r2x0(q9o[[]F((##Y%6%6}%E$FG""=1q!ILy)!!'*  gr   c                	   | j                   j                  dd      }t        |t              r|j	                         n|}|rt        j
                  ||d      }nt        j
                  ||d      }| j                   j                  d      }|r|d   }|d   }	n| j                   j                  d	d
      x}}	|rd n>t        j                  j                  t        j                  j                  |            d   d d d d d |rd nt        j                         |rd nt        j                         d}
|
j                         D ]Y  \  }}|| j                   v r| j                   j                  |      n|}|s4||j                  |d   j                         |dd  z   <   [ | j                          |j!                          |j#                          |j%                  dt&         d       | g}|rS| j                   j                  dg       }|D ]2  }| j                   j)                         |_         |j+                  |       4 d}g }g }g }|D ]  } d}|rt-        | dd      }||z  }t/        |      D ]  }|j+                  |j1                  d             | j2                  dk(  r.d| j                  v r |j+                  |j1                  d             |j+                  |j1                  d             |j+                  |j1                  d             |j4                  j+                  |d            |j7                          d}|D ]  }|rt9        j:                  |      n|g}|D ]  } t=        | |||      \  }}|j?                  ||   t        j@                  t        jB                  d      t        jB                  |      gt        j@                  |            dd| jD                  d
z  |z  | jF                  d
z  |	z  g||          d| jD                  d
z  |z  | jF                  d
z  |	z  fz  }|jI                  ||   |       |dz  } 
 |jK                          tM        |d      r|jO                          |jQ                          y )NappendFzr+b)fr   rI   zw+bdpir   r   
resolutiong      R@)titleauthorsubjectkeywordscreatorproducercreationDatemodDatezcreated by Pillow z PDF driverappend_imagesn_framesr)   r/   r   PDF)image)ProcSetr?   )	ResourcesMediaBoxContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r@   flush))rT   get
isinstancebytesrd   r
   ospathsplitextbasenametimegmtimeitemsrQ   upperloadstart_writingwrite_headerwrite_commentr   copyrq   getattrrangenext_object_idrI   pageswrite_catalogr	   IteratorrU   
write_pagerL   rM   re   rf   r`   write_xref_and_trailerhasattrr   close)r   r   r   r   is_appendingfilename_strra   rs   x_resolutiony_resolutionrQ   kdefaultvimsr}   	append_imnumber_of_pagesrb   	page_refscontents_refsim_number_of_pagesipage_numberim_sequenceim_pagesrl   ri   page_contentss                                r   r   r      s5    >>%%h6L(28U(C8??$L **R,US **R,US
..

U
#C
1v1v&(nn&8&8t&LL| !Dbgg&6&6rww7G7G7Q&RST&U ,$++-'4T[[]D jjl
7%&"..%8BNNq!g67LadjjlQqrU23 # GGI !3K=LM $C**?B?&I$&NN$7$7$9I!JJy! ' OJIM!(Z!;--)*Al99!<=ww#~.BGG";!!,"="=a"@A\88;<  !<!<Q!?@%%im4 +    K3;M"";/+ 	 B!-b(L*!UIw
 ##+&#++&..u5y7H7H7QR%--I>
 HHtOl2II$|3	 '{3 $ $ @4,.		D </C M
 ""=#=m"T1K? 	 N '')r7

r   r   z.pdfzapplication/pdf)r   Image.Imager   	IO[bytes]r   str | bytesreturnNone)
r   r   r   r   ra   zPdfParser.PdfParserrb   z!list[PdfParser.IndirectReference]r   z'tuple[PdfParser.IndirectReference, str])F)
r   r   r   r   r   r   r   boolr   r   )
__future__r   rW   r[   r   r   typingr   r    r   r   r	   r
   r   r   r   rU   r   register_saveregister_save_allregister_extensionregister_mime r   r   <module>r      s   , # 	  	   O O+BBB &B 2	B
 -BL MRss"s.9sEIs	st   E5 !   y )    '   E, -r   