HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pdfminer/__pycache__/converter.cpython-38.pyc
U

�R�]^P�@svddlZddlZddlmZddlmZddlmZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lmZddlm
Z
ddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlZe�e�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de �Z!Gdd �d e �Z"Gd!d"�d"e �Z#dS)#�N�)�
PDFTextDevice)�PDFUnicodeNotDefined)�LTContainer)�LTPage)�LTText)�LTLine)�LTRect)�LTCurve)�LTFigure)�LTImage)�LTChar)�
LTTextLine)�	LTTextBox)�LTTextBoxVertical)�LTTextGroup)�apply_matrix_pt)�mult_matrix)�enc)�bbox2str)�utilsc@s^eZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�ZdS)�PDFLayoutAnalyzerrNcCs"t�||�||_||_g|_dS�N)r�__init__�pageno�laparams�_stack��self�rsrcmgrrr�r �4/usr/lib/python3/dist-packages/pdfminer/converter.pyr#s
zPDFLayoutAnalyzer.__init__cCs`|j\}}}}t|||f�\}}t|||f�\}}ddt||�t||�f}t|j|�|_dS)Nr)�mediaboxr�absrr�cur_item)r�page�ctm�x0�y0�x1�y1r"r r r!�
begin_page*szPDFLayoutAnalyzer.begin_pagecCsl|jrttt|j����t|jt�s6ttt|j����|jdk	rN|j�	|j�|j
d7_
|�|j�dS)Nr)r�AssertionError�str�len�
isinstancer$r�typerZanalyzer�receive_layout)rr%r r r!�end_page2s
zPDFLayoutAnalyzer.end_pagecCs(|j�|j�t||t||j��|_dSr)r�appendr$rrr&)r�name�bbox�matrixr r r!�begin_figure;szPDFLayoutAnalyzer.begin_figurecCs@|j}t|jt�s$ttt|j����|j��|_|j�|�dSr)	r$r/rr,r-r0r�pop�add)r�_Zfigr r r!�
end_figure@s
zPDFLayoutAnalyzer.end_figurecCsRt|jt�sttt|j����t|||jj|jj|jj	|jj
f�}|j�|�dSr)r/r$rr,r-r0rr'r(r)r*r9)rr4�stream�itemr r r!�render_imageGs��zPDFLayoutAnalyzer.render_imagecCs d�dd�|D��}|dkr�|d\}}}	|d\}}
}t|j||	f�\}}	t|j|
|f�\}
}||
ksp|	|kr�|j�t|j||	f|
|f||||j|j��dS|dk�r�|d\}}}	|d\}}
}|d\}}}
|d	\}}}t|j||	f�\}}	t|j|
|f�\}
}t|j||
f�\}}
t|j||f�\}}||
k�rZ||
k�rZ||k�rZ||	k�s�|	|k�r�|
|k�r�|
|k�r�||k�r�|j�t	|j||	||
f||||j|j��dSg}|D]@}t
dt|�d�D](}|�t|j||||df���q̐q�|j�t
|j|||||j|j��dS)
N�css|]}|dVqdS)rNr )�.0�xr r r!�	<genexpr>Psz/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>ZmlrrZmlllh��)�joinrr&r$r9r�	linewidthZscolor�ncolorr	�ranger.r3r
)r�gstate�stroke�fill�evenodd�path�shaper:r'r(r)r*Zx2Zy2Zx3Zy3Zpts�p�ir r r!�
paint_pathOsf�
(�����*�zPDFLayoutAnalyzer.paint_pathc	
Cs�z*|�|�}	t|	tj�s(ttt|	����Wn tk
rJ|�||�}	YnX|�	|�}
|�
|�}t||||||	|
|||�
}|j�
|�|jSr)Z	to_unichrr/�sixZ	text_typer,r-r0r�handle_undefined_charZ
char_widthZ	char_dispr
r$r9Zadv)
rr6�font�fontsizeZscalingZrise�cid�ncs�graphicstate�textZ	textwidthZtextdispr=r r r!�render_charss
 

zPDFLayoutAnalyzer.render_charcCst�d||�d|S)Nzundefined: %r, %rz(cid:%d))�log�info)rrTrVr r r!rSsz'PDFLayoutAnalyzer.handle_undefined_charcCsdSrr �rZltpager r r!r1�sz PDFLayoutAnalyzer.receive_layout)rN)
�__name__�
__module__�__qualname__rr+r2r7r;r>rQrZrSr1r r r r!r!s
	$rc@s&eZdZd	dd�Zdd�Zdd�ZdS)
�PDFPageAggregatorrNcCstj||||d�d|_dS)N�rr)rr�resultrr r r!r�szPDFPageAggregator.__init__cCs
||_dSr�rcr]r r r!r1�sz PDFPageAggregator.receive_layoutcCs|jSrrd�rr r r!�
get_result�szPDFPageAggregator.get_result)rN)r^r_r`rr1rfr r r r!ra�s
rac@seZdZddd�ZdS)�PDFConverter�utf-8rNcCs�tj||||d�||_||_t|jd�rFd|jjkr>d|_q�d|_nfddl}t|j|j	�rdd|_nHt|j|j
�rzd|_n2z|j�d�d|_Wntk
r�d|_YnXdS)Nrb�mode�bTFr�é)
rr�outfp�codec�hasattrri�outfp_binary�ior/�BytesIO�StringIO�write�	TypeError)rrrlrmrrrpr r r!r�s$
zPDFConverter.__init__)rhrN)r^r_r`rr r r r!rg�srgc@s6eZdZddd�Zdd�Zd	d
�Zdd�Zd
d�ZdS)�
TextConverterrhrNFcCs&tj||||||d�||_||_dS�N)rmrr)rgr�
showpageno�imagewriter)rrrlrmrrrwrxr r r!r�szTextConverter.__init__cCs4t�||jd�}tjr$|jr$|��}|j�|�dS)N�ignore)	rZcompatible_encode_methodrmrRZPY3ro�encoderlrs�rrYr r r!�
write_text�s
zTextConverter.write_textcs:��fdd���jr$��d|j��|���d�dS)Ncspt|t�r|D]}�|�qnt|t�r6��|���t|t�rL��d�n t|t�rl�jdk	rl�j�|�dS)N�
)	r/rrr|�get_textrrrx�export_image�r=�child��renderrr r!r��s




z,TextConverter.receive_layout.<locals>.renderzPage %s
�)rwr|�pageidr]r r�r!r1�s
zTextConverter.receive_layoutcCs |jdkrdSt�|||�dSr)rxrgr>)rr4r<r r r!r>�s
zTextConverter.render_imagecCsdSrr )rrIrJrKrLrMr r r!rQ�szTextConverter.paint_path)rhrNFN)r^r_r`rr|r1r>rQr r r r!ru�s�
ruc
@s�eZdZddddddd�Zddd	�Zd
dddd
dddddddd�ddifdd�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
d d!�Zd"d#�Zd$d%�Z
d3d'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�ZdS)4�
HTMLConverterZyellowZmagentaZcyanZredZblackZgray)�figure�textline�textbox�	textgroup�curver%Zblue)r��charrhrNg�?ZnormalT�2r)r�r%r�cCs�tj||||||d�||_||_||_|	|_|
|_||_|
|_||_	|rf|j�
|j�|j	�
|j�|j|_
d|_g|_|��dSrv)rgr�scale�	fontscale�
layoutmoderw�
pagemarginrx�rect_colors�text_colors�update�RECT_COLORS�TEXT_COLORS�_yoffset�_font�
_fontstack�write_header)rrrlrmrrr�r�r�rwr�rx�debugr�r�r r r!r�s"zHTMLConverter.__init__cCs"|jr|�|j�}|j�|�dSr�rmrzrlrsr{r r r!rsszHTMLConverter.writecCs:|�d�|jr"|�d|j�n
|�d�|�d�dS)Nz
<html><head>
zA<meta http-equiv="Content-Type" content="text/html; charset=%s">
z5<meta http-equiv="Content-Type" content="text/html">
z</head><body>
)rsrmrer r r!r�s


