Sindbad~EG File Manager

Current Path : /usr/share/hplip/ui5/__pycache__/
Upload File :
Current File : //usr/share/hplip/ui5/__pycache__/scandialog.cpython-310.pyc

o

�/�a�V�@s�ddlmZmZmZddlmZmZddlZddlZddl	Z	ddl
TddlTddlTddl
mZddlmZegd��ZdZe��ae��Zd	Zd
ZdZdZdZiZz
ejjZd
d�ZWn
e yidd�ZYnwGdd�de!�Z"Gdd�d�Z#dS)�)�QtCore�QtGui�	QtWidgets)�utils�imageprocessingN)�*)�sane)�OrderedDict))�letter)��i�Letter�in)�a3)�)i��A3�mm)�a4)��r�A4r)�a5)�r�A5r)�5x7)��z	5x7 photor
)�4x6)�f�z	4x6 photor
)�3x5)�Lrz3x5 index cardr
)�a2_env)�o�zA2 Enveloper
)�a6)�ir�A6r)�b4)�il�B4r)�b5)�r'�B5r)�c6_env)�r�zC6 Enveloper
)�dl_env)�n��zDL Enveloper
)�exec)�i�	Executiver
)�flsa)���J�Flsar)�higaki)�dr�Hagakir)�japan_env_3)�x��zJapanese Envelope #3r)�japan_env_4)�Z��zJapanese Envelope #4r)�legal)rid�Legalr
)�	no_10_env)r$��zNumber 10 Enveloper
)z
oufufu-hagaki)r��z
Oufuku-Hagakir)�photo)rr�Photor
)�super_b)r7i�zSuper Br
�a�The scan operation has been cancelled or a multipick or paper is jammed in the ADF.
If you cancelled the scan,click OK.
If the scan was terminated due to a multi-feed or paper jam in the ADF,
do the following:

1)Clear the ADF path. For instructions see your product documentation.
2)Check the sheets are not stuck together. Remove any staples, sticky notes,tape or other objects.
3)Restart the scan

Note:If necessary, turn off automatic detection of multi-pick before starting a new scan
z�Convert command not found. Multiple Tiff document generation,
 Batch seperation feature with Tiff file format,
 Page merge feature and PDF generation using reportlab may not work as excepted.
 Please install ImageMagick package and try again
