§
    ¦”jÙ  ã                  óŒ   — d dl mZ d dlmZmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZ erd dlmZ d dlmZ  G d	„ d
¦  «        ZdS )é    )Úannotations)ÚTYPE_CHECKINGÚIteratorÚcastN)ÚImage)ÚCanvas)ÚgetFileÚpisaFileObject)ÚBytesIO)ÚpisaContextc                  óŒ   — e Zd Zedd	„¦   «         Zedd„¦   «         Zeddœdd„¦   «         Zedd„¦   «         Zed d„¦   «         ZdS )!Ú
WaterMarksÚcontextÚdictÚpagesizeútuple[int, int]Úis_portraitÚboolÚreturnútuple[int, int, int, int]c               ó  — |                      d¦  «        }t          t          |                      d¦  «        ¦  «        }t          t          |                      d¦  «        ¦  «        }|                      ¦   «         \  }}|\  }	}
|	}t	          |¦  «        |z  }|
}t	          |¦  «        |z  }t          ||¦  «        }t          ||¦  «        }|r||z  }||z  }n
||z  }||z  }|r|\  }}n|rd|
|z
  }}nd\  }}|r|}|r|}||||fS )NÚobject_positionÚheightÚwidthr   )r   r   )Úgetr   ÚintÚgetSizeÚfloatÚminÚmax)Úimgr   r   r   r   Ú	cssheightÚcsswidthÚiwÚihÚpwÚphr   Úwfactorr   ÚhfactorÚ
factor_minÚ
factor_maxÚxÚys                      úl/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/xhtml2pdf/builders/watermarks.pyÚget_size_locationzWaterMarks.get_size_location   s8  € ð 3:·+²+Ð>OÑ2PÔ2PˆÝ $¥S¨'¯+ª+°hÑ*?Ô*?Ñ @Ô @ˆ	Ý�S '§+¢+¨gÑ"6Ô"6Ñ7Ô7ˆØ—’‘”‰ˆˆBØ‰ˆˆBØˆÝ˜u™œ¨Ñ*ˆØˆÝ˜v™œ¨Ñ+ˆÝ ¨Ñ1Ô1ˆ
Ý ¨Ñ1Ô1ˆ
Øð 	$Ø˜*‘_ˆFØ˜‘OˆEˆEà˜*‘_ˆFØ˜‘OˆEàð 	à"‰DˆAˆqˆqØð 	Ø�b˜6‘kˆqˆAˆAà‰DˆAˆqØð 	ØˆEØð 	ØˆFà�!�U˜FÐ"Ð"ó    Úpisafiler
   r   c                óŒ  — |                      dd ¦  «        }|r™|                      ¦   «         }t          j        |¦  «        }|                     d¦  «        }|                     t          d|z  ¦  «        ¦  «         |                     |d¦  «         t          |¦  «         	                    ¦   «         S |  	                    ¦   «         S )NÚopacityÚRGBAéÿ   ÚPNG)
r   ÚgetNamedFiler   ÚopenÚconvertÚputalphar   Úsaver	   Ú
getBytesIO)r1   r   r3   Únamer!   s        r.   Úget_img_with_opacityzWaterMarks.get_img_with_opacity6   sª   € à Ÿš Y°Ñ5Ô5ˆØð 	.Ø'×4Ò4Ñ6Ô6ˆDÝ$œz¨$Ñ/Ô/ˆCØ—+’+˜fÑ%Ô%ˆCØ�LŠL�˜S 7™]Ñ+Ô+Ñ,Ô,Ð,Ø�HŠH�T˜5Ñ!Ô!Ð!Ý˜4‘=”=×+Ò+Ñ-Ô-Ð-Ø×"Ò"Ñ$Ô$Ð$r0   N)r   údict | Nonec               ól  — ddl m} |€i }t          dd¦  «        } |t                               | |¦  «        ¦  «        }t                               ||||¬¦  «        \  }}}	}
t          |                     ¦   «         |¬¦  «        }|                     ||||	|
d¬¦  «         | 	                    ¦   «          |S )	zÏ
        Pypdf requires pdf as background so convert image to pdf in temporary file with same page dimensions
        :param pisafile:  Image File
        :param pagesize:  Page size for the new pdf
        r   )ÚPmlImageReaderNzapplication/pdf)r   )r   Úauto)Úmask)
Úxhtml2pdf.xhtml2pdf_reportlabrA   r
   r   r>   r/   r   r7   Ú	drawImager;   )r1   r   r   r   rA   Úoutputr!   r,   r-   r   r   Úcanvass               r.   Úgenerate_pdf_backgroundz"WaterMarks.generate_pdf_backgroundB   sÝ   € ð 	AÐ@Ð@Ð@Ð@Ð@àˆ?ØˆGå!/ØÐ#ñ"