zHTMLConverter.write_headerc	Cs4|�dd�dd�td|j�D���|�d�dS)Nz8<div style="position:absolute; top:0px;">Page: %s</div>
z, css|]}d||fVqdS)z<a href="#%s">%s</a>Nr )r@rPr r r!rB sz-HTMLConverter.write_footer.<locals>.<genexpr>rz</body></html>
)rsrErHrrer r r!�write_footers
�
zHTMLConverter.write_footercCs|�t|d��dSr)rsrr{r r r!r|$szHTMLConverter.write_textc
CsP|j�|�}|dk	rL|�d||||j|j||j||j||jf�dS)Nzn<span style="position:absolute; border: %s %dpx solid; left:%dpx; top:%dpx; width:%dpx; height:%dpx;"></span>
)r��getrsr�r�)r�color�borderwidthrA�y�w�hr r r!�
place_rect(s��zHTMLConverter.place_rectcCs |�|||j|j|j|j�dSr)r�r'r*�width�height)rr�r�r=r r r!�place_border2szHTMLConverter.place_borderc
CsX|jdk	rT|j�|�}|�dt|d�|||j|j||j||j||jf�dS)Nzd<img src="%s" border="%d" style="position:absolute; left:%dpx; top:%dpx;" width="%d" height="%d" />
)rxrrsrr�r�)rr=r�rAr�r�r�r4r r r!�place_image6s

��zHTMLConverter.place_imagecCs`|j�|�}|dk	r\|�d|||j|j||j||j|jf�|�|�|�d�dS)NzP<span style="position:absolute; color:%s; left:%dpx; top:%dpx; font-size:%dpx;">z</span>
)r�r�rsr�r�r�r|)rr�rYrAr��sizer r r!�
place_text@s(�

zHTMLConverter.place_textFcCsR|j�|j�d|_|�d|||||j|j||j||j||jf�dS)Nzv<div style="position:absolute; border: %s %dpx solid; writing-mode:%s; left:%dpx; top:%dpx; width:%dpx; height:%dpx;">)r�r3r�rsr�r�)rr�r�rAr�r�r�Zwriting_moder r r!�	begin_divIs��zHTMLConverter.begin_divcCs.|jdk	r|�d�|j��|_|�d�dS)N�</span>z</div>)r�rsr�r8)rr�r r r!�end_divSs



zHTMLConverter.end_divcCs\||f}||jkrN|jdk	r&|�d�|�dt|�||j|jf�||_|�|�dS)Nr�z.<span style="font-family: %s; font-size:%dpx">)r�rsrr�r�r|)rrY�fontnamerUrTr r r!�put_textZs


�
zHTMLConverter.put_textcCs|�d�dS)Nz<br>�rsrer r r!�put_newlinees
zHTMLConverter.put_newlinecs:��fdd�����fdd���|��j�j7_dS)Ncs.t|t�r*��dd|�|D]}�|�qdS)Nr�r)r/rr�r��r�
show_groupr r!r�js


z0HTMLConverter.receive_layout.<locals>.show_groupc
s�t|t�r��j|j7_��dd|��jr`��d�j|j�j���d|j|jf�|D]}�|�qd|j	dk	r�|j	D]}�|�q��nt|t
�r���dd|��n�t|t�r���dd|j
|j|j|j�|D]}�|�qڈ�d��n�t|t��r"��|d|j
|j|j|j��n��jdk�r�t|t��r^��dd|�|D]}�|��qLn�t|t��r���d	d|���d	t|jd�|j
|jd
�|D]}�|��q�n6t|t��r���dd|���d|��|j
|j|j�n�t|t��r|D]}�|��q��jdk�r����n�t|t��rj��d	d|j
|j|j|j|���|D]}�|��qN��d	�n>t|t��r���|��|j|j�nt|t ��r���!|���dS)
Nr%rz*<div style="position:absolute; top:%dpx;">z<a name="%s">Page %s</a></div>
r�r��exactr�r��r�Zloose)"r/rr�r*r�rwrsr�r��groupsr
rr�r'r�r�r�rr�r�rrr�r-�indexr
r~r�r�Zget_writing_moder�r�rr|)r=r��group�r�rr�r r!r�qsh
�





  
�z,HTMLConverter.receive_layout.<locals>.render)r�r�r]r r�r!r1is
5zHTMLConverter.receive_layoutcCs|��dSr�r�rer r r!�close�szHTMLConverter.close)F)r^r_r`r�r�rrsr�r�r|r�r�r�r�r�r�r�r�r1r�r r r r!r��sF���
	

	

Ar�c@sPeZdZe�d�Zddd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�XMLConverterz[---]rhrNFcCs.tj||||||d�||_||_|��dSrv)rgrrx�stripcontrolr�)rrrlrmrrrxr�r r r!r�s
zXMLConverter.__init__cCs"|jr|�|j�}|j�|�dSrr�r{r r r!rs�szXMLConverter.writecCs0|jr|�d|j�n
|�d�|�d�dS)Nz%<?xml version="1.0" encoding="%s" ?>
z<?xml version="1.0" ?>
z<pages>
)rmrsrer r r!r��s


zXMLConverter.write_headercCs|�d�dS)Nz	</pages>
r�rer r r!r��s
zXMLConverter.write_footercCs(|jr|j�d|�}|�t|d��dS)Nr?)r��CONTROL�subrsrr{r r r!r|�szXMLConverter.write_textcs*��fdd�����fdd���|�dS)Ncsdt|t�r&��d|jt|j�f�n:t|t�r`��dt|j��|D]}�|�qH��d�dS)Nz<textbox id="%d" bbox="%s" />
z<textgroup bbox="%s">
z
</textgroup>
)r/rrsr�rr5rr�r�r r!r��s
�


z/XMLConverter.receive_layout.<locals>.show_groupcs�t|t�rz��d|jt|j�|jf�|D]}�|�q,|jdk	rl��d�|jD]}�|�qT��d���d��nLt|t�r���d|j	t|j�f��n$t|t
�rʈ�d|j	t|j�f��n�t|t�r���d|j	t|j�|��f��n�t|t
��r@��d|jt|j�f�|D]}�|��q"��d	��n�t|t��r���d
t|j��|D]}�|��qd��d��nDt|t��r�d}t|t��r�d
}��d|jt|j�|f�|D]}�|��qˆ�d�n�t|t��r4��dt|jd�t|j�|jj|jj|jf���|�����d�n�t|t��rT��d|���nrt|t��r��jdk	�r��j�|�}��dt|d�|j |j!f�n��d|j |j!f�nd�s�t"t#d|f���dS)Nz%<page id="%s" bbox="%s" rotate="%d">
z	<layout>
z
</layout>
z</page>
z"<line linewidth="%d" bbox="%s" />
z"<rect linewidth="%d" bbox="%s" />
z+<curve linewidth="%d" bbox="%s" pts="%s"/>
z<figure name="%s" bbox="%s">
z
</figure>
z<textline bbox="%s">
z</textline>
r?z wmode="vertical"z<textbox id="%d" bbox="%s"%s>
z</textbox>
zD<text font="%s" bbox="%s" colourspace="%s" ncolour="%s" size="%.3f">z</text>
z<text>%s</text>
z*<image src="%s" width="%d" height="%d" />
z!<image width="%d" height="%d" />
FZ	Unhandled)$r/rrsr�rr5�rotater�rrFr	r
Zget_ptsrr4rrrr�r
rr�rWrXrGr�r|r~rrrxrr�r�r,r-)r=r�r�Zwmoder4r�r r!r��s�
�






�

�

�
�����
�z+XMLConverter.receive_layout.<locals>.renderr r]r r�r!r1�s<zXMLConverter.receive_layoutcCs|��dSrr�rer r r!r� szXMLConverter.close)rhrNNF)
r^r_r`�re�compiler�rrsr�r�r|r1r�r r r r!r��s
�
Kr�)$Zloggingr�Z	pdfdevicerZpdffontrZlayoutrrrrr	r
rrr
rrrrrrrrrr?rRZ	getLoggerr^r[rrargrur�r�r r r r!�<module>s<
h1K