z4No document(s). Please load documents and try again.zNo scanned documents to merge.cCstj�|||t�S�N)r�QCoreApplication�	translate�	_encoding��context�text�disambig�rS�"/usr/share/hplip/ui5/scandialog.py�
_translate@srUcCstj�|||�SrK)rrLrMrOrSrSrTrUCsc@s2eZdZiZdZdZdZdZdZdZ	dZ
dZdZdZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d	Z&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7d
d�Z8dd
�Z9dd�Z:dd�Z;dd�Z<dd�Z=d_dd�Z>dd�Z?dd�Z@dd�ZAdd �ZBd!d"�ZCd#d$�ZDd%d&�ZEd'd(�ZFd)d*�ZGd+d,�ZHd-d.�ZId/d0�ZJd1d2�ZKd3d4�ZLd5d6�ZMd7d8�ZNd9d:�ZOd;d<�ZPd=d>�ZQd?d@�ZRdAdB�ZSdCdD�ZTdEdF�ZUdGdH�ZVdIdJ�ZWdKdL�ZXdMdN�ZYdOdP�ZZdQdR�Z[dSdT�Z\dUdV�Z]dWdX�Z^dYdZ�Z_d[d\�Z`d]d^�ZadS)`�	Ui_HpScan�pngrJ�gray�300r
FrT�1cCs�t��}|�d�|�t�dd��|�t�dd��t��}|�	d�|�
d�|�|�|�d�|�
tjj�t��|_|j�d�t�|j�|_|j�t�ddd	d
��t��}|�	d�|�
d�|j�|�|j�d�|j�d
�t�|j�|_|j�t�dddd
��|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|jj�|j�t�|j�|_|j�t�dddd
��|j�d�t�|j�|_|j�t�dddd
��|j�d�|j�d�|j�d�|jj�|j�t�|j�|_ |j �t�dddd
��|j �d�|j �d�|j �d�|j �d�|j �d�|j �d�|j j�|j!�t�|j�|_"|j"�t�ddd	d
��t��}|�	d�|�
d�|j"�|�|j"�d�|j"�d�t�|j�|_#|j#�t�dddd
��t��}|�	d�|�
d�|j#�|�|j#�d�|j#�d�t�|j�|_$|j$�t�dddd
��|j$�d�t�%|j�|_&|j&�t�d d!d"d
��t��}|�	d�|�
d�|j&�|�|j&�d#�|j&j'�|j(�t�|j�|_)|j)�t�dd$d	d
��t��}|�	d�|�
d�|j)�|�|j)�d�|j)�d%�t�%|j�|_*|j*�t�d&d!d'd
��t��}|�	d�|�
d�|j*�|�|j*�d(�|j*j'�|j+�t�%|j�|_,|j,�t�d)d*d"d+��t��}|�	d�|�
d�|j,�|�|j,�d,�|j,�-d�|j,j'�|j.�t�|j�|_/|j/�t�ddd	d
��|j/�0d�|j/�1t�2d-��|j/�d.�t�|j�|_3|j3�t�d/dd0d
��|j3�0d�|j3�1t�2d1��|j3�d2�t�|j�|_4|j4�t�d/dd	d	��|j4�0d�|j4�1t�2d3��|j4�d4�t�5|j�|_6|j6�t�d5d6d7d8��|j6�d9�|j6j7�|j8�t�5|j�|_9|j9�t�d:d;d<d8��|j9�d=�|j9j7�|j:�t�5|j�|_;|j;�t�d5d>d?d8��|j;�d@�|j;j7�|j<�t�5|j�|_=|j=�t�d5d$d?d8��|j=�dA�|j=j7�|j>�t�5|j�|_?|j?�t�d:dBd<d8��|j?�dC�|j?j7�|j@�t�|j�|_A|jA�t�dDd$dEd8��|jA�d�|jA�dF�t�5|j�|_B|jB�t�d5dGd<d8��|jB�dH�|jBj7�|jC�t�5|j�|_D|jD�t�d5dIdJd/��|jD�dK�|jDj7�|jE�t�5|j�|_F|jF�t�d5ddLd8��|jF�dM�|jFj7�|jG�t�5|j�|_H|jH�t�d5dNdJd8��|jH�dO�|jHj7�|jI�t�5|j�|_J|jJ�t�d:dPdQd8��|jJ�dR�|jJj7�|jK�t�5|j�|_L|jL�t�dSdTdQd8��|jL�dU�|jL�-d�t�5|j�|_M|jM�t�dSdVdWd8��|jM�dX�|jM�-d�t�|j�|_N|jN�t�dYdZd[d\��|jN�d]�|jN�d�|jN�d�|jN�d�|jN�d�|jN�d�|jN�d�|jN�d�|jN�d�|jN�-d�t�5|j�|_O|jO�t�d5dPd^d8��|jO�d_�|jOj7�|jP�t�5|j�|_Q|jQ�t�d5dd?d8��|jQ�d`�|jQj7�|jR�t�5|j�|_St�5|j�|_T|jT�t�d5dadd8��|jT�db�|jTj7�|jU�t�|j�|_V|jV�t�dDdcdEd8��|jV�d�|jV�dd�t�|j�|_W|jW�t�dDdedEd8��|jW�d�|jW�df�t�|j�|_X|jX�t�dDdgdEd8��|jX�d�|jX�dh�t�|j�|_Y|jY�t�dDdNdEd8��|jY�d�|jY�di�t�5|j�|_Z|jZ�t�d:d6dEd8��|jZ�dj�|jZj7�|j[�|jS�t�d5d;dJd/��|jS�dk�|jSj7�|j\�t�|j�|_]|j]�t�dd;dd
��|j]�dl�|j]j�|j^�t�|j�|__|j_�`d�|j_�t�dd$dd
��|j_�dm�|j_j�|ja�t�btjc|j�|_d|jd�
tjj�|jd�dndodcd;�|jd�edp�|jd�fdq�|jd�gdc�|jd�htjbji�|jd�jd�|jd�-d�|jdjk�|jl�t�btjc|j�|_m|jm�
tjj�|jm�dndrdcd;�|jm�edp�|jm�fdq�|jm�gdc�|jm�htjbji�|jm�jd�|jm�-d�|jmjk�|jn�t�btjc|j�|_o|jo�
tjj�|jo�dnd&dcd;�|jo�edp�|jo�fd?�|jo�gdc�|jo�htjbji�|jo�jd�|jo�-d�|jojk�|jp�t�btjc|j�|_q|jq�
tjj�|jq�dndsdcd;�|jq�edp�|jq�fdq�|jq�gdc�|jq�htjbji�|jq�jd�|jq�-d�|jqjk�|jr�t�btjc|j�|_s|js�
tjj�|js�dndtdcd;�|js�edp�|js�fdu�|js�gdv�|js�htbji�|js�jd�|js�-d�|jsjk�|jt�t��}|�	d�|�
d�|�u|j�|�v|�tjw�x|�dS)wN�HpScani�iXF�2�dockWidgetContents�
�Y�3�)T�K�
label_Type�Ur@��
comboBox_TyperJ��comboBox_Flatbedr�comboBox_Colori�comboBox_ResolutioniI�
label_Size��A�label_Devicer7�comboBox_Papersize�<i��Q�pushButton_Scani��
label_Path��e�pushButton_Changei�i1��pushButton_Mergez,/usr/share/hplip/data/images/other/flat1.png�
label_Flatbed��=z-/usr/share/hplip/data/images/other/viewer.png�label_Colorz1/usr/share/hplip/data/images/other/resolution.png�label_Resolutioni,�F�u��auto_orienti&����crushedi^rF�
searchablePDF�punchhole_removalih�
color_dropouti0��label_CRi��bg_color_removalr0rE�	auto_crop���
multi_pick��
blank_page�����batch_seperationi:i�bp_blankpagei"i7�
bp_barcodeiNi@i��comboBox_Barcode_Type��document_merge�
mixed_feedi6�document_merge_adf_flatbedr:�label_Brightness��label_Contrast��label_Sharpness�label_Color_value�image_enhancement�deskew_image�comboBox_Device_URI�
comboBox_pathi��_r��}�i��crZ)y�platform�python_version�
setObjectName�setMinimumSizer�QSize�setMaximumSizer�QFont�setBold�	setWeight�setFont�setMouseTracking�setFocusPolicy�Qt�NoFocusr�QWidgetr]�QLabelrc�setGeometry�QRect�	QComboBoxrf�addItem�currentIndexChanged�connect�comboBox_TypeIndexChangedrhri�comboBox_ColorIndexChangedrj�comboBox_ResIndexChangedrkrnro�QPushButtonrr�clicked�scanButton_clickedrsrv�
selectFilerx�
setEnabled�mergeButton_clickedry�setText�	setPixmap�QPixmapr|r}�	QCheckBoxr��stateChanged�Auto_orientr��Crushedr��
SearchablePDFr��Punchhole_removalr��
Color_dropoutr�r��Bg_color_removalr��	Auto_cropr��
Multi_pickr��
Blank_pager��batch_Seperationr�r�r�r��Document_merger��
Mixed_feedr�r��Document_merge_adf_flatbedr�r�r�r�r��Image_enhancement�Deskew_imager��comboBox_device_URIr��setEditable�
comboBox_Path�QSlider�
Horizontal�s1�
setMinimum�
setMaximum�setValue�setTickPosition�
TicksBelow�setTickInterval�valueChanged�valuechange_brightness�s2�valuechange_contrast�s3�valuechange_sharpness�s4�valuechange_color�s5�valuechange_range�	setWidget�
retranslateUi�QMetaObject�connectSlotsByName)�selfr[�
pyPlatform�fontrSrSrT�setupUis.






















zUi_HpScan.setupUicC�d|_|j��|_dS�NT)�
brightnessr��value�sizel1�r�rSrSrTr���z Ui_HpScan.valuechange_brightnesscCr�r�)�contrastr�r��sizel2rrSrSrTr��rzUi_HpScan.valuechange_contrastcCr�r�)�	sharpnessr�r��sizel3rrSrSrTr��rzUi_HpScan.valuechange_sharpnesscCr�r�)�color_valuer�r��sizel4rrSrSrTr��rzUi_HpScan.valuechange_colorcCr�r�)�color_ranger�r��sizel5rrSrSrTr�rzUi_HpScan.valuechange_rangeNcCs|}dSrKrS)r��new_path�pathrSrSrTr�szUi_HpScan.comboBox_PathcCs:t�d�}|r|�|�|j�dtd|d��|adSdS)Nrr[)�QFileDialog�getExistingDirectoryr�r��setItemTextrUr)r�r
rSrSrTr�	s