ô "
ˆð -˜nÝ×+Ò+¨H°gÑ>Ô>ñ
ô 
ˆõ )×:Ò:Ø�˜(°ð ;ñ 
ô 
Ñˆˆ1ˆe�Võ ˜×+Ò+Ñ-Ô-¸ÐAÑAÔAˆØ×Ò˜˜a  E¨6¸ÐÑ?Ô?Ð?à�Š‰Œˆàˆr0   r   Úmax_numpager   r   c              #  ó6  K  — | j         r�d„ | j         D ¦   «         |dz   gz   }|                     d¦  «         t          | j         ¦  «        D ]M\  }\  }}}|                     ¦   «         s.t	          |||         ¦  «        |t          |d         ¦  «        fV — ŒLd S d S )Nc                ó   — g | ]
}|d          ‘ŒS )r   © )Ú.0r,   s     r.   ú
<listcomp>z,WaterMarks.get_watermark.<locals>.<listcomp>i   s   € Ð>Ð>Ð>˜a�Q�q”TÐ>Ð>Ð>r0   é   r   Ústep)ÚpisaBackgroundListÚpopÚ	enumerateÚnotFoundÚranger   )r   rI   ÚpagesÚcounterÚpageÚbgfileÚ	pgcontexts          r.   Úget_watermarkzWaterMarks.get_watermarkf   sÍ   è è € àÔ%ð 	VØ>Ð> 7Ô#=Ð>Ñ>Ô>À+ÐPQÁ/ÐARÑRˆEØ�IŠI�a‰LŒLˆLÝ6?ØÔ*ñ7ô 7ð Vð VÑ2�Ñ2˜$ ¨	ð —’Ñ(Ô(ð VÝ  e¨G¤nÑ5Ô5°v½sÀ9ÈVÔCTÑ?UÔ?UÐUÐUÐUÐUøð	Vð 	VðVð Vr0   ÚistreamÚbytesrF   útuple[bytes, bool]c                ó  — t          j        ¦   «         }t          j        |¦  «        }d}t                               | t          |j        ¦  «        ¦  «        D ]•\  }}}t          j        |                     ¦   «         ¦  «        }	|	j        d         }
t          |¦  «        D ]L\  }}|j        |dz
           }||z  dk    r| 	                    |
d¬¦  «         | 
                    |¦  «         d}ŒMŒ–|r|                     |¦  «         ||fS )NFr   rO   )ÚoverT)ÚpypdfÚ	PdfWriterÚ	PdfReaderr   r[   ÚlenrV   r<   rS   Ú
merge_pageÚadd_pageÚwrite)r   r\   rF   Ú	pdfoutputÚinput1Úhas_bgrV   ÚbgouterrP   ÚbginputÚpagebgÚindexÚctrrX   s                 r.   Úprocess_doczWaterMarks.process_docq   s  € õ &+¤_Ñ%6Ô%6ˆ	Ý"'¤/°'Ñ":Ô":ˆØˆÝ$.×$<Ò$<Ø•S˜œÑ&Ô&ñ%
ô %
ð 
	ð 
	Ñ ˆE�7˜Dõ (-¤°w×7IÒ7IÑ7KÔ7KÑ'LÔ'LˆGØ'.¤}°QÔ'7ˆFÝ'¨Ñ.Ô.ð ð ‘
��sØ)/¬°c¸A±gÔ)>�Ø˜4‘< 1Ò$Ð$Ø—O’O F°�OÑ7Ô7Ð7Ø×"Ò" 4Ñ(Ô(Ð(Ø��ðð ð 	$Ø�OŠO˜FÑ#Ô#Ð#à�vˆ~Ðr0   )r   r   r   r   r   r   r   r   )r1   r
   r   r   r   r   )
r1   r
   r   r   r   r   r   r?   r   r
   )r   r   rI   r   r   r   )r   r   r\   r]   rF   r]   r   r^   )	Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr/   r>   rH   r[   rp   rL   r0   r.   r   r      sÇ   € € € € € Øð!#ð !#ð !#ñ „\ð!#ðF ð	%ð 	%ð 	%ñ „\ð	%ð ð  $ð!ð !ð !ð !ð !ñ „\ð!ðF ðVð Vð Vñ „\ðVð ðð ð ñ „\ðð ð r0   r   )Ú
__future__r   Útypingr   r   r   ra   ÚPILr   Úreportlab.pdfgen.canvasr   Úxhtml2pdf.filesr	   r
   Úior   Úxhtml2pdf.contextr   r   rL   r0   r.   ú<module>r|      sâ   ðØ "Ð "Ð "Ð "Ð "Ð "à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à €€€Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3àð .ØÐÐÐÐÐà-Ð-Ð-Ð-Ð-Ð-ðuð uð uð uð uñ uô uð uð uð ur0   