%PDF- %PDF-
| Direktori : /usr/share/hplip/ui5/ |
| Current File : //usr/share/hplip/ui5/scandialog.py |
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Hp-Scan.ui'
#
# Created by: PyQt5 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from base import utils,imageprocessing
#from scan import sane
import re
import os
import platform
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from scan import sane
from collections import OrderedDict
PAGE_SIZES = OrderedDict([ # in mm
("letter" , (215, 279, "Letter", 'in')),
('a3' , (297, 420, "A3", 'mm')),
("a4" , (210, 297, "A4", 'mm')),
("a5" , (148, 210, "A5", 'mm')),
('5x7' , (127, 178, "5x7 photo", 'in')),
('4x6' , (102, 152, "4x6 photo", 'in')),
('3x5' , (76, 127, "3x5 index card", 'in')),
('a2_env' , (111, 146, "A2 Envelope", 'in')),
("a6" , (105, 148, "A6", 'mm')),
("b4" , (257, 364, "B4", 'mm')),
("b5" , (182, 257, "B5", 'mm')),
("c6_env" , (114, 162, "C6 Envelope", 'in')),
("dl_env" , (110, 220, "DL Envelope", 'in')),
("exec" , (184, 267, "Executive", 'in')),
("flsa" , (216, 330, "Flsa", 'mm')),
("higaki" , (100, 148, "Hagaki", 'mm')),
("japan_env_3" , (120, 235, "Japanese Envelope #3", 'mm')),
("japan_env_4" , (90, 205, "Japanese Envelope #4", 'mm')),
("legal" , (215, 356, "Legal", 'in')),
("no_10_env" , (105, 241, "Number 10 Envelope", 'in')),
("oufufu-hagaki" , (148, 200, "Oufuku-Hagaki", 'mm')),
("photo" , (102, 152, "Photo", 'in')),
("super_b" , (330, 483, "Super B", 'in')),
])
#devicelist = {}
device_name = ''
path = os.getcwd()
new_path = os.getcwd()
multipick_error_message = "The scan operation has been cancelled or a multipick or paper is jammed in the ADF.\nIf you cancelled the scan,click OK.\nIf the scan was terminated due to a multi-feed or paper jam in the ADF,\ndo the following:\n\n1)Clear the ADF path. For instructions see your product documentation.\n2)Check the sheets are not stuck together. Remove any staples, sticky notes,tape or other objects.\n3)Restart the scan\n\nNote:If necessary, turn off automatic detection of multi-pick before starting a new scan\n"
convert_error_message = "Convert command not found. Multiple Tiff document generation,\n Batch seperation feature with Tiff file format,\n Page merge feature and PDF generation using reportlab may not work as excepted.\n Please install ImageMagick package and try again\n"
no_document_error_message = "No document(s). Please load documents and try again."
no_pages_to_merge = "No scanned documents to merge."
pyPlatform = ''
num= {}
try:
_encoding = QtWidgets.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtCore.QCoreApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtCore.QCoreApplication.translate(context, text, disambig)
class Ui_HpScan(object):
devicelist = {}
#device_name = ''
file_type = 'png'
source = ''
color = 'gray'
resolution = '300'
size ='letter'
device_uri = ''
multi_pick = False
document_merge =False
auto_orient =False
crushed = False
bg_color_removal = False
punchhole_removal = False
color_dropout = False
edge_erase_bool = False
edge_erase_value = 0
searchablePDF = False
mixed_feed =False
blank_page = False
batch_seperation = False
bp_barcode = False
auto_crop = False
deskew_image = False
document_merge_adf_flatbed = False
image_enhancement = False
brightness = False
dropout_color_red_value = 0
dropout_color_green_value = 0
dropout_color_blue_value = 0
contrast = False
sharpness = False
color_value = False
color_range = True
sizel1 = 0
sizel2 = 0
sizel3 = 0
sizel4 = 0
sizel5 = 49
deskew_image_pri = True
auto_crop_pri = True
mixed_feed_pri = True
auto_orient_pri = True
document_merge_adf_flatbed_pri = True
multi_pick_pri = True
searchablePDF_pri = True
#batch_seperation_pri = True
crushed_pri = True
bg_color_removal_pri = True
punchhole_removal_pri =True
color_dropout_pri = True
document_merge_pri = True
image_enhancement_pri = True
blank_page_pri = True
batchsepBC_pri = True
other_device_cnt = 0
ocr = False
def setupUi(self, HpScan):
pyPlatform = platform.python_version()
HpScan.setObjectName("HpScan")
HpScan.setMinimumSize(QtCore.QSize(900, 600))
HpScan.setMaximumSize(QtCore.QSize(900, 600))
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
HpScan.setFont(font)
HpScan.setMouseTracking(False)
HpScan.setFocusPolicy(QtCore.Qt.NoFocus)
self.dockWidgetContents = QtWidgets.QWidget()
self.dockWidgetContents.setObjectName("dockWidgetContents")
self.label_Type = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Type.setGeometry(QtCore.QRect(10, 89, 51, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_Type.setFont(font)
self.label_Type.setMouseTracking(True)
self.label_Type.setObjectName("label_Type")
self.comboBox_Type = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Type.setGeometry(QtCore.QRect(85, 90, 171, 41))
self.comboBox_Type.setObjectName("comboBox_Type")
self.comboBox_Type.addItem("")
self.comboBox_Type.addItem("")
self.comboBox_Type.addItem("")
self.comboBox_Type.addItem("")
self.comboBox_Type.addItem("")
self.comboBox_Type.currentIndexChanged.connect(self.comboBox_TypeIndexChanged)
self.comboBox_Flatbed = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Flatbed.setGeometry(QtCore.QRect(85, 150, 171, 41))
self.comboBox_Flatbed.setObjectName("comboBox_Flatbed")
#self.comboBox_Flatbed.addItem(_fromUtf8(""))
#self.comboBox_Flatbed.addItem(_fromUtf8(""))
#self.comboBox_Flatbed.addItem(_fromUtf8(""))
#self.comboBox_Flatbed.currentIndexChanged.connect(self.comboBox_SourceChanged)
self.comboBox_Color = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Color.setGeometry(QtCore.QRect(85, 210, 171, 41))
self.comboBox_Color.setObjectName("comboBox_Color")
self.comboBox_Color.addItem("")
self.comboBox_Color.addItem("")
self.comboBox_Color.currentIndexChanged.connect(self.comboBox_ColorIndexChanged)
self.comboBox_Resolution = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Resolution.setGeometry(QtCore.QRect(85, 270, 171, 41))
self.comboBox_Resolution.setObjectName("comboBox_Resolution")
self.comboBox_Resolution.addItem("")
self.comboBox_Resolution.addItem("")
self.comboBox_Resolution.addItem("")
self.comboBox_Resolution.addItem("")
self.comboBox_Resolution.addItem("")
self.comboBox_Resolution.currentIndexChanged.connect(self.comboBox_ResIndexChanged)
self.label_Size = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Size.setGeometry(QtCore.QRect(10, 329, 51, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_Size.setFont(font)
self.label_Size.setMouseTracking(True)
self.label_Size.setObjectName("label_Size")
self.label_Device = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Device.setGeometry(QtCore.QRect(10, 29, 65, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_Device.setFont(font)
self.label_Device.setMouseTracking(True)
self.label_Device.setObjectName("label_Device")
self.comboBox_Papersize = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Papersize.setGeometry(QtCore.QRect(85, 330, 171, 41))
self.comboBox_Papersize.setObjectName("comboBox_Papersize")
#self.comboBox_Papersize.addItem("")
#self.comboBox_Papersize.addItem("")
#self.comboBox_Papersize.addItem("")
#self.comboBox_Papersize.addItem("")
#self.comboBox_Papersize.addItem("")
#self.comboBox_Papersize.currentIndexChanged.connect(self.comboBox_PaperSizeIndexChanged)
self.pushButton_Scan = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButton_Scan.setGeometry(QtCore.QRect(60, 470, 81, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.pushButton_Scan.setFont(font)
self.pushButton_Scan.setObjectName("pushButton_Scan")
self.pushButton_Scan.clicked.connect(self.scanButton_clicked)
self.label_Path = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Path.setGeometry(QtCore.QRect(10,390, 51, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_Path.setFont(font)
self.label_Path.setMouseTracking(True)
self.label_Path.setObjectName("label_Path")
self.pushButton_Change = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButton_Change.setGeometry(QtCore.QRect(155, 470, 101, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.pushButton_Change.setFont(font)
self.pushButton_Change.setObjectName("pushButton_Change")
self.pushButton_Change.clicked.connect(self.selectFile)
self.pushButton_Merge = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButton_Merge.setGeometry(QtCore.QRect(450, 305, 81, 31))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.pushButton_Merge.setFont(font)
self.pushButton_Merge.setObjectName("pushButton_Merge")
self.pushButton_Merge.setEnabled(False)
self.pushButton_Merge.clicked.connect(self.mergeButton_clicked)
self.label_Flatbed = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Flatbed.setGeometry(QtCore.QRect(10, 150, 51, 41))
self.label_Flatbed.setText("")
self.label_Flatbed.setPixmap(QtGui.QPixmap("/usr/share/hplip/data/images/other/flat1.png"))
self.label_Flatbed.setObjectName("label_Flatbed")
self.label_Color = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Color.setGeometry(QtCore.QRect(20, 210, 61, 41))
self.label_Color.setText("")
self.label_Color.setPixmap(QtGui.QPixmap("/usr/share/hplip/data/images/other/viewer.png"))
self.label_Color.setObjectName("label_Color")
self.label_Resolution = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Resolution.setGeometry(QtCore.QRect(20, 270, 51, 51))
self.label_Resolution.setText("")
self.label_Resolution.setPixmap(QtGui.QPixmap("/usr/share/hplip/data/images/other/resolution.png"))
self.label_Resolution.setObjectName("label_Resolution")
self.auto_orient = QtWidgets.QCheckBox(self.dockWidgetContents)
self.auto_orient.setGeometry(QtCore.QRect(300,70,117, 22))
self.auto_orient.setObjectName("auto_orient")
self.auto_orient.stateChanged.connect(self.Auto_orient)
self.searchablePDF = QtWidgets.QCheckBox(self.dockWidgetContents)
self.searchablePDF.setGeometry(QtCore.QRect(300,350,200, 22))
self.searchablePDF.setObjectName("searchablePDF")
self.searchablePDF.stateChanged.connect(self.SearchablePDF)
self.punchhole_removal = QtWidgets.QCheckBox(self.dockWidgetContents)
self.punchhole_removal.setGeometry(QtCore.QRect(300,390,200, 22))
self.punchhole_removal.setObjectName("punchhole_removal")
self.punchhole_removal.stateChanged.connect(self.Punchhole_removal)
#self.punchhole_removal.stateChanged.connect(self.SearchablePDF)
self.bg_color_removal = QtWidgets.QCheckBox(self.dockWidgetContents)
self.bg_color_removal.setGeometry(QtCore.QRect(300,430,240, 22))
self.bg_color_removal.setObjectName("bg_color_removal")
self.bg_color_removal.stateChanged.connect(self.Bg_color_removal)
#self.bg_color_removal.stateChanged.connect(self.SearchablePDF)
self.auto_crop = QtWidgets.QCheckBox(self.dockWidgetContents)
self.auto_crop.setGeometry(QtCore.QRect(300, 110, 241, 20))
self.auto_crop.setObjectName("auto_crop")
self.auto_crop.stateChanged.connect(self.Auto_crop)
self.multi_pick = QtWidgets.QCheckBox(self.dockWidgetContents)
self.multi_pick.setGeometry(QtCore.QRect(300, 150, 231, 22))
self.multi_pick.setObjectName("multi_pick")
self.multi_pick.stateChanged.connect(self.Multi_pick)
self.blank_page = QtWidgets.QCheckBox(self.dockWidgetContents)
self.blank_page.setGeometry(QtCore.QRect(300, 190, 241, 22))
self.blank_page.setObjectName("blank_page")
self.blank_page.stateChanged.connect(self.Blank_page)
#self.comboBox_Barcode_Type.currentIndexChanged.connect(self.comboBox_ResIndexChanged)
self.document_merge = QtWidgets.QCheckBox(self.dockWidgetContents)
self.document_merge.setGeometry(QtCore.QRect(300, 230, 161, 22))
self.document_merge.setObjectName("document_merge")
self.document_merge.stateChanged.connect(self.Document_merge)
self.mixed_feed = QtWidgets.QCheckBox(self.dockWidgetContents)
self.mixed_feed.setGeometry(QtCore.QRect(300, 270, 200, 22))
self.mixed_feed.setObjectName("mixed_feed")
self.mixed_feed.stateChanged.connect(self.Mixed_feed)
self.deskew_image = QtWidgets.QCheckBox(self.dockWidgetContents)
self.document_merge_adf_flatbed = QtWidgets.QCheckBox(self.dockWidgetContents)
self.document_merge_adf_flatbed.setGeometry(QtCore.QRect(300, 310, 150, 22))
self.document_merge_adf_flatbed.setObjectName("document_merge_adf_flatbed")
self.document_merge_adf_flatbed.stateChanged.connect(self.Document_merge_adf_flatbed)
self.deskew_image.setGeometry(QtCore.QRect(300,30, 241, 20))
self.deskew_image.setObjectName("deskew_image")
self.deskew_image.stateChanged.connect(self.Deskew_image)
self.comboBox_Device_URI = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Device_URI.setGeometry(QtCore.QRect(85, 30, 171, 41))
self.comboBox_Device_URI.setObjectName("comboBox_Device_URI")
self.comboBox_Device_URI.currentIndexChanged.connect(self.comboBox_device_URI)
self.comboBox_path = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_path.setEditable(False)
self.comboBox_path.setGeometry(QtCore.QRect(85,390, 171, 41))
self.comboBox_path.setObjectName("comboBox_path")
self.comboBox_path.currentIndexChanged.connect(self.comboBox_Path)
#column 3
#background noise removal
self.crushed = QtWidgets.QCheckBox(self.dockWidgetContents)
self.crushed.setGeometry(QtCore.QRect(550,30,240, 22))
self.crushed.setObjectName("crushed")
self.crushed.stateChanged.connect(self.Crushed)
#image enhancement
self.image_enhancement = QtWidgets.QCheckBox(self.dockWidgetContents)
self.image_enhancement.setGeometry(QtCore.QRect(550, 70, 250, 22))
self.image_enhancement.setObjectName("image_enhancement")
self.image_enhancement.stateChanged.connect(self.Image_enhancement)
self.label_Brightness = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Brightness.setGeometry(QtCore.QRect(560,100, 250, 22))
self.label_Brightness.setMouseTracking(True)
self.label_Brightness.setObjectName("label_Brightness")
self.label_Contrast = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Contrast.setGeometry(QtCore.QRect(560,130, 250, 22))
self.label_Contrast.setMouseTracking(True)
self.label_Contrast.setObjectName("label_Contrast")
self.label_Sharpness = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Sharpness.setGeometry(QtCore.QRect(560,160, 250, 22))
self.label_Sharpness.setMouseTracking(True)
self.label_Sharpness.setObjectName("label_Sharpness")
self.label_Color_value = QtWidgets.QLabel(self.dockWidgetContents)
self.label_Color_value.setGeometry(QtCore.QRect(560,190, 250, 22))
self.label_Color_value.setMouseTracking(True)
self.label_Color_value.setObjectName("label_Color_value")
#batch seperation
self.batch_seperation = QtWidgets.QCheckBox(self.dockWidgetContents)
self.batch_seperation.setGeometry(QtCore.QRect(550, 230, 201, 22))
self.batch_seperation.setObjectName("batch_seperation")
self.batch_seperation.stateChanged.connect(self.batch_Seperation)
#self.batch_seperation.setEnabled(False)
self.bp_blankpage = QtWidgets.QCheckBox(self.dockWidgetContents)
self.bp_blankpage.setGeometry(QtCore.QRect(570, 260, 201, 22))
self.bp_blankpage.setObjectName("bp_blankpage")
self.bp_blankpage.setEnabled(False)
self.bp_barcode = QtWidgets.QCheckBox(self.dockWidgetContents)
self.bp_barcode.setGeometry(QtCore.QRect(570, 290, 311, 22))
self.bp_barcode.setObjectName("bp_barcode")
self.bp_barcode.setEnabled(False)
self.comboBox_Barcode_Type = QtWidgets.QComboBox(self.dockWidgetContents)
self.comboBox_Barcode_Type.setGeometry(QtCore.QRect(590, 320, 261, 27))
self.comboBox_Barcode_Type.setObjectName("comboBox_Barcode_Type")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.addItem("")
self.comboBox_Barcode_Type.setEnabled(False)
#color dropout
self.color_dropout = QtWidgets.QCheckBox(self.dockWidgetContents)
self.color_dropout.setGeometry(QtCore.QRect(550,360,240, 22))
self.color_dropout.setObjectName("color_dropout")
self.color_dropout.stateChanged.connect(self.Color_dropout)
self.label_CR = QtWidgets.QLabel(self.dockWidgetContents)
self.label_CR.setGeometry(QtCore.QRect(560,390, 250, 22))
self.label_CR.setMouseTracking(True)
self.label_CR.setObjectName("label_CR")
#edge erase
self.edge_erase = QtWidgets.QCheckBox(self.dockWidgetContents)
self.edge_erase.setGeometry(QtCore.QRect(550,420, 250, 22))
self.edge_erase.setObjectName("edge_erase")
self.edge_erase.stateChanged.connect(self.Edge_erase)
self.edge_erase.setEnabled(True)
self.edge_erase_spin_box = QtWidgets.QDoubleSpinBox(self.dockWidgetContents)
self.edge_erase_spin_box.setGeometry(QtCore.QRect(700,420,100,20))
self.edge_erase_spin_box.setObjectName("edge_erase_spin_box")
self.edge_erase_spin_box.setEnabled(False)
self.edge_erase_spin_box.setSuffix("inch")
self.edge_erase_spin_box.setMinimum(0.0)
self.edge_erase_spin_box.setMaximum(1.0)
self.edge_erase_spin_box.setSingleStep(0.1)
self.edge_erase_spin_box.valueChanged.connect(self.edge_erase_spin_box_value_changed)
#self.layout = QtGui.QVBoxLayout(self.dockWidgetContents)
#self.s1 = QtGui.QSlider(Qt.Horizontal)
self.s1 = QtWidgets.QSlider(Qt.Horizontal,self.dockWidgetContents)
self.s1.setFocusPolicy(QtCore.Qt.NoFocus)
self.s1.setGeometry(660, 95, 100, 30)
#self.s1 = QSlider(Qt.Horizontal)
#self.s1.setGeometry(320, 460, 250, 22)
self.s1.setMinimum(0)
self.s1.setMaximum(255)
self.s1.setValue(100)
self.s1.setTickPosition(QtWidgets.QSlider.TicksBelow)
self.s1.setTickInterval(10)
#self.s1.setSliderPosition(5)
#self.layout.addWidget(self.s1,0,QtCore.Qt.AlignRight)
#HpScan.addWidget(self.s1,0,QtCore.Qt.AlignRight)
self.s1.setEnabled(False)
self.s1.valueChanged.connect(self.valuechange_brightness)
self.s2 = QtWidgets.QSlider(Qt.Horizontal,self.dockWidgetContents)
self.s2.setFocusPolicy(QtCore.Qt.NoFocus)
self.s2.setGeometry(660, 125, 100, 30)
#self.s2 = QSlider(Qt.Horizontal)
#self.s2.setGeometry(1320, 480, 250, 22)
self.s2.setMinimum(0)
self.s2.setMaximum(255)
self.s2.setValue(100)
self.s2.setTickPosition(QtWidgets.QSlider.TicksBelow)
self.s2.setTickInterval(10)
#self.layout.addWidget(self.s2,0,QtCore.Qt.AlignRight)
self.s2.setEnabled(False)
#self.layout.setObjectName(_fromUtf8("brightness"))
self.s2.valueChanged.connect(self.valuechange_contrast)
#self.setLayout(layout)
self.s3 = QtWidgets.QSlider(Qt.Horizontal,self.dockWidgetContents)
self.s3.setFocusPolicy(QtCore.Qt.NoFocus)
self.s3.setGeometry(660, 155, 100, 30)
#self.s3 = QSlider(Qt.Horizontal)
#self.s3.setGeometry(1320, 500, 250, 22)
self.s3.setMinimum(0)
self.s3.setMaximum(200)
self.s3.setValue(100)
self.s3.setTickPosition(QtWidgets.QSlider.TicksBelow)
self.s3.setTickInterval(10)
#self.layout.addWidget(self.s3,0,QtCore.Qt.AlignRight)
self.s3.setEnabled(False)
self.s3.valueChanged.connect(self.valuechange_sharpness)
self.s4 = QtWidgets.QSlider(Qt.Horizontal,self.dockWidgetContents)
self.s4.setFocusPolicy(QtCore.Qt.NoFocus)
self.s4.setGeometry(660, 185, 100, 30)
#self.s4 = QSlider(Qt.Horizontal)
#self.s4.setGeometry(1320, 520, 250, 22)
self.s4.setMinimum(0)
self.s4.setMaximum(255)
self.s4.setValue(100)
self.s4.setTickPosition(QtWidgets.QSlider.TicksBelow)
self.s4.setTickInterval(10)
#self.layout.addWidget(self.s4,0,QtCore.Qt.AlignRight)
self.s4.setEnabled(False)
self.s4.valueChanged.connect(self.valuechange_color)
self.s5 = QtWidgets.QSlider(Qt.Horizontal,self.dockWidgetContents)
self.s5.setFocusPolicy(QtCore.Qt.NoFocus)
self.s5.setGeometry(660, 385, 100, 30)
self.s5.setMinimum(0)
self.s5.setMaximum(99)
self.s5.setValue(49)
self.s5.setTickPosition(QSlider.TicksBelow)
self.s5.setTickInterval(10)
self.s5.setEnabled(False)
self.s5.valueChanged.connect(self.valuechange_range)
#self.pushButton_Cancel = QtGui.QPushButton(self.dockWidgetContents)
#self.pushButton_Cancel.setGeometry(QtCore.QRect(150, 270, 99, 41))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
#self.pushButton_Cancel.setFont(font)
#self.pushButton_Cancel.setObjectName(_fromUtf8("pushButton_Cancel"))
HpScan.setWidget(self.dockWidgetContents)
self.retranslateUi(HpScan)
QtCore.QMetaObject.connectSlotsByName(HpScan)
#self.initUI()
def valuechange_brightness(self):
#print "entered value changed brightness"
#global sizel1
self.brightness = True
self.sizel1 = self.s1.value()
#print "printing new value brightness"
#print self.sizel1
def valuechange_contrast(self):
#print "entered value changed contrast"
#global sizel2
self.contrast = True
self.sizel2 = self.s2.value()
#print "printing new value contrast"
#print self.sizel2
def valuechange_sharpness(self):
#print "entered value changed sharpness"
#global sizel3
self.sharpness = True
self.sizel3 = self.s3.value()
#print "printing new value sharpness"
#print self.sizel3
def valuechange_color(self):
#print "entered value changed color"
#global sizel4
self.color_value = True
self.sizel4 = self.s4.value()
#print "printing new value color"
#print self.sizel4
#def initUI(self):
#self.connect(self.pushButton_Scan,SIGNAL("clicked()"),self.scanButton_clicked())
def valuechange_range(self):
#print "entered value changed color"
#global sizel5
self.color_range = True
self.sizel5 = self.s5.value()
def edge_erase_spin_box_value_changed(self):
self.edge_erase_value = round(self.edge_erase_spin_box.value(),2)
#print("self.edge_erase_value = ", self.edge_erase_value)
def comboBox_Path(self, new_path = None):
path = new_path
def selectFile(self):
global path
new_path = QFileDialog.getExistingDirectory(None)
if new_path:
#print "entered"
#print new_path
self.comboBox_Path(new_path)
self.comboBox_path.setItemText(0,_translate("HpScan", new_path, None))
path = new_path
def scanButton_clicked(self):
cmd = "hp-scan" + ' --device=' + self.device_uri + ' --filetype=' + self.file_type + ' --mode=' + self.color + ' --res=' + self.resolution + ' --size=' + self.size
if self.source == 'adf' or self.source == 'duplex':
cmd = cmd + ' --' + self.source
if self.source == 'adf-backside':
cmd = cmd + ' --duplex --backside'
if self.multi_pick.isChecked() == True:
cmd = cmd + ' --' + 'multipick'
if self.auto_orient.isChecked() == True:
cmd = cmd + ' --' + 'autoorient'
if self.crushed.isChecked() == True:
cmd = cmd + ' --' + 'crushed'
if self.bg_color_removal.isChecked() == True:
cmd = cmd + ' --' + 'bg_color_removal'
if self.punchhole_removal.isChecked() == True:
cmd = cmd + ' --' + 'punchhole_removal'
if self.color_dropout.isChecked() == True:
cmd = cmd + ' --' + 'color_dropout_red_value'+ '=' + str(self.dropout_color_red_value)
if self.color_dropout.isChecked() == True:
cmd = cmd + ' --' + 'color_dropout_green_value'+ '=' + str(self.dropout_color_green_value)
if self.color_dropout.isChecked() == True:
cmd = cmd + ' --' + 'color_dropout_blue_value'+ '=' + str(self.dropout_color_blue_value)
if self.color_dropout.isChecked() == True and self.color_range == True:
cmd = cmd + ' --' + 'color_range'+ '=' + str(self.sizel5)
if self.edge_erase.isChecked() == True:
cmd = cmd + ' --' + 'edge_erase_value'+ '=' + (str(self.edge_erase_value))
if self.mixed_feed.isChecked() == True:
cmd = re.sub(r'\--size=.+\ ', '', cmd)
cmd = cmd + ' --' + 'mixedfeed'
if self.document_merge.isChecked() == True:
cmd = cmd + ' --' + 'docmerge'
if self.auto_crop.isChecked() == True:
cmd = cmd + ' --' + 'autocrop'
if self.deskew_image.isChecked() == True:
cmd = cmd + ' --' + 'deskew'
if self.blank_page.isChecked() == True:
cmd = cmd + ' --' + 'blankpage'
if self.document_merge_adf_flatbed.isChecked() == True:
cmd = cmd + ' --' + 'adf_flatbed_merge'
if self.image_enhancement.isChecked() == True and self.brightness == True:
cmd = cmd + ' --' + 'brightness' + '=' + str(self.sizel1)
if self.image_enhancement.isChecked() == True and self.contrast == True:
cmd = cmd + ' --' + 'contrast' + '=' + str(self.sizel2)
if self.image_enhancement.isChecked() == True and self.sharpness == True:
cmd = cmd + ' --' + 'sharpness' + '=' + str(self.sizel3)
if self.image_enhancement.isChecked() == True and self.color_value == True:
cmd = cmd + ' --' + 'color_value' + '=' + str(self.sizel4)
if self.batch_seperation.isChecked() == True:
if self.bp_blankpage.isChecked() == True:
cmd = cmd + ' --' + 'batchsepBP'
elif self.bp_barcode.isChecked() == True:
cmd = cmd + ' --' + 'batchsepBC'
else:
self.failureMessage("Select either barcode or blankpage option for separation")
#if self.bp_barcode.isChecked() == True:
#cmd = cmd + ' --' + 'batchsepBC'
cmd = cmd + ' --path=' + str(path)
cmd = cmd + ' --' + 'uiscan'
#print (cmd)
self.pushButton_Scan.setEnabled(False)
status = utils.run(cmd)
#print (status)
if status[0] == 2:
self.failureMessage(multipick_error_message)
elif status[0] == 3:
self.warningMessage(no_document_error_message)
elif status[0] == 4:
output_pdf = status[1].split("error: ", 1)[1]
output_pdf = output_pdf.split('.pdf', 1)[0]+".pdf"
ocr = False
if self.searchablePDF.isChecked() == True:
ocr = True
imageprocessing.merge_PDF_viewer(output_pdf,ocr)
self.pushButton_Scan.setEnabled(True)
elif status[0] == 5:
ocr = False
output_pdf = status[1].split("error: ", 1)[1]
#print output_pdf
output_pdf = output_pdf.split(']', 1)[0]+"]"
#print output_pdf
for char in output_pdf:
#print char
if char in "[']":
output_pdf = output_pdf.replace(char,'')
output_pdf = output_pdf.split(',')
#print output_pdf
#print type(output_pdf)
ocr = False
for p in output_pdf:
if self.searchablePDF.isChecked() == True:
ocr = True
imageprocessing.merge_PDF_viewer(p,ocr)
self.pushButton_Scan.setEnabled(True)
elif status[0] == 6:
self.failureMessage(convert_error_message)
elif status[0] == 7:
self.warningMessage(multipick_error_message)
self.pushButton_Scan.setEnabled(True)
#if status != 0:
#print("Cmd %s failed with status %d",cmd,status)
#sys.exit(app.exec_())
def msgbtn(self):
pass
def failureMessage(self,message):
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText(message)
msg.setStandardButtons(QMessageBox.Ok)
msg.buttonClicked.connect(self.msgbtn)
retval = msg.exec_()
def warningMessage(self,message):
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText(message)
msg.setStandardButtons(QMessageBox.Ok)
msg.buttonClicked.connect(self.msgbtn)
retval = msg.exec_()
def comboBox_TypeIndexChanged(self):
self.file_type = str(self.comboBox_Type.currentText()).lower()
#print self.file_type
def comboBox_SourceChanged(self,device):
supported_PageSizes =[]
for x in PAGE_SIZES:
if PAGE_SIZES[x][0]<=self.devicelist[self.device_uri][1] and PAGE_SIZES[x][1]<=self.devicelist[self.device_uri][2]:
supported_PageSizes.append(x)
self.comboBox_Papersize.clear()
self.comboBox_Papersize.addItems(supported_PageSizes)
self.comboBox_Papersize.currentIndexChanged.connect(self.comboBox_PaperSizeIndexChanged)
if device != '5000' and device != '7500' and device != '9120' and device != '3600' and device != '4600' and device != '2600' and device != '6600' and device != '8500' and device != '3500' and device != '4500' and device != '3000' and device != '7000' and device != '2000' and device != '2500' and device != '4000':
self.multi_pick_pri = False
else:
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
if device == '5000' or device == '3000' or device == '7000' or device == '2000' or device == '4000':
if device == '2000':
self.multi_pick_pri = False
self.multi_pick.setEnabled(False)
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif device == '7500' or device == '9120' or device == '3600' or device == '4600' or device == '2600' or device == '6600' or device == '8500' or device == '3500' or device == '4500' or device == '2500':
if device == '2500':
self.multi_pick_pri = False
self.multi_pick.setEnabled(False)
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
if device == '5000' or device == '7500' or device == '9120' or device == '3600' or device == '4600' or device == '2600' or device == '6600' or device == '8500' or device == '3500' or device == '4500' or device == '3000' or device == '7000' or device == '2000' or device == '2500' or device =='4000':
if device == '2500' or device == '2000' or device == '2600':
self.multi_pick_pri = False
self.multi_pick.setEnabled(False)
else:
self.multi_pick_pri = True
self.multi_pick.setEnabled(True)
self.source = str(self.comboBox_Flatbed.currentText()).lower()
self.comboBox_Flatbed.currentIndexChanged.connect(self.comboBox_SourceSelected)
def comboBox_SourceSelected(self):
self.source = str(self.comboBox_Flatbed.currentText()).lower()
if self.source == 'flatbed':
self.source = ''
#print self.source
def comboBox_ColorIndexChanged(self):
self.color = str(self.comboBox_Color.currentText()).lower()
#print self.color
def comboBox_ResIndexChanged(self):
self.resolution = str(self.comboBox_Resolution.currentText()).lower()
#print self.resolution
def comboBox_PaperSizeIndexChanged(self):
self.size = str(self.comboBox_Papersize.currentText())
#print self.size
def batch_Seperation(self):
if self.batch_seperation.isChecked() == True:
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
pyPlatform = platform.python_version()
num = pyPlatform.split('.')
if num[0] >= '3':
self.bp_barcode.setChecked(False)
self.bp_barcode.setEnabled(False)
self.CheckEnable()
self.bp_blankpage.setEnabled(True)
self.bp_blankpage.stateChanged.connect(self.bp_Blankpage)
else:
self.CheckEnable()
self.bp_blankpage.setEnabled(True)
if self.batchsepBC_pri == True:
self.bp_barcode.setEnabled(True)
#self.blank_page.setChecked(False)
#self.blank_page.setText(_translate("HpScan", "Blank page seperation removal ", None))
#if pyPlatform < '3':
self.bp_barcode.stateChanged.connect(self.bp_Barcode)
self.bp_blankpage.stateChanged.connect(self.bp_Blankpage)
else:
if (re.search(r'_7500', self.device_uri)) or (re.search(r'_N9120', self.device_uri,re.I)) or (re.search(r'_3600_f1', self.device_uri,re.I)) or (re.search(r'_n4600', self.device_uri,re.I)) or (re.search(r'_2600_f1', self.device_uri,re.I)) or (re.search(r'_n6600', self.device_uri,re.I)) or (re.search(r'_8500fn2', self.device_uri)) or (re.search(r'_3500_f1', self.device_uri)) or (re.search(r'_4500_fn1', self.device_uri)) or (re.search(r'hpgt2500', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif (re.search(r'_5000_', self.device_uri)) or (re.search(r'_7000_s3', self.device_uri)) or (re.search(r'_3000_s3', self.device_uri)) or (re.search(r'hp2000S1', self.device_uri)) or (re.search(r'_2000_s2', self.device_uri)) or (re.search(r'7000_snw1', self.device_uri)) or (re.search(r'4000_snw1', self.device_uri)) or (re.search(r'_3000_s4', self.device_uri)) or (re.search(r'_5000_s5', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(0)
#if pyPlatform < 3:
self.CheckEnable()
self.bp_blankpage.setChecked(False)
self.bp_barcode.setChecked(False)
self.bp_blankpage.setEnabled(False)
self.bp_barcode.setEnabled(False)
#self.blank_page.setChecked(False)
#self.blank_page.setEnabled(True)
#self.blank_page.setText(_translate("HpScan", "Delete blank page ", None))
def bp_Barcode(self):
pyPlaform = platform.python_version()
num = pyPlatform.split('.')
if num[0] >= '3':
self.bp_barcode.setEnabled(False)
self.comboBox_Barcode_Type.setEnabled(False)
else:
if self.bp_barcode.isChecked() == True:
self.comboBox_Barcode_Type.setEnabled(True)
self.bp_blankpage.setEnabled(False)
else:
self.comboBox_Barcode_Type.setEnabled(False)
self.bp_blankpage.setEnabled(True)
def bp_Blankpage(self):
if self.bp_blankpage.isChecked() == True:
if self.blank_page_pri == True:
self.blank_page.setEnabled(True)
self.bp_barcode.setEnabled(False)
self.blank_page.setChecked(False)
self.blank_page.setText(_translate("HpScan", "Blank page seperation removal ", None))
else:
if self.blank_page_pri == True:
self.blank_page.setEnabled(True)
pyPlatform = platform.python_version()
num = pyPlatform.split('.')
if num[0] >= '3':
self.bp_barcode.setEnabled(False)
else:
if self.batchsepBC_pri == True:
self.bp_barcode.setEnabled(True)
self.blank_page.setChecked(False)
#self.blank_page.setEnabled(True)
self.blank_page.setText(_translate("HpScan", "Delete blank page ", None))
def Multi_pick(self):
if self.multi_pick.isChecked() == True:
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
if self.multi_pick_pri == True:
self.multi_pick.setEnabled(True)
self.CheckEnable()
else:
if (re.search(r'_7500', self.device_uri)) or (re.search(r'_N9120', self.device_uri,re.I)) or (re.search(r'_3600_f1', self.device_uri,re.I)) or (re.search(r'_n4600', self.device_uri,re.I)) or (re.search(r'_2600_f1', self.device_uri,re.I)) or (re.search(r'_n6600', self.device_uri,re.I)) or (re.search(r'_8500fn2', self.device_uri)) or (re.search(r'_3500_f1', self.device_uri)) or (re.search(r'_4500_fn1', self.device_uri)) or (re.search(r'hpgt2500', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif (re.search(r'_5000_', self.device_uri)) or (re.search(r'_7000_s3', self.device_uri)) or (re.search(r'_3000_s3', self.device_uri)) or (re.search(r'hp2000S1', self.device_uri)) or (re.search(r'_2000_s2', self.device_uri)) or (re.search(r'7000_snw1', self.device_uri)) or (re.search(r'4000_snw1', self.device_uri)) or (re.search(r'_3000_s4', self.device_uri)) or (re.search(r'_5000_s5', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(0)
self.CheckEnable()
def Auto_orient(self):
if self.auto_orient.isChecked() == True:
if self.auto_orient_pri == True:
self.auto_orient.setEnabled(True)
self.CheckEnable()
else:
self.CheckEnable()
def CheckEnable(self):
if self.auto_orient.isChecked() == False and self.auto_crop.isChecked() == False and self.image_enhancement.isChecked() == False and self.deskew_image.isChecked() == False and self.blank_page.isChecked() == False and self.document_merge_adf_flatbed.isChecked() == False and self.multi_pick.isChecked() == False and self.batch_seperation.isChecked() == False and self.searchablePDF.isChecked() == False and self.crushed.isChecked()== False and self.bg_color_removal.isChecked() == False and self.bg_color_removal.isChecked() == False and self.color_dropout.isChecked() == False:
#self.crushed.setChecked(False)
self.mixed_feed.setChecked(False)
self.document_merge.setChecked(False)
#self.bg_color_removal.setChecked(False)
#self.punchhole_removal.setChecked(False)
#self.color_dropout.setChecked(False)
#if self.crushed_pri == True:
#self.crushed.setEnabled(True)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
#if self.bg_color_removal_pri == True:
#self.bg_color_removal.setEnabled(True)
#if self.punchhole_removal_pri == True:
#self.punchhole_removal.setEnabled(True)
#if self.color_dropout_pri == True:
#self.color_dropout.setEnabled(True)
else:
#self.crushed.setChecked(False)
self.mixed_feed.setChecked(False)
self.document_merge.setChecked(False)
#self.bg_color_removal.setChecked(False)
#self.punchhole_removal.setChecked(False)
#self.color_dropout.setChecked(False)
#self.crushed.setEnabled(False)
self.mixed_feed.setEnabled(False)
self.document_merge.setEnabled(False)
#self.bg_color_removal.setEnabled(False)
#self.punchhole_removal.setEnabled(False)
#self.color_dropout.setEnabled(False)
def DisableAllScanjet(self):
self.auto_orient.setChecked(False)
self.auto_crop.setChecked(False)
self.image_enhancement.setChecked(False)
self.document_merge_adf_flatbed.setChecked(False)
self.multi_pick.setChecked(False)
self.batch_seperation.setChecked(False)
self.deskew_image.setChecked(False)
self.blank_page.setChecked(False)
self.crushed.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
self.mixed_feed.setChecked(False)
self.document_merge.setChecked(False)
self.searchablePDF.setChecked(False)
self.auto_orient.setEnabled(False)
self.auto_crop.setEnabled(False)
self.image_enhancement.setEnabled(False)
self.document_merge_adf_flatbed.setEnabled(False)
self.multi_pick.setEnabled(False)
self.batch_seperation.setEnabled(False)
self.deskew_image.setEnabled(False)
self.blank_page.setEnabled(False)
self.crushed.setEnabled(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setEnabled(False)
self.mixed_feed.setEnabled(False)
self.document_merge.setEnabled(False)
self.searchablePDF.setEnabled(False)
def DisableAll(self):
if self.mixed_feed.isChecked() == True or self.document_merge.isChecked() == True:
self.auto_orient.setChecked(False)
self.auto_crop.setChecked(False)
self.image_enhancement.setChecked(False)
self.document_merge_adf_flatbed.setChecked(False)
self.multi_pick.setChecked(False)
self.batch_seperation.setChecked(False)
self.deskew_image.setChecked(False)
self.blank_page.setChecked(False)
self.searchablePDF.setChecked(False)
self.crushed.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
self.auto_orient.setEnabled(False)
self.auto_crop.setEnabled(False)
self.image_enhancement.setEnabled(False)
self.document_merge_adf_flatbed.setEnabled(False)
self.multi_pick.setEnabled(False)
self.batch_seperation.setEnabled(False)
self.deskew_image.setEnabled(False)
self.blank_page.setEnabled(False)
self.searchablePDF.setEnabled(False)
self.crushed.setEnabled(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setEnabled(False)
else:
self.auto_orient.setChecked(False)
self.auto_crop.setChecked(False)
self.image_enhancement.setChecked(False)
self.document_merge_adf_flatbed.setChecked(False)
self.multi_pick.setChecked(False)
self.batch_seperation.setChecked(False)
self.deskew_image.setChecked(False)
self.blank_page.setChecked(False)
self.searchablePDF.setChecked(False)
self.crushed.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
if self.auto_orient_pri == True:
self.auto_orient.setEnabled(True)
if self.searchablePDF_pri == True:
self.searchablePDF.setEnabled(True)
if self.auto_crop_pri == True:
#print ("auto_crop_pri is still true")
self.auto_crop.setEnabled(True)
if self.image_enhancement_pri == True:
self.image_enhancement.setEnabled(True)
if self.document_merge_adf_flatbed_pri == True:
self.document_merge_adf_flatbed.setEnabled(True)
if self.multi_pick_pri == True:
self.multi_pick.setEnabled(True)
#if self.batch_seperation_pri == True:
self.batch_seperation.setEnabled(True)
if self.deskew_image_pri == True:
self.deskew_image.setEnabled(True)
if self.blank_page_pri == True:
self.blank_page.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
def Crushed(self):
if self.crushed.isChecked() == True:
if self.crushed_pri == True:
self.crushed.setEnabled(True)
self.CheckEnable()
#self.comboBox_Color.setCurrentIndex(1)
#self.comboBox_Color.setEnabled(False)
'''self.DisableAll()
self.mixed_feed.setChecked(False)
self.document_merge.setChecked(False)
self.mixed_feed.setEnabled(False)
self.document_merge.setEnabled(False)
self.bg_color_removal.setChecked(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setChecked(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setChecked(False)
self.color_dropout.setEnabled(False)'''
else:
self.CheckEnable()
#self.comboBox_Color.setEnabled(True)
'''self.DisableAll()
self.mixed_feed.setChecked(False)
self.document_merge.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)'''
def SearchablePDF(self):
if self.searchablePDF.isChecked() == True:
self.searchablePDF.setEnabled(True)
self.comboBox_Type.setCurrentIndex(2)
self.comboBox_Type.setEnabled(False)
if self.searchablePDF_pri == True:
self.searchablePDF.setEnabled(True)
self.CheckEnable()
else:
self.comboBox_Type.setEnabled(True)
self.CheckEnable()
def Auto_crop(self):
if self.auto_crop.isChecked() == True:
if self.auto_crop_pri == True:
self.auto_crop.setEnabled(True)
self.CheckEnable()
else:
self.CheckEnable()
def Deskew_image(self):
if self.deskew_image.isChecked() == True:
if self.deskew_image_pri == True:
self.deskew_image.setEnabled(True)
self.CheckEnable()
else:
self.CheckEnable()
def Blank_page(self):
if self.blank_page.isChecked() == True:
if self.blank_page_pri == True:
self.blank_page.setEnabled(True)
self.CheckEnable()
else:
self.CheckEnable()
def Mixed_feed(self):
if self.mixed_feed.isChecked() == True:
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
self.DisableAll()
self.document_merge.setChecked(False)
self.crushed.setChecked(False)
self.document_merge.setEnabled(False)
self.crushed.setEnabled(False)
self.comboBox_Papersize.setEnabled(False)
self.bg_color_removal.setChecked(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setChecked(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setChecked(False)
self.color_dropout.setEnabled(False)
else:
if (re.search(r'_7500', self.device_uri)) or (re.search(r'_N9120', self.device_uri,re.I)) or (re.search(r'_3600_f1', self.device_uri,re.I)) or (re.search(r'_n4600', self.device_uri,re.I)) or (re.search(r'_2600_f1', self.device_uri,re.I)) or (re.search(r'_n6600', self.device_uri,re.I)) or (re.search(r'_8500fn2', self.device_uri)) or (re.search(r'_3500_f1', self.device_uri)) or (re.search(r'_4500_fn1', self.device_uri)) or (re.search(r'2500', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif (re.search(r'_5000_', self.device_uri)) or (re.search(r'_7000_s3', self.device_uri)) or (re.search(r'_3000_s3', self.device_uri)) or (re.search(r'hp2000S1', self.device_uri)) or (re.search(r'_2000_s2', self.device_uri)) or (re.search(r'7000_snw1', self.device_uri)) or (re.search(r'4000_snw1', self.device_uri)) or (re.search(r'_3000_s4', self.device_uri)) or (re.search(r'_5000_s5', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(0)
self.document_merge.setChecked(False)
self.DisableAll()
self.crushed.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
self.comboBox_Papersize.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
def Bg_color_removal(self):
if self.bg_color_removal.isChecked() == True:
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
self.CheckEnable()
'''self.document_merge.setChecked(False)
self.crushed.setChecked(False)
self.document_merge.setEnabled(False)
self.crushed.setEnabled(False)
self.mixed_feed.setChecked(False)
self.mixed_feed.setEnabled(False)
self.punchhole_removal.setChecked(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setChecked(False)
self.color_dropout.setEnabled(False)
#self.comboBox_Papersize.setEnabled(False)'''
else:
self.CheckEnable()
'''self.document_merge.setChecked(False)
self.DisableAll()
self.crushed.setChecked(False)
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
#self.comboBox_Papersize.setEnabled(True)'''
def Punchhole_removal(self):
if self.punchhole_removal.isChecked() == True:
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
self.CheckEnable()
'''self.DisableAll()
self.document_merge.setChecked(False)
self.crushed.setChecked(False)
self.document_merge.setEnabled(False)
self.crushed.setEnabled(False)
self.mixed_feed.setChecked(False)
self.mixed_feed.setEnabled(False)
self.bg_color_removal.setChecked(False)
self.bg_color_removal.setEnabled(False)
self.color_dropout.setChecked(False)
self.color_dropout.setEnabled(False)
#self.comboBox_Papersize.setEnabled(False)'''
else:
self.CheckEnable()
'''self.document_merge.setChecked(False)
self.DisableAll()
self.crushed.setChecked(False)
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
#self.comboBox_Papersize.setEnabled(True)'''
def Color_dropout(self):
if self.color_dropout.isChecked() == True:
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
'''self.DisableAll()
self.document_merge.setChecked(False)
self.crushed.setChecked(False)
self.document_merge.setEnabled(False)
self.crushed.setEnabled(False)
self.mixed_feed.setChecked(False)
self.mixed_feed.setEnabled(False)
self.bg_color_removal.setChecked(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setChecked(False)
self.punchhole_removal.setEnabled(False)'''
color = QColorDialog.getColor()
self.s5.setEnabled(True)
RGBVALUE = list(color.getRgb())
self.dropout_color_red_value = str(RGBVALUE[0])
self.dropout_color_green_value = str(RGBVALUE[1])
self.dropout_color_blue_value = str(RGBVALUE[2])
#print (RGBVALUE)
#self.comboBox_Papersize.setEnabled(False)
else:
#self.document_merge.setChecked(False)
#self.DisableAll()
#self.crushed.setChecked(False)
self.CheckEnable()
self.s5.setEnabled(False)
'''if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
#self.comboBox_Papersize.setEnabled(True)'''
def Edge_erase(self):
if self.edge_erase.isChecked() == True:
self.edge_erase.setEnabled(True)
self.edge_erase_spin_box.setEnabled(True)
self.edge_erase_bool = True
else:
self.edge_erase_spin_box.setEnabled(False)
def Document_merge(self):
if self.document_merge.isChecked() == True:
if self.document_merge_pri == True:
self.document_merge.setEnabled(True)
self.DisableAll()
self.mixed_feed.setChecked(False)
self.crushed.setChecked(False)
self.mixed_feed.setEnabled(False)
self.crushed.setEnabled(False)
self.bg_color_removal.setChecked(False)
self.bg_color_removal.setEnabled(False)
self.punchhole_removal.setChecked(False)
self.punchhole_removal.setEnabled(False)
self.color_dropout.setChecked(False)
self.color_dropout.setEnabled(False)
#name = re.search(r'_5000_', self.device_uri)
#if name:
if re.search(r'_5000_', self.device_uri) or re.search(r'_7000_s3', self.device_uri) or re.search(r'_3000_s3', self.device_uri) or (re.search(r'hp2000S1', self.device_uri)) or re.search(r'_2000_s2', self.device_uri) or re.search(r'7000_snw1', self.device_uri) or re.search(r'4000_snw1', self.device_uri) or re.search(r'_3000_s4', self.device_uri) or re.search(r'_5000_s5', self.device_uri):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif (re.search(r'_7500', self.device_uri)) or (re.search(r'_N9120', self.device_uri,re.I)) or (re.search(r'_3600_f1', self.device_uri,re.I)) or (re.search(r'_n4600', self.device_uri,re.I)) or (re.search(r'_2600_f1', self.device_uri,re.I)) or (re.search(r'_n6600', self.device_uri,re.I)) or (re.search(r'_8500fn2', self.device_uri)) or (re.search(r'_3500_f1', self.device_uri)) or (re.search(r'_4500_fn1', self.device_uri)) or (re.search(r'2500', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(2)
self.comboBox_Flatbed.setEnabled(False)
self.source = str(self.comboBox_Flatbed.currentText()).lower()
else:
self.DisableAll()
self.mixed_feed.setChecked(False)
self.crushed.setChecked(False)
self.bg_color_removal.setChecked(False)
self.punchhole_removal.setChecked(False)
self.color_dropout.setChecked(False)
if self.mixed_feed_pri == True:
self.mixed_feed.setEnabled(True)
if self.crushed_pri == True:
self.crushed.setEnabled(True)
if self.bg_color_removal_pri == True:
self.bg_color_removal.setEnabled(True)
if self.punchhole_removal_pri == True:
self.punchhole_removal.setEnabled(True)
if self.color_dropout_pri == True:
self.color_dropout.setEnabled(True)
self.comboBox_Flatbed.setEnabled(True)
if (re.search(r'_7500', self.device_uri)) or (re.search(r'_N9120', self.device_uri,re.I)) or (re.search(r'_3600_f1', self.device_uri,re.I)) or (re.search(r'_n4600', self.device_uri,re.I)) or (re.search(r'_2600_f1', self.device_uri,re.I)) or (re.search(r'_n6600', self.device_uri,re.I)) or (re.search(r'_8500fn2', self.device_uri)) or (re.search(r'_3500_f1', self.device_uri)) or (re.search(r'_4500_fn1', self.device_uri)) or (re.search(r'2500', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(3, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(1)
elif (re.search(r'_5000_', self.device_uri)) or (re.search(r'_7000_s3', self.device_uri)) or (re.search(r'_3000_s3', self.device_uri)) or (re.search(r'hp2000S1', self.device_uri)) or (re.search(r'_2000_s2', self.device_uri)) or (re.search(r'7000_snw1', self.device_uri)) or (re.search(r'4000_snw1', self.device_uri)) or (re.search(r'_3000_s4', self.device_uri)) or (re.search(r'_5000_s5', self.device_uri)):
self.comboBox_Flatbed.clear()
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.addItem("")
self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "ADF-Backside", None))
self.comboBox_Flatbed.setCurrentIndex(0)
self.source = str(self.comboBox_Flatbed.currentText()).lower()
def Document_merge_adf_flatbed(self):
if self.document_merge_adf_flatbed.isChecked() == True:
self.CheckEnable()
if self.document_merge_adf_flatbed_pri == True:
self.document_merge_adf_flatbed.setEnabled(True)
self.comboBox_Type.setCurrentIndex(2)
self.comboBox_Type.setEnabled(False)
self.check_flatbed_present()
self.comboBox_Device_URI.currentTextChanged.connect(lambda: self.check_flatbed_present())
else:
self.CheckEnable()
self.pushButton_Merge.setEnabled(False)
self.comboBox_Type.setCurrentIndex(0)
self.comboBox_Type.setEnabled(True)
def check_flatbed_present(self):
#only enable adf flatbed merge button if device has flatbed
if self.comboBox_Flatbed.count() == 4:
self.pushButton_Merge.setEnabled(True)
else:
self.pushButton_Merge.setEnabled(False)
def Image_enhancement(self):
if self.image_enhancement.isChecked() == True:
self.CheckEnable()
if self.image_enhancement_pri == True:
self.image_enhancement.setEnabled(True)
self.s1.setEnabled(True)
self.s2.setEnabled(True)
self.s3.setEnabled(True)
self.s4.setEnabled(True)
else:
#self.image_enhancement.setEnabled(False)
self.CheckEnable()
self.s1.setEnabled(False)
self.s2.setEnabled(False)
self.s3.setEnabled(False)
self.s4.setEnabled(False)
def mergeButton_clicked(self):
try:
from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
except:
from PyPDF2 import PdfMerger as PdfFileMerger
from PyPDF2 import PdfReader as PdfFileReader
merger = PdfFileMerger()
path1 = str(path)
#print path1
output_pdf = utils.createSequencedFilename("Merged", ".pdf",path1)
files = [ f for f in os.listdir(path1) if f.startswith('hpscanMerge') and f.endswith('.pdf')]
if((len(files)) != 0):
files.sort()
merger = PdfFileMerger()
os.chdir(path1)
#print os.getcwd()
for x in files:
merger.append(PdfFileReader(x), 'hpscan')
for p in files:
os.remove(p)
merger.write(output_pdf)
ocr = False
if self.searchablePDF.isChecked() == True:
ocr = True
imageprocessing.merge_PDF_viewer(output_pdf,ocr)
'''pdf_viewer = ''
pdf_viewer_list = ['kpdf', 'acroread', 'xpdf', 'evince',]
for v in pdf_viewer_list:
vv = utils.which(v)
if vv:
pdf_viewer = os.path.join(vv, v)
break
#cmd = "%s %s &" % (pdf_viewer, output_pdf)
cmd = pdf_viewer + " " + output_pdf + " " + "&"
print cmd
os_utils.execute(cmd)
#sys.exit(0)'''
else:
self.warningMessage(no_pages_to_merge)
def change_source(self):
#device_name = re.search(r'_5000_', self.device_uri)
#if device_name:
if re.search(r'_5000_', self.device_uri):
self.device_name = '5000'
elif re.search(r'_7500', self.device_uri):
self.device_name = '7500'
elif re.search(r'hp2000S1', self.device_uri):
self.device_name = '2000'
elif re.search(r'hpgt2500', self.device_uri):
self.device_name = '2500'
elif re.search(r'_N9120', self.device_uri,re.I):
self.device_name = '9120'
elif re.search(r'_3600_f1', self.device_uri,re.I):
self.device_name = '3600'
elif re.search(r'_n4600', self.device_uri,re.I):
self.device_name = '4600'
elif re.search(r'_2600_f1', self.device_uri,re.I):
self.device_name = '2600'
elif re.search(r'_n6600', self.device_uri,re.I):
self.device_name = '6600'
elif re.search(r'_8500fn2', self.device_uri):
self.device_name = '8500'
elif re.search(r'_3500_f1', self.device_uri):
self.device_name = '3500'
elif re.search(r'_4500_fn1', self.device_uri):
self.device_name = '4500'
elif re.search(r'_7000_s3', self.device_uri):
self.device_name = '7000'
elif re.search(r'_3000_s3', self.device_uri):
self.device_name = '3000'
elif re.search(r'_2000_s2', self.device_uri):
self.device_name = '2000'
elif re.search(r'7000_snw1', self.device_uri):
self.device_name = '7000'
elif re.search(r'4000_snw1', self.device_uri):
self.device_name = '4000'
elif re.search(r'_3000_s4', self.device_uri):
self.device_name = '3000'
elif re.search(r'_5000_s5', self.device_uri):
self.device_name = '5000'
#print (self.device_uri)
if self.device_name == '7500' or self.device_name == '5000' or self.device_name == '9120' or self.device_name == '3600' or self.device_name == '4600' or self.device_name == '2600' or self.device_name == '6600' or self.device_name == '8500' or self.device_name == '3500' or self.device_name == '4500' or self.device_name == '7000' or self.device_name == '3000' or self.device_name == '2000' or self.device_name == '2500' or self.device_name == '4000':
self.comboBox_SourceChanged(self.device_name)
def comboBox_device_URI(self):
self.device_uri = str(self.comboBox_Device_URI.currentText())
self.change_source()
def retranslateUi(self, HpScan):
HpScan.setWindowTitle(_translate("HpScan", "HP-Scan", None))
self.label_Type.setText(_translate("HpScan", " Type", None))
self.label_Size.setText(_translate("HpScan", " Size", None))
self.label_Path.setText(_translate("HpScan", " Path", None))
self.label_Device.setText(_translate("HpScan", " Device", None))
#self.label_Color.setText(_translate("HpScan", " Color", None))
self.label_Brightness.setText(_translate("HpScan", " Brightness", None))
self.label_CR.setText(_translate("HpScan", " Range", None))
self.label_Contrast.setText(_translate("HpScan", " Contrast", None))
self.label_Sharpness.setText(_translate("HpScan", " Sharpness", None))
self.label_Color_value.setText(_translate("HpScan", " Color", None))
self.comboBox_Type.setItemText(0, _translate("HpScan", "PNG", None))
self.comboBox_Type.setItemText(1, _translate("HpScan", "JPG", None))
self.comboBox_Type.setItemText(2, _translate("HpScan", "PDF", None))
self.comboBox_Type.setItemText(3, _translate("HpScan", "TIFF", None))
self.comboBox_Type.setItemText(4, _translate("HpScan", "BMP", None))
'''self.comboBox_Flatbed.setItemText(0, _translate("HpScan", "Flatbed", None))
self.comboBox_Flatbed.setItemText(1, _translate("HpScan", "ADF", None))
self.comboBox_Flatbed.setItemText(2, _translate("HpScan", "Duplex", None))
self.comboBox_Flatbed.setCurrentIndex(1)'''
#self.comboBox_Color.setItemText(0, _translate("HpScan", "Lineart", None))
self.comboBox_Color.setItemText(0, _translate("HpScan", "Gray", None))
self.comboBox_Color.setItemText(1, _translate("HpScan", "Color", None))
self.comboBox_Color.setCurrentIndex(0)
self.comboBox_Resolution.setItemText(0, _translate("HpScan", "75", None))
self.comboBox_Resolution.setItemText(1, _translate("HpScan", "100", None))
self.comboBox_Resolution.setItemText(2, _translate("HpScan", "200", None))
self.comboBox_Resolution.setItemText(3, _translate("HpScan", "300", None))
self.comboBox_Resolution.setItemText(4, _translate("HpScan", "600", None))
self.comboBox_Resolution.setCurrentIndex(3)
#self.comboBox_Papersize.setItemText(0, _translate("HpScan", "5x7", None))
#self.comboBox_Papersize.setItemText(1, _translate("HpScan", "4x6", None))
#self.comboBox_Papersize.setItemText(2, _translate("HpScan", "3x5", None))
#self.comboBox_Papersize.setItemText(3, _translate("HpScan", "a2_env", None))
#self.comboBox_Papersize.setItemText(4, _translate("HpScan", "a3", None))
#self.comboBox_Papersize.setItemText(0, _translate("HpScan", "a4", None))
#self.comboBox_Papersize.setItemText(1, _translate("HpScan", "a5", None))
#self.comboBox_Papersize.setItemText(7, _translate("HpScan", "a6", None))
#self.comboBox_Papersize.setItemText(8, _translate("HpScan", "b4", None))
#self.comboBox_Papersize.setItemText(2, _translate("HpScan", "b5", None))
#self.comboBox_Papersize.setItemText(10, _translate("HpScan", "c6_env", None))
#self.comboBox_Papersize.setItemText(11, _translate("HpScan", "dl_env", None))
#self.comboBox_Papersize.setItemText(12, _translate("HpScan", "exec", None))
#self.comboBox_Papersize.setItemText(13, _translate("HpScan", "flsa", None))
#self.comboBox_Papersize.setItemText(14, _translate("HpScan", "higaki", None))
#self.comboBox_Papersize.setItemText(15, _translate("HpScan", "japan_env_3", None))
#self.comboBox_Papersize.setItemText(16, _translate("HpScan", "japan_env_4", None))
#self.comboBox_Papersize.setItemText(3, _translate("HpScan", "legal", None))
#self.comboBox_Papersize.setItemText(4, _translate("HpScan", "letter", None))
#self.comboBox_Papersize.setItemText(19, _translate("HpScan", "no_10_env", None))
#self.comboBox_Papersize.setItemText(20, _translate("HpScan", "oufufu-hagaki", None))
#self.comboBox_Papersize.setItemText(21, _translate("HpScan", "photo", None))
#self.comboBox_Papersize.setItemText(22, _translate("HpScan", "super_b", None))
#self.comboBox_Papersize.setItemText(23, _translate("HpScan", "b6", None))
#self.comboBox_Papersize.setCurrentIndex(4)
self.pushButton_Scan.setText(_translate("HpScan", "Scan", None))
self.pushButton_Change.setText(_translate("HpScan", "Change Path", None))
self.pushButton_Merge.setText(_translate("HpScan", "Merge", None))
self.auto_orient.setText(_translate("HpScan", "Auto Orient ", None))
self.crushed.setText(_translate("HpScan", "Background noise Removal ", None))
self.searchablePDF.setText(_translate("HpScan", "Searchable PDF ", None))
self.punchhole_removal.setText(_translate("HpScan", "Punch Hole Removal ", None))
self.color_dropout.setText(_translate("HpScan", "Color Removal/Dropout ", None))
self.edge_erase.setText(_translate("HpScan", "Edge Erase", None))
self.bg_color_removal.setText(_translate("HpScan", "Background Color Removal", None))
self.auto_crop.setText(_translate("HpScan", "Crop to content on page ", None))
self.deskew_image.setText(_translate("HpScan", "Straighten page content ", None))
self.multi_pick.setText(_translate("HpScan", "Misfeed(multipick) detection", None))
self.blank_page.setText(_translate("HpScan", "Delete blank pages ", None))
self.batch_seperation.setText(_translate("HpScan", "Separate the document", None))
self.bp_blankpage.setText(_translate("HpScan", "Before each blank page", None))
self.bp_barcode.setText(_translate("HpScan", "Before each page with a barcode", None))
self.comboBox_Barcode_Type.setItemText(0, _translate("HpScan", "Any format", None))
self.comboBox_Barcode_Type.setItemText(1, _translate("HpScan", "Code 39,Code 39 full ASCII", None))
self.comboBox_Barcode_Type.setItemText(2, _translate("HpScan", "EAN 8/13,UPC-a,UPC-E(6-digit)", None))
self.comboBox_Barcode_Type.setItemText(3, _translate("HpScan", "Code 128,GS1-128(UCC/EAN-128)", None))
self.comboBox_Barcode_Type.setItemText(4, _translate("HpScan", "Codebar", None))
self.comboBox_Barcode_Type.setItemText(5, _translate("HpScan", "ITF(2 of 5 interleaved)", None))
self.comboBox_Barcode_Type.setItemText(6, _translate("HpScan", "PDF 417", None))
self.comboBox_Barcode_Type.setItemText(7, _translate("HpScan", "Postnet code", None))
self.document_merge.setText(_translate("HpScan", "Page merge", None))
self.document_merge_adf_flatbed.setText(_translate("HpScan", "Document merge", None))
self.image_enhancement.setText(_translate("HpScan", "Image enhancement", None))
self.mixed_feed.setText(_translate("HpScan", "Mixed document feed", None))
i = 0
#print self.devicelist
for device in self.devicelist:
if re.search(r'_5000_', device) or re.search(r'_7500', device) or re.search(r'_N9120', device,re.I) or re.search(r'_3600_f1', device,re.I) or re.search(r'_n4600', device,re.I) or re.search(r'_2600_f1', device,re.I) or re.search(r'_n6600', device,re.I) or re.search(r'_8500fn2', device) or re.search(r'_3500_f1', device) or re.search(r'_4500_fn1', device) or re.search(r'_7000_s3', device) or re.search(r'_3000_s3', device) or re.search(r'hp2000S1', device) or re.search(r'hpgt2500', device) or re.search(r'_2000_s2', device) or re.search(r'7000_snw1', device) or re.search(r'4000_snw1', device) or re.search(r'_3000_s4', device) or re.search(r'_5000_s5', device):
self.comboBox_Device_URI.addItem(device)
self.comboBox_Device_URI.setItemText(i, _translate("HpScan", device, None))
i += 1
else:
self.other_device_cnt += 1
self.comboBox_path.addItem(path)
self.comboBox_path.setItemText(0,_translate("HpScan", path, None))
#self.pushButton_Cancel.setText(_translate("HpScan", "Cancel", None))
class SetupDialog():
#print ("calling ui5 scan.py")
def setupUi(self):
#scanjet_flag=''
#print ("called ui5 scan.py")
#list1=[]
import sys
app = QtWidgets.QApplication(sys.argv)
#app = QApplication(sys.argv)
HpScan = QtWidgets.QDockWidget()
ui = Ui_HpScan()
devicelist = {}
#device = ''
sane.init()
sane_devices = sane.getDevices()
for device, mfg, mdl, t in sane_devices:
if re.search(r'_5000_', device) or re.search(r'_7500', device) or re.search(r'_N9120', device,re.I) or re.search(r'_3600_f1', device,re.I) or re.search(r'_n4600', device,re.I) or re.search(r'_2600_f1', device,re.I) or re.search(r'_n6600', device,re.I) or re.search(r'_8500fn2', device) or re.search(r'_3500_f1', device) or re.search(r'_4500_fn1', device) or re.search(r'_7000_s3', device) or re.search(r'_3000_s3', device) or re.search(r'hp2000S1', device) or re.search(r'hpgt2500', device) or re.search(r'_2000_s2', device) or re.search(r'7000_snw1', device) or re.search(r'4000_snw1', device) or re.search(r'_3000_s4', device) or re.search(r'_5000_s5', device):
try:
scanDevice = sane.openDevice(device)
#source_option = scanDevice.getOptionObj("source").constraint
brx = scanDevice.getOptionObj('br-x').limitAndSet(None)
bry = scanDevice.getOptionObj('br-y').limitAndSet(None)
devicelist[device] = [mdl]
#devicelist[device].extend([source_option,int(brx)+1,int(bry)+1])
devicelist[device].extend([int(brx)+1,int(bry)+1])
scanDevice.closeScan()
except :
pass
sane.deInit()
#print (devicelist)
ui.devicelist = devicelist
#print ui.devicelist
ui.setupUi(HpScan)
scanjet_flag=imageprocessing.check_pil()
if scanjet_flag is not None:
#ui.DisableAllScanjet()
ui.auto_orient.setEnabled(False)
ui.searchablePDF.setEnabled(False)
ui.auto_crop.setEnabled(False)
ui.image_enhancement.setEnabled(False)
ui.document_merge_adf_flatbed.setEnabled(False)
ui.multi_pick.setEnabled(False)
#ui.batch_seperation.setEnabled(False)
ui.deskew_image.setEnabled(False)
ui.blank_page.setEnabled(False)
ui.crushed.setEnabled(False)
ui.bg_color_removal.setEnabled(False)
ui.punchhole_removal.setEnabled(False)
ui.color_dropout.setEnabled(False)
ui.edge_erase.setEnabled(False)
ui.mixed_feed.setEnabled(False)
ui.document_merge.setEnabled(False)
ui.deskew_image_pri = False
ui.auto_crop_pri = False
ui.mixed_feed_pri = False
ui.auto_orient_pri = False
ui.searchablePDF_pri = False
ui.document_merge_adf_flatbed_pri = False
#ui.multi_pick_pri = False
#ui.batch_seperation_pri = False
ui.crushed_pri = False
ui.bg_color_removal_pri = False
ui.punchhole_removal_pri = False
ui.color_dropout_pri = False
ui.document_merge_pri = False
ui.image_enhancement_pri = False
ui.blank_page_pri = False
scanjet_flag=imageprocessing.check_numpy()
if scanjet_flag is not None:
#ui.DisableAllScanjet()
ui.auto_orient.setEnabled(False)
#ui.searchablePDF.setEnabled(False)
ui.auto_crop.setEnabled(False)
#ui.image_enhancement.setEnabled(False)
ui.document_merge_adf_flatbed.setEnabled(False)
ui.multi_pick.setEnabled(False)
#ui.batch_seperation.setEnabled(False)
ui.deskew_image.setEnabled(False)
#ui.blank_page.setEnabled(False)
ui.crushed.setEnabled(False)
ui.bg_color_removal.setEnabled(False)
ui.punchhole_removal.setEnabled(False)
ui.color_dropout.setEnabled(False)
ui.mixed_feed.setEnabled(False)
ui.document_merge.setEnabled(False)
ui.blank_page.setEnabled(True)
#ui.blank_page.setChecked(False)
ui.image_enhancement.setEnabled(True)
#ui.image_enhancement.setChecked(False)
ui.deskew_image_pri = False
ui.auto_crop_pri = False
ui.mixed_feed_pri = False
ui.auto_orient_pri = False
ui.searchablePDF_pri = False
ui.document_merge_adf_flatbed_pri = False
#ui.multi_pick_pri = False
#ui.batch_seperation_pri = False
ui.crushed_pri = False
ui.document_merge_pri = False
ui.bg_color_removal_pri = False
ui.punchhole_removal_pri = False
ui.color_dropout_pri = False
scanjet_flag=imageprocessing.check_opencv()
if scanjet_flag is not None:
ui.deskew_image.setEnabled(False)
ui.auto_crop.setEnabled(False)
ui.mixed_feed.setEnabled(False)
ui.bg_color_removal.setEnabled(False)
#ui.deskew_image.setChecked(False)
#ui.auto_crop.setChecked(False)
#ui.mixed_feed.setChecked(False)
ui.color_dropout.setEnabled(False)
ui.color_dropout_pri = False
ui.deskew_image_pri = False
ui.auto_crop_pri = False
ui.mixed_feed_pri = False
ui.bg_color_removal_pri = False
scanjet_flag=imageprocessing.check_skimage()
if scanjet_flag is not None:
ui.punchhole_removal.setEnabled(False)
ui.punchhole_removal_pri = False
scanjet_flag=imageprocessing.check_scipy()
if scanjet_flag is not None:
ui.deskew_image.setEnabled(False)
ui.deskew_image_pri = False
scanjet_flag=imageprocessing.check_tesserocr_imutils()
if scanjet_flag is not None:
ui.auto_orient.setEnabled(False)
#ui.auto_orient.setChecked(False)
ui.auto_orient_pri = False
scanjet_flag=imageprocessing.check_pypdfocr()
if scanjet_flag is not None:
ui.searchablePDF.setEnabled(False)
ui.searchablePDF_pri = False
scanjet_flag=imageprocessing.check_pypdf2()
if scanjet_flag is not None:
ui.document_merge.setEnabled(False)
ui.document_merge_adf_flatbed.setEnabled(False)
#ui.document_merge.setChecked(False)
ui.document_merge_pri = False
ui.document_merge_adf_flatbed_pri = False
scanjet_flag=imageprocessing.check_zbar()
#print scanjet_flag
if scanjet_flag is not None:
#print "setting barcode to false"
ui.bp_barcode.setEnabled(False)
ui.batchsepBC_pri = False
#list1.append(HpScan)
#list1.append(app)
#print HpScan
'''list_scanjet=imageprocessing.validate_scanjet_support()
print (list_scanjet)
if(list_scanjet[2] == 'False'):
scanjet_error="Scanjet features are not supported and disabled for %s %s. Please upgrade to latest distro version"% (list_scanjet[0],list_scanjet[1])
ui.failureMessage(scanjet_error)
ui.DisableAllScanjet()
source_option = device.getOptionObj("source").constraint
print (source_option)
valid_res = device.getOptionObj('resolution').constraint
print (valid_res)
available_scan_mode = device.getOptionObj("mode").constraint
print (available_scan_mode)'''
#print ui.comboBox_Device_URI.count()
if ui.comboBox_Device_URI.count() == 0:
if ui.other_device_cnt > 0:
scanjet_error="hp-uiscan is not supported for this device"
ui.failureMessage(scanjet_error)
else:
scanjet_error="No device connected"
ui.failureMessage(scanjet_error)
else:
HpScan.show()
sys.exit(app.exec_())
#return list1