�zUi_HpScan.selectFilecCs$d|jd|jd|jd|jd|j}|jdks#|jdkr*|d|j}|jd	kr3|d
}|j��dkr@|dd}|j��dkrM|dd
}|j	��dkrZ|dd}|j
��dkrg|dd}|j��dkrt|dd}|j��dkr�|dddt
|j�}|j��dkr�|dddt
|j�}|j��dkr�|dddt
|j�}|j��dkr�|jdkr�|dddt
|j�}|j��dkr�t�dd|�}|dd}|j��dkr�|dd}|j��dkr�|dd}|j��dk�r|dd}|j��dk�r|dd}|j��dk�r!|dd}|j��dk�r<|jdk�r<|dddt
|j�}|j��dk�rW|jdk�rW|dddt
|j�}|j��dk�rr|j dk�rr|dd dt
|j!�}|j��dk�r�|j"dk�r�|dd!dt
|j#�}|j$��dk�r�|j%��dk�r�|dd"}n|j&��dk�r�|dd#}n|�'d$�|d%t
t(�}|dd&}|j)�*d'�t+�,|�}|d(d)k�r�|�'t-�n�|d(d*k�r�|�.t/�n�|d(d+k�r|d,�0d-d,�d,}|�0d.d,�d(d.}d'}|j1��dk�rd}t2�3||�|j)�*d�nk|d(d/k�rqd'}|d,�0d-d,�d,}|�0d0d,�d(d0}|D]}|d1v�rK|�4|d�}�q>|�0d2�}d'}|D]}|j1��dk�rbd}t2�3||�|j)�*d��qVn|d(d3k�r~|�'t5�n|d(d4k�r�|�.t-�|j)�*d�dS)5Nzhp-scan --device=z --filetype=z --mode=z --res=z --size=�adf�duplexz --zadf-backsidez --duplex --backsideT�	multipick�
autoorientr�r�r��color_dropout_red_value�=�color_dropout_green_value�color_dropout_blue_valuerz\--size=.+\ rJ�	mixedfeed�docmerge�autocrop�deskew�	blankpage�adf_fladbed_merger�rrr�
batchsepBP�
batchsepBCz8Select either barcode or blankpage option for separationz --path=�uiscanFr����zerror: �.pdf��]z[']�,��)6�
device_uri�	file_type�color�
resolution�size�sourcer��	isCheckedr�r�r�r�r��str�dropout_color_red_value�dropout_color_green_value�dropout_color_blue_valuerr	r��re�subr�r�r�r�r�r�r�r�rrrrrrr�r�r��failureMessagerrrr�r�run�multipick_error_message�warningMessage�no_document_error_message�splitr�r�merge_PDF_viewer�replace�convert_error_message)r��cmd�status�
output_pdf�ocr�char�prSrSrTr�s�2



�
�
zUi_HpScan.scanButton_clickedcCsdSrKrSrrSrSrT�msgbtnxszUi_HpScan.msgbtncC�Bt�}|�tj�|�|�|�tj�|j�|j�|�	�}dSrK�
�QMessageBox�setIcon�Informationr��setStandardButtons�Ok�
buttonClickedr�rF�exec_�r��message�msg�retvalrSrSrTr7{�
zUi_HpScan.failureMessagecCrGrKrHrPrSrSrTr:�rTzUi_HpScan.warningMessagecC�t|j�����|_dSrK)r1rf�currentText�lowerr+rrSrSrTr���z#Ui_HpScan.comboBox_TypeIndexChangedcCsg}tD]#}t|d|j|jdkr't|d|j|jdkr'|�|�q|j��|j�|�|jj�|j	�|dkrl|dkrl|dkrl|dkrl|dkrl|d	krl|d
krl|dkrl|dkrl|d
krl|dkrld|_
dS|j��|j�d�|j�d�|j�d�|dks�|d
ks�|dks�|dks�|dkr�|dkr�d|_
|j
�d�|j�dtddd��|j�dtddd��|j�dtddd��|j�d�n^|dks�|dks�|dks�|dks�|d	ks�|d
k�r*|d
kr�d|_
|j
�d�|j�d�|j�dtddd��|j�dtddd��|j�dtddd��|j�dtddd��|j�d�|dk�sa|dk�sa|dk�sa|dk�sa|dk�sa|d	k�sa|d
k�sa|dk�sa|dk�sa|d
k�sa|dk�r�|d
k�sk|dk�rtd|_
|j
�d�t|j�����|_|jj�|j�dSdS)Nrr#r �5000�7500�9120�8500�3500�4500�3000�7000�2000�2500�4000FrJr[�Duplex�ADF�ADF-Backside�Flatbedr!)�
PAGE_SIZES�
devicelistr*�appendro�clear�addItemsr�r��comboBox_PaperSizeIndexChanged�multi_pick_prirhr�r�r�rrU�setCurrentIndexr1rVrWr/�comboBox_SourceSelected)r��device�supported_PageSizes�xrSrSrT�comboBox_SourceChanged�sN8
�
X

(2n�z Ui_HpScan.comboBox_SourceChangedcCs,t|j�����|_|jdkrd|_dSdS)N�flatbedrJ)r1rhrVrWr/rrSrSrTrp�s

�z!Ui_HpScan.comboBox_SourceSelectedcCrUrK)r1rirVrWr,rrSrSrTr��rXz$Ui_HpScan.comboBox_ColorIndexChangedcCrUrK)r1rjrVrWr-rrSrSrTr��rXz"Ui_HpScan.comboBox_ResIndexChangedcCst|j���|_dSrK)r1rorVr.rrSrSrTrm�sz(Ui_HpScan.comboBox_PaperSizeIndexChangedcCsx|j��dkr�|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�t�	�}|�
d
�}|ddkrt|j�d�|j�
d�|��|j�
d�|jj�|j�dS|��|j�
d�|jdkr�|j�
d�|jj�|j�|jj�|j�dSt�d
|j�s�t�d|jtj�s�t�d|j�s�t�d|j�s�t�d|j�s�t�d|j��r|j��|j�d�|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�n�t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��s`t�d|j��r�|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�|��|j�d�|j�d�|j�
d�|j�
d�dS)NTrJrr[rdr#rer rf�.�3F�_7500�_N9120�_8500fn2�_3500_f1�	_4500_fn1�hpgt2500rgr!�_5000_�_7000_s3�_3000_s3�hp2000S1�_2000_s2�	7000_snw1�	4000_snw1�_3000_s4�_5000_s5)r�r0rhrkr�rrUror�r�r<r��
setCheckedr��CheckEnabler�r�r��bp_Blankpage�batchsepBC_pri�
bp_Barcoder5�searchr*�I�r�r��numrSrSrTr��s`


Z
�
zUi_HpScan.batch_SeperationcCs�t��}t�d�}|ddkr|j�d�|j�d�dS|j��dkr2|j�d�|j�d�dS|j�d�|j�d�dS)NrvrrwFT)	r�r�r�r<r�r�r�r0r�)r��	pyPlaformr�rSrSrTr�s
zUi_HpScan.bp_BarcodecCs�|j��dkr*|jdkr|j�d�|j�d�|j�d�|j�tddd��dS|jdkr5|j�d�t	�
�}|�d�}|ddkrK|j�d�n|jdkrV|j�d�|j�d�|j�tddd��dS)	NTFr[zBlank page seperation removal rvrrwzDelete blank page )
r�r0�blank_page_prir�r�r�r�r�rUr�r�r<r�r�rSrSrTr�s 



zUi_HpScan.bp_BlankpagecCs�|j��dkrV|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�|jdkrP|j�	d�|�
�dSt�d
|j
�s�t�d|j
tj�s�t�d|j
�s�t�d
|j
�s�t�d|j
�s�t�d|j
�r�|j��|j�d�|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�n�t�d|j
��st�d|j
��st�d|j
��st�d|j
��st�d|j
��st�d|j
��st�d|j
��st�d|j
��st�d|j
��rX|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�|�
�dS)NTrJrr[rdr#rer rfrxryrzr{r|r}rgr!r~rr�r�r�r�r�r�r�)r�r0rhrkr�rrUrornr�r�r5r�r*r�rrSrSrTr�(sB

X
�
zUi_HpScan.Multi_pickcC�<|j��dkr|jdkr|j�d�|��dS|��dSr�)r�r0�auto_orient_prir�r�rrSrSrTr�L�

zUi_HpScan.Auto_orientcCs6|j��dkr�|j��dkr�|j��dkr�|j��dkr�|j��dkr�|j��dkr�|j��dkr�|j��dkr�|j	��dkr�|j
��dkr�|j��dkr�|j��dkr�|j��dkr�|j
�d�|j�d�|jdkrr|j
�d�|jdkr|j�d�dSdS|j
�d�|j�d�|j
�d�|j�d�dS)NFT)r�r0r�r�r�r�r�r�r�r�r�r�r�r�r�r��mixed_feed_prir��document_merge_prirrSrSrTr�Ts�

�
zUi_HpScan.CheckEnablecCsl|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j
�d�|j�d�|j�d�|j
�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j
�d�|j�d�|j�d�|j
�d�|j�d�|j�d�dS)NF)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrSrSrT�DisableAllScanjetvs<zUi_HpScan.DisableAllScanjetcCs(|j��dks|j��dkr�|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j
�d�|j�d�|j�d�|j
�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j
�d�|j�d�|j�d�|j
�d�|j�d�|j�d�|j�d�dS|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j
�d�|j�d�|j�d�|j
�d�|j�d�|j�d�|j�d�|jdk�r|j�d�|jdk�r|j�d�|jdk�r|j�d�|jdk�r*|j�d�|jdk�r6|j�d�|jdk�rB|j�d�|j	�d�|jdk�rT|j
�d�|jdk�r`|j�d�|jdk�rl|j�d�|jdk�rx|j�d�|jdk�r�|j�d�|jdk�r�|j
�d�dSdS�NTF)r�r0r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��searchablePDF_pri�
auto_crop_pri�image_enhancement_pri�document_merge_adf_flatbed_prirn�deskew_image_prir��bg_color_removal_pri�punchhole_removal_pri�color_dropout_pri�crushed_prirrSrSrT�
DisableAll�s��zUi_HpScan.DisableAllcC�>|j��dkr|jdkr|j�d�|��dS|��	dSr�)r�r0r�r�r�rrSrSrTr��s
zUi_HpScan.CrushedcCsl|j��dkr*|j�d�|j�d�|j�d�|jdkr$|j�d�|��dS|j�d�|��dS)NTr F)r�r0r�rfror�r�rrSrSrTr�s
zUi_HpScan.SearchablePDFcCr�r�)r�r0r�r�r�rrSrSrTr�r�zUi_HpScan.Auto_cropcCr�r�)r�r0r�r�r�rrSrSrTr�r�zUi_HpScan.Deskew_imagecCr�r�)r�r0r�r�r�rrSrSrTr� r�zUi_HpScan.Blank_pagecCs|j��dkr�|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�|jdkrP|j�	d�|�
�|j�d
�|j
�d
�|j�	d
�|j
�	d
�|j�	d
�|j�d
�|j�	d
�|j�d
�|j�	d
�|j�d
�|j�	d
�dSt�d|j�s�t�d|jtj�s�t�d
|j�s�t�d|j�s�t�d|j�s�t�d|j��r|j��|j�d�|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�n�t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��s]t�d|j��r�|j��|j�d�|j�d�|j�d�|j�dtddd��|j�dtddd��|j�dtdd	d��|j�d�|j�d
�|�
�|j
�d
�|j�d
�|j�d
�|j�d
�|jdk�r�|j�	d�|jdk�r�|j
�	d�|jdk�r�|j�	d�|j�	d�|jdk�r�|j�	d�|jdk�r�|j�	d�|jdk�r
|j�	d�dSdS)NTrJrr[rdr#rer rfFrxryrzr{r|rbrgr!r~rr�r�r�r�r�r�r�)r�r0rhrkr�rrUror�r�r�r�r�r�ror�r�r�r5r�r*r�r�r�r�r�r�rrSrSrTr�(s~

Z
�
�zUi_HpScan.Mixed_feedcCr�r�)r�r0r�r�r�rrSrSrTr�is
zUi_HpScan.Bg_color_removalcCr�r�)r�r0r�r�r�rrSrSrTr��s

zUi_HpScan.Punchhole_removalcCs�|j��dkr:|jdkr|j�d�	t��}|j�d�t|���}t	|d�|_
t	|d�|_t	|d�|_dS|�
�|j�d�	dS)NTrr#r F)r�r0r�r��QColorDialog�getColorr��list�getRgbr1r2r3r4r�)r�r,�RGBVALUErSrSrTr��s
zUi_HpScan.Color_dropoutcCs�|j��dk�r_|jdkr|j�d�|��|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j	�d�|j	�d�|j
�d�|j
�d�t�d|j
�s�t�d|j
�s�t�d|j
�s�t�d|j
�s�t�d|j
�s�t�d|j
�s�t�d	|j
�s�t�d
|j
�s�t�d|j
�r�|j��|j�d�|j�d�|j�d�|j�d
tddd��|j�dtddd��|j�dtddd��|j�d�n|t�d|j
�s�t�d|j
tj�s�t�d|j
�s�t�d|j
�s�t�d|j
�s�t�d|j
��rM|j��|j�d�|j�d�|j�d�|j�d�|j�d
tddd��|j�dtddd��|j�dtddd��|j�dtddd��|j�d�|j�d�t|j�����|_dS|��|j�d�|j�d�|j�d�|j	�d�|j
�d�|jdk�r�|j�d�|jdk�r�|j�d�|jdk�r�|j�d�|jdk�r�|j	�d�|jdk�r�|j
�d�|j�d�t�d|j
��s�t�d|j
tj��s�t�d|j
��s�t�d|j
��s�t�d|j
��s�t�d|j
��rE|j��|j�d�|j�d�|j�d�|j�d�|j�d
tddd��|j�dtddd��|j�dtddd��|j�dtddd��|j�d�n�t�d|j
��s�t�d|j
��s�t�d|j
��s�t�d|j
��s�t�d|j
��s�t�d|j
��s�t�d	|j
��s�t�d
|j
��s�t�d|j
��r�|j��|j�d�|j�d�|j�d�|j�d
tddd��|j�dtddd��|j�dtddd��|j�d
�t|j�����|_dS)NTFr~rr�r�r�r�r�r�r�rJrr[rer#rdr rfrxryrzr{r|rbrgr!)r�r0r�r�r�r�r�r�r�r�r�r5r�r*rhrkr�rrUror�r1rVrWr/r�r�r�r�r�rrSrSrTr��s�
~
Z
d
�
zUi_HpScan.Document_mergecCs�|j��dkr*|��|jdkr|j�d�|j�d�|j�d�|j�d�dS|��|j�d�|j�d�|j�d�dS)NTr Fr)r�r0r�r�r�rfrorxrrSrSrTr�*s
z$Ui_HpScan.Document_merge_adf_flatbedcCs�|j��dkr0|��|jdkr|j�d�|j�d�|j�d�|j�d�|j�d�dS|��|j�d�|j�d�|j�d�|j�d�dSr�)	r�r0r�r�r�r�r�r�r�rrSrSrTr�:s
zUi_HpScan.Image_enhancementc
Cs�ddlm}m}tt�}t�dd|�}dd�t�|�D�}t	|�dkr^|�
�|�}t�|�|D]
}|�||�d�q1|D]}t�
|�q>|�|�d}	|j��d	krVd	}	t�||	�dS|�t�dS)
Nr)�
PdfFileReader�
PdfFileMerger�Mergedr$cSs$g|]}|�d�r|�d�r|�qS)�hpscanMerger$)�
startswith�endswith)�.0�frSrSrT�
<listcomp>Ps$z1Ui_HpScan.mergeButton_clicked.<locals>.<listcomp>�hpscanFT)�PyPDF2r�r�r1rr�createSequencedFilename�os�listdir�len�sort�chdirrj�remove�writer�r0rr=r:�no_pages_to_merge)
r�r�r��path1rB�files�mergerrsrErCrSrSrTr�Ks&


zUi_HpScan.mergeButton_clickedcCs�t�d|j�rd|_n�t�d|j�rd|_n�t�d|j�r!d|_n�t�d|j�r,d|_nzt�d	|jtj�r9d
|_nmt�d|j�rDd|_nbt�d
|j�rOd|_nWt�d|j�rZd|_nLt�d|j�red|_nAt�d|j�rpd|_n6t�d|j�r{d|_n+t�d|j�r�d|_n t�d|j�r�d|_nt�d|j�r�d|_n
t�d|j�r�d|_|jdks�|jdks�|jd
ks�|jdks�|jdks�|jdks�|jdks�|jdks�|jdks�|jdks�|jdkr�|�|j�dSdS)Nr~rYrxrZr�rar}rbryr[rzr\r{r]r|r^rr`r�r_r�r�r�rcr�r�)r5r�r*�device_namer�rtrrSrSrT�
change_sourceosBn�zUi_HpScan.change_sourcecCst|j���|_|��dSrK)r1r�rVr*r�rrSrSrTr��szUi_HpScan.comboBox_device_URIcCsr|�tddd��|j�tddd��|j�tddd��|j�tddd��|j�tddd��|j�tddd��|j�tddd��|j	�tdd	d��|j
�tdd
d��|j�tddd��|j�
dtdd
d��|j�
dtddd��|j�
dtddd��|j�
dtddd��|j�
dtddd��	|j�
dtddd��|j�
dtddd��|j�d�|j�
dtddd��|j�
dtddd��|j�
dtddd��|j�
dtddd��|j�
dtddd��|j�d�|j�tddd��|j�tddd��|j�tddd��|j�tdd d��|j�tdd!d��|j�tdd"d��|j�tdd#d��|j�tdd$d��|j�tdd%d��|j�tdd&d��|j�tdd'd��|j�tdd(d��|j�tdd)d��|j�tdd*d��|j�tdd+d��|j �tdd,d��|j!�
dtdd-d��|j!�
dtdd.d��|j!�
dtdd/d��|j!�
dtdd0d��|j!�
dtdd1d��|j!�
d2tdd3d��|j!�
d4tdd5d��|j!�
d6tdd7d��|j"�tdd8d��|j#�tdd9d��|j$�tdd:d��|j%�tdd;d��d}|j&D]�}t'�(d<|��s�t'�(d=|��s�t'�(d>|t'j)��s�t'�(d?|��s�t'�(d@|��s�t'�(dA|��s�t'�(dB|��s�t'�(dC|��s�t'�(dD|��s�t'�(dE|��s�t'�(dF|��s�t'�(dG|��s�t'�(dH|��s�t'�(dI|��s�t'�(dJ|��r�|j*�+|�|j*�
|td|d��|d7}�q|j,d7_,�q|j-�+t.�|j-�
dtdt.d��dS)KNr[zHP-Scanz    Typez    Sizez    Pathz
    Devicez    Brightnessz	    Rangez    Contrastz
    Sharpnessz	    Colorr�PNGr#�JPGr �PDFr!�TIFFr"�BMP�Gray�Color�75�100�200rY�600�ScanzChange Path�MergezAuto Orient zBackground noise Removal zSearchable PDF zPunch Hole Removal zColor Removal/Dropout zBackground Color RemovalzCrop to content on page zStraighten page content zMisfeed(multipick) detectionzDelete blank pages zSeparate the documentzBefore each blank pagezBefore each page with a barcodez
Any formatzCode 39,Code 39 full ASCIIzEAN 8/13,UPC-a,UPC-E(6-digit)zCode 128,GS1-128(UCC/EAN-128)�Codebarr%zITF(2 of 5 interleaved)r(zPDF 417r)zPostnet codez
Page mergezDocument mergezImage enhancementzMixed document feedr~rxryrzr{r|rr�r�r}r�r�r�r�r�)/�setWindowTitlerUrcr�rkrsrnr�r�r�r�r�rfrrirorjrrrvrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rir5r�r�r�r��other_device_cntr�r)r�r[�irqrSrSrTr��s|
�zUi_HpScan.retranslateUirK)b�__name__�
__module__�__qualname__rir+r/r,r-r.r*r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r2r3r4rrrrr�rrrr	r�r�r�r�r�rnr�r�r�r�r�r�r�r�r�r�rCr�r�r�r�r�r�r�r�r�rFr7r:r�rtrpr�r�rmr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rSrSrSrTrVFs�f	

e*;$" F'
A#$+O$&rVc@seZdZdd�ZdS)�SetupDialogcCs0ddl}t�|j�}t��}t�}i}t��t��}|D]�\}}}	}
t	�
d|�st	�
d|�st	�
d|t	j�st	�
d|�st	�
d|�st	�
d|�st	�
d|�st	�
d	|�st	�
d
|�st	�
d|�st	�
d|�st	�
d
|�st	�
d|�st	�
d|�st	�
d|�r�z1t�|�}|�
d��d�}|�
d��d�}
|	g||<||�t|�dt|
�dg�|��WqYqqt��||_|�|�t��}|du�rG|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j�d�|j �d�|j!�d�|j"�d�|j#�d�|j$�d�|j%�d�d|_&d|_'d|_(d|_)d|_*d|_+d|_,d|_-d|_.d|_/d|_0d|_1d|_2t�3�}|du�r�|j�d�|j�d�|j�d�|j�d�|j�d�|j �d�|j!�d�|j"�d�|j#�d�|j$�d�|j%�d�|j�d�|j�d�d|_&d|_'d|_(d|_)d|_*d|_+d|_,d|_0d|_-d|_.d|_/t�4�}|du�r�|j�d�|j�d�|j$�d�|j!�d�|j#�d�d|_/d|_&d|_'d|_(d|_-t�5�}|du�r|j"�d�d|_.t�6�}|du�r|j�d�d|_&t�7�}|du�r+|j�d�d|_)t�8�}|du�r=|j�d�d|_*t�9�}|du�rX|j%�d�|j�d�d|_0d|_+t�:�}|du�rj|j;�d�d|_<	|j=�>�dk�r�|j?dk�r�d}|�@|�dSd}|�@|�dS|�A�|�B|�C��dS)Nrr~rxryrzr{r|rr�r�r}r�r�r�r�r�zbr-xzbr-yr#FTz*hp-uiscan is not supported for this devicezNo device connected)D�sysr�QApplication�argv�QDockWidgetrVr�init�
getDevicesr5r�r��
openDevice�getOptionObj�limitAndSet�extend�int�	closeScan�deInitrir�r�	check_pilr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��check_numpy�check_opencv�
check_skimage�check_scipy�check_tesserocr_imutils�check_pypdfocr�check_pypdf2�
check_zbarr�r�r��countr�r7�show�exitrO)r�r��appr[�uiri�sane_devicesrq�mfg�mdl�t�
scanDevice�brx�bry�scanjet_flag�
scanjet_errorrSrSrTr�s��

"�











zSetupDialog.setupUiN)r�r�r�r�rSrSrSrTr�sr�)$�PyQt5rrr�baserrr5r�r��PyQt5.QtGui�PyQt5.QtCore�PyQt5.QtWidgets�scanr�collectionsr	rhr��getcwdrr
r9r?r;r�r�r�r��UnicodeUTF8rNrU�AttributeError�objectrVr�rSrSrSrT�<module>sN�E

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists