#ifndef __HGSCANNERLIB_H__ #define __HGSCANNERLIB_H__ #include "HGDef.h" HG_DECLARE_HANDLE(HGLibImage); HG_DECLARE_HANDLE(HGLibDevice); /* 1位黑白图 */ #define HGLIB_IMGTYPE_BINARY 1L /* 8位灰度图 */ #define HGLIB_IMGTYPE_GRAY 2L /* 24位真彩色,B8G8R8格式 */ #define HGLIB_IMGTYPE_BGR 3L /* 24位真彩色,R8G8B8格式 */ #define HGLIB_IMGTYPE_RGB 4L /* 32位真彩色,带Alpha通道,B8G8R8A8格式 */ #define HGLIB_IMGTYPE_BGRA 5L /* 32位真彩色,带Alpha通道,R8G8B8A8格式 */ #define HGLIB_IMGTYPE_RGBA 6L /* 图像数据保存方式 */ #define HGLIB_IMGORIGIN_TOP 1L #define HGLIB_IMGORIGIN_BOTTOM 2L /* TIFF压缩方式 */ #define HGLIB_TIFFCOMPRESSION_NONE 1L #define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L #define HGLIB_TIFFCOMPRESSION_LZW 3L #define HGLIB_TIFFCOMPRESSION_JPEG 4L /* 设备错误码 */ #define HGLIB_DEV_OPERATECODE_GOOD 0L /* everything A-OK */ #define HGLIB_DEV_OPERATECODE_UNSUPPORTED 1L /* operation is not supported */ #define HGLIB_DEV_OPERATECODE_CANCELLED 2L /* operation was cancelled */ #define HGLIB_DEV_OPERATECODE_BUSY 3L /* device is busy; try again later */ #define HGLIB_DEV_OPERATECODE_INVAL 4L /* data is invalid (includes no dev at open) */ #define HGLIB_DEV_OPERATECODE_EOF 5L /* no more data available (end-of-file) */ #define HGLIB_DEV_OPERATECODE_JAMMED 6L /* document feeder jammed */ #define HGLIB_DEV_OPERATECODE_NO_DOCS 7L /* document feeder out of documents */ #define HGLIB_DEV_OPERATECODE_COVER_OPEN 8L /* scanner cover is open */ #define HGLIB_DEV_OPERATECODE_IO_ERROR 9L /* error during device I/O */ #define HGLIB_DEV_OPERATECODE_NO_MEM 10L /* out of memory */ #define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 11L /* access to resource has been denied */ // 1:软件逻辑错误 #define HGLIB_DEV_OPERATECODE_INVALID_PARAMETER 0x100 // 非法的参数调用 #define HGLIB_DEV_OPERATECODE_ERR_USER_CANCELED 0x101 // 用户取消了操作 #define HGLIB_DEV_OPERATECODE_INSUFFICIENT_MEMORY 0x102 // 分配的内存不足 #define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 0x103 // 访问被拒绝 #define HGLIB_DEV_OPERATECODE_IO_PENDING 0x104 // 异步访问,数据稍后返回 #define HGLIB_DEV_OPERATECODE_ERR_NOT_EXACT 0x105 // 数据不精确,精确的数据已经在同一缓存中返回 #define HGLIB_DEV_OPERATECODE_ERR_CONFIGURATION_CHANGED 0x106 // 设备的配置项发生改变,需要重新加载显示 #define HGLIB_DEV_OPERATECODE_ERR_NOT_OPEN 0x107 // 设备未打开 #define HGLIB_DEV_OPERATECODE_ERR_NOT_START 0x108 // 设备没有启动 #define HGLIB_DEV_OPERATECODE_ERR_NOT_ANY_MORE 0x109 // 用于回调返回,在本次扫描中,对相同操作不再回调 #define HGLIB_DEV_OPERATECODE_ERR_NO_DATA 0x10A // 没有数据 #define HGLIB_DEV_OPERATECODE_HAS_DATA_YET 0x10B // 有数据未被读取(异步操作中) #define HGLIB_DEV_OPERATECODE_OUT_OF_RANGE 0x10C // 相关操作超出范围 #define HGLIB_DEV_OPERATECODE_IO 0x10D // IO错误 #define HGLIB_DEV_OPERATECODE_TIMEOUT 0x10E // 超时错误 #define HGLIB_DEV_OPERATECODE_OPEN_FILE_FAILED 0x10F // 打开本地文件失败 #define HGLIB_DEV_OPERATECODE_CREATE_FILE_FAILED 0x110 // 创建本地文件失败 #define HGLIB_DEV_OPERATECODE_WRITE_FILE_FAILED 0x111 // 写本地文件失败 #define HGLIB_DEV_OPERATECODE_DATA_DAMAGED 0x112 // 数据损坏(内置资源数据损坏) #define HGLIB_DEV_OPERATECODE_OPENED_BY_OTHER_PROCESS 0x113 // 设备已经被其它进程打开占用 #define HGLIB_DEV_OPERATECODE_LANG_PAK_LOST 0x114 // 语言包丢失 #define HGLIB_DEV_OPERATECODE_RELOAD_IMAGE_PARAM 0x115 // 配置成功,会影响图像参数,应用需要重新加载图像参数 - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题 #define HGLIB_DEV_OPERATECODE_RELOAD_OPT_PARAM 0x116 // SCANNER_ERR_CONFIGURATION_CHANGED + SCANNER_ERR_RELOAD_IMAGE_PARAM - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题 #define HGLIB_DEV_OPERATECODE_IMAGE_PROC_FATAL 0x117 // 图像处理失败 // 2:USB错误 #define HGLIB_DEV_OPERATECODE_USB_INIT_FAILED 0x5B00 // libusb_init 失败 #define HGLIB_DEV_OPERATECODE_USB_REGISTER_PNP_FAILED 0x5B01 // 注册USB监听事件失败 #define HGLIB_DEV_OPERATECODE_USB_CLAIM_INTERFACE_FAILED 0x5B02 // failed in calling libusb_claim_interface // 3:硬件错误 #define HGLIB_DEV_OPERATECODE_DEVICE_NOT_FOUND 0x0DE00 // 设备未找到 #define HGLIB_DEV_OPERATECODE_DEVICE_NOT_SUPPORT 0x0DE01 // 设备不支持该操作 #define HGLIB_DEV_OPERATECODE_DEVICE_BUSY 0x0DE02 // 设备正忙,不能响应该操作 #define HGLIB_DEV_OPERATECODE_DEVICE_SLEEPING 0x0DE03 // 设备处于睡眠状态 #define HGLIB_DEV_OPERATECODE_DEVICE_COUNT_MODE 0x0DE04 // 设备处于计数扫描状态? #define HGLIB_DEV_OPERATECODE_DEVICE_STOPPED 0x0DE05 // 扫描停止 #define HGLIB_DEV_OPERATECODE_DEVICE_COVER_OPENNED 0x0DE06 // 扫描仪盖板呈打开状态 #define HGLIB_DEV_OPERATECODE_DEVICE_NO_PAPER 0x0DE07 // 没有纸张输入 #define HGLIB_DEV_OPERATECODE_DEVICE_FEEDING_PAPER 0x0DE08 // 搓纸失败 #define HGLIB_DEV_OPERATECODE_DEVICE_DOUBLE_FEEDING 0x0DE09 // 双张检测 #define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_JAMMED 0x0DE0A // 卡纸 #define HGLIB_DEV_OPERATECODE_DEVICE_STAPLE_ON 0x0DE0B // 有钉书钉 #define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_SKEW 0x0DE0C // 纸张倾斜 #define HGLIB_DEV_OPERATECODE_DEVICE_SIZE_CHECK 0x0DE0D // 尺寸检测错误 #define HGLIB_DEV_OPERATECODE_DEVICE_DOGEAR 0x0DE0E // 纸张有折角 #define HGLIB_DEV_OPERATECODE_DEVICE_NO_IMAGE 0x0DE0F // 设备没取到图 #define HGLIB_DEV_OPERATECODE_DEVICE_SCANN_ERROR 0x0DE10 // 设备扫图失败 #define HGLIB_DEV_OPERATECODE_DEVICE_PC_BUSY 0x0DE11 // PC繁忙或出错 #define HGLIB_DEV_OPERATECODE_DEVICE_ISLOCK 0x0DE12 // 设备被锁定 #define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_SUCCESSFUL 0x0DE13 // 固件升级成功 #define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_FAIL 0x0DE14 // 固件升级失败+ #define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_OVER 0x0DE15 // 设备平场自动校正结束 #define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_INFO 0x0DE16 // 设备平场自动校正信息传输 #define HGLIB_DEV_OPERATECODE_DEVICE_DISTORTION 0x0DE17 // 畸变修正失败 #define HGLIB_DEV_OPERATECODE_DEVICE_MAYBE_IS_HOLE 0x0DE18 // 纸张有孔洞 #define HGLIB_DEV_OPERATECODE_DEVICE_DEVS_BOOTING 0x0DE19 // 请稍等 - 设备正在准备 #define HGLIB_DEV_OPERATECODE_DEVICE_UNKNOWN_STATUS 0x0DE1A // 设备处于未知状态 #define HGLIB_DEV_OPERATECODE_DEVICE_LENS_DIRTY 0x0DE1B // 镜头脏污 /* 设备热拔插事件 */ #define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L #define HGLIB_DEVHOTPLUG_EVENT_REMOVE 2L /* 设备扫描事件 */ #define HGLIB_DEVSCAN_EVENT_BEGIN 1L #define HGLIB_DEVSCAN_EVENT_END 2L #define HGLIB_DEVSCAN_EVENT_INFO 3L /* 组名 */ // 基本设置 #define HGLIB_GROUP_NAME_BASESETTING 1L // 亮度 #define HGLIB_GROUP_NAME_BRIGHTNESS 2L // 图像处理 #define HGLIB_GROUP_NAME_IMAGEPROCESS 3L // 送纸方式设置 #define HGLIB_GROUP_NAME_PAPERFEEDING 4L /* 配置名 */ #define HGLIB_OPTION_NAME_UNKNOWN 0L // "多流输出" #define HGLIB_OPTION_NAME_DLSC 1L // "多流输出类型" #define HGLIB_OPTION_NAME_DLSCLX 2L // "颜色模式" #define HGLIB_OPTION_NAME_YSMS 3L // "黑白图像阈值" #define HGLIB_OPTION_NAME_HBTXYZ 4L // "灰度或黑白图像 - 除色" #define HGLIB_OPTION_NAME_HDHHBTX_CS 5L // "24位彩色图像 - 多流输出除红" #define HGLIB_OPTION_NAME_24WCSTX_DLSCCH 6L // "24位彩色图像 - 答题卡除红" #define HGLIB_OPTION_NAME_24WCSTX_DTKCH 7L // "背景移除" #define HGLIB_OPTION_NAME_BJYC 8L // "背景色彩浮动范围" #define HGLIB_OPTION_NAME_BJSCFDFW 9L // "锐化与模糊" #define HGLIB_OPTION_NAME_RHYMH 10L // "去除摩尔纹" #define HGLIB_OPTION_NAME_QCMW 11L // "除网纹" #define HGLIB_OPTION_NAME_CWW 12L // "错误扩散" #define HGLIB_OPTION_NAME_CWKS 13L // "黑白图像噪点优化" #define HGLIB_OPTION_NAME_HBTXZDYH 14L // "噪点优化尺寸" #define HGLIB_OPTION_NAME_ZDYHCC 15L // "纸张尺寸" #define HGLIB_OPTION_NAME_ZZCC 16L // "自定义扫描区域" #define HGLIB_OPTION_NAME_ZDYSMQY 17L // "扫描区域左侧(mm)" #define HGLIB_OPTION_NAME_SMQYZCmm 18L // "扫描区域右侧(mm)" #define HGLIB_OPTION_NAME_SMQYYCmm 19L // "扫描区域上侧(mm)" #define HGLIB_OPTION_NAME_SMQYSCmm 20L // "扫描区域下侧(mm)" #define HGLIB_OPTION_NAME_SMQYXCmm 21L // "尺寸检测" #define HGLIB_OPTION_NAME_CCJC 22L // "扫描页面" #define HGLIB_OPTION_NAME_SMYM 23L // "跳过空白页灵敏度" #define HGLIB_OPTION_NAME_TGKBYLMD 24L // "分纸强度" #define HGLIB_OPTION_NAME_FZQD 25L // "休眠时间" #define HGLIB_OPTION_NAME_XMSJ 26L // "分辨率" #define HGLIB_OPTION_NAME_FBL 27L // "画质" #define HGLIB_OPTION_NAME_HZ 28L // "交换正反面" #define HGLIB_OPTION_NAME_JHZFM 29L // "图像拆分" #define HGLIB_OPTION_NAME_TXCF 30L // "自动纠偏" #define HGLIB_OPTION_NAME_ZDJP 31L // "启用色调曲线" #define HGLIB_OPTION_NAME_QYSDQX 32L // "亮度值" #define HGLIB_OPTION_NAME_LDZ 33L // "对比度" #define HGLIB_OPTION_NAME_DBD 34L // "伽马值" #define HGLIB_OPTION_NAME_GMZ 35L // "照片模式" #define HGLIB_OPTION_NAME_ZPMS 36L // "消除黑框" #define HGLIB_OPTION_NAME_XCHK 37L // "深色样张" #define HGLIB_OPTION_NAME_SSYZ 38L // "阈值" #define HGLIB_OPTION_NAME_YZ 39L // "背景抗噪等级" #define HGLIB_OPTION_NAME_BJKZDJ 40L // "边缘缩进" #define HGLIB_OPTION_NAME_BYSJ 41L // "背景填充方式" #define HGLIB_OPTION_NAME_BJTCFS 42L // "防止渗透" #define HGLIB_OPTION_NAME_FZST 43L // "防止渗透等级" #define HGLIB_OPTION_NAME_FZSTDJ 44L // "穿孔移除—左侧" #define HGLIB_OPTION_NAME_CKYCZC 45L // #"左侧穿孔搜索范围占幅面比例" #define HGLIB_OPTION_NAME_ZCCKSSFWZFMBL 46L // "穿孔移除—右侧" #define HGLIB_OPTION_NAME_CKYCYC 47L // #"右侧穿孔搜索范围占幅面比例" #define HGLIB_OPTION_NAME_YCCKSSFWZFMBL 48L // "穿孔移除—上侧" #define HGLIB_OPTION_NAME_CKYCSC 49L // #"上侧穿孔搜索范围占幅面比例" #define HGLIB_OPTION_NAME_SCCKSSFWZFMBL 50L // "穿孔移除—下侧" #define HGLIB_OPTION_NAME_CKYCXC 51L // #"下侧穿孔搜索范围占幅面比例" #define HGLIB_OPTION_NAME_XCCKSSFWZFMBL 52L // "色彩填充" #define HGLIB_OPTION_NAME_SCTC 53L // "超声波检测" #define HGLIB_OPTION_NAME_CSBJC 54L // "双张图片处理" #define HGLIB_OPTION_NAME_SZTPCL 55L // "装订检测" #define HGLIB_OPTION_NAME_ZDJC 56L // "扫描张数" #define HGLIB_OPTION_NAME_SMZS 57L // "扫描数量" #define HGLIB_OPTION_NAME_SMSL 58L // "文稿方向" #define HGLIB_OPTION_NAME_WGFX 59L // "背面旋转180°" #define HGLIB_OPTION_NAME_BMXZ180 60L // "折角检测" #define HGLIB_OPTION_NAME_ZJJC 61L // "折角大小" #define HGLIB_OPTION_NAME_ZJDX 62L // "歪斜检测" #define HGLIB_OPTION_NAME_WXJC 63L // "歪斜容忍度" #define HGLIB_OPTION_NAME_WXRRD 64L // 自动分纸强度 #define HGLIB_OPTION_NAME_ZDCZQD 65L // 进纸失败率 #define HGLIB_OPTION_NAME_CZYZ 66L // 待纸扫描 #define HGLIB_OPTION_NAME_DZSM 67L // 黑白图像反色输出(正常颜色为:0 - 黑色;1 - 白色) #define HGLIB_OPTION_NAME_HBTXFSSC 68L // 对折模式 #define HGLIB_OPTION_NAME_DZMS 69L // 色偏校正 #define HGLIB_OPTION_NAME_SPJZ 70L // 待纸扫描退出时间 #define HGLIB_OPTION_NAME_DZSMTCSJ 71L // 跳过空白页 #define HGLIB_OPTION_NAME_TGKBY 72L // 镜头脏污检测 #define HGLIB_OPTION_NAME_JTZWJC 73L // 穿孔移除 #define HGLIB_OPTION_NAME_CKYC 74L // 穿孔搜索范围占幅面比例 #define HGLIB_OPTION_NAME_CKSSFWZFMBL 75L /* 配置枚举值 */ // "无" #define HGLIB_OPTION_ENUMVALUE_DLSCLX_W 1L // "彩色+灰度+黑白" #define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD_HB 2L // "彩色+灰度" #define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD 3L // "彩色+黑白" #define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HB 4L // "灰度+黑白" #define HGLIB_OPTION_ENUMVALUE_DLSCLX_HD_HB 5L // "24位彩色" #define HGLIB_OPTION_ENUMVALUE_YSMS_24WCS 6L // "256级灰度" #define HGLIB_OPTION_ENUMVALUE_YSMS_256JHD 7L // "黑白" #define HGLIB_OPTION_ENUMVALUE_YSMS_HB 8L // "颜色自动识别" #define HGLIB_OPTION_ENUMVALUE_YSMS_YSZDSB 9L // "不除色" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_BCS 10L // "除红色" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHS 11L // "除绿色" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CLS 12L // "除蓝色" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHULANSE 13L // "红色增强" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_HSZQ 14L // "绿色增强" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LSZQ 15L // "蓝色增强" #define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LANSEZENGQIANG 16L // "无" #define HGLIB_OPTION_ENUMVALUE_RHYMH_W 17L // "锐化" #define HGLIB_OPTION_ENUMVALUE_RHYMH_RH 18L // "进一步锐化" #define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBRH 19L // "模糊" #define HGLIB_OPTION_ENUMVALUE_RHYMH_MH 20L // "进一步模糊" #define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBMH 21L // "A3" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A3 22L // "8开" #define HGLIB_OPTION_ENUMVALUE_ZZCC_8K 23L // "A4" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A4 24L // "A4横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A4HX 25L // "16开" #define HGLIB_OPTION_ENUMVALUE_ZZCC_16K 26L // "16开横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_16KHX 27L // "A5" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A5 28L // "A5横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A5HX 29L // "A6" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A6 30L // "A6横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_A6HX 31L // "B4" #define HGLIB_OPTION_ENUMVALUE_ZZCC_B4 32L // "B5" #define HGLIB_OPTION_ENUMVALUE_ZZCC_B5 33L // "B5横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_B5HX 34L // "B6" #define HGLIB_OPTION_ENUMVALUE_ZZCC_B6 35L // "B6横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_B6HX 36L // "Letter" #define HGLIB_OPTION_ENUMVALUE_ZZCC_Letter 37L // "Letter横向" #define HGLIB_OPTION_ENUMVALUE_ZZCC_LetterHX 38L // "Double Letter" #define HGLIB_OPTION_ENUMVALUE_ZZCC_DoubleLetter 39L // "LEGAL" #define HGLIB_OPTION_ENUMVALUE_ZZCC_LEGAL 40L // "匹配原始尺寸" #define HGLIB_OPTION_ENUMVALUE_ZZCC_PPYSCC 41L // "最大扫描尺寸自动裁切" #define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCCZDCQ 42L // "最大扫描尺寸" #define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCC 43L // "三联试卷" #define HGLIB_OPTION_ENUMVALUE_ZZCC_SLSJ 44L // "单面" #define HGLIB_OPTION_ENUMVALUE_SMYM_DM 45L // "双面" #define HGLIB_OPTION_ENUMVALUE_SMYM_SM 46L // "跳过空白页(通用)" #define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYTY 47L // "跳过空白页(发票纸)" #define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYFPZ 48L // "对折" #define HGLIB_OPTION_ENUMVALUE_SMYM_DZ 49L // "无" #define HGLIB_OPTION_ENUMVALUE_HZ_W 50L // "速度优先" #define HGLIB_OPTION_ENUMVALUE_HZ_SDYX 51L // "画质优先" #define HGLIB_OPTION_ENUMVALUE_HZ_HZYX 52L // "凸多边形" #define HGLIB_OPTION_ENUMVALUE_BJTCFS_TDBX 53L // "凹多边形" #define HGLIB_OPTION_ENUMVALUE_BJTCFS_ADBX 54L // "弱" #define HGLIB_OPTION_ENUMVALUE_FZSTDJ_R 55L // "较弱" #define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JR 56L // "一般" #define HGLIB_OPTION_ENUMVALUE_FZSTDJ_YB 57L // "较强" #define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JQ 58L // "强" #define HGLIB_OPTION_ENUMVALUE_FZSTDJ_Q 59L // "丢弃图像并停止扫描" #define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBTZSM 60L // "丢弃图像并继续扫描" #define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBJXSM 61L // "上传图像并停止扫描" #define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBTZSM 62L // "上传图像并继续扫描" #define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJXSM 63L // "连续扫描" #define HGLIB_OPTION_ENUMVALUE_SMZS_LXSM 64L // "扫描指定张数" #define HGLIB_OPTION_ENUMVALUE_SMZS_SMZDZS 65L // "0°" #define HGLIB_OPTION_ENUMVALUE_WGFX_0 66L // "90°" #define HGLIB_OPTION_ENUMVALUE_WGFX_90 67L // "180°" #define HGLIB_OPTION_ENUMVALUE_WGFX_180 68L // "-90°" #define HGLIB_OPTION_ENUMVALUE_WGFX__90 69L // "自动文本方向识别°" #define HGLIB_OPTION_ENUMVALUE_WGFX_ZDWBFXSB 70L // "分纸强度-弱" #define HGLIB_OPTION_ENUMVALUE_FZQD_R 71L // "分纸强度-一般" #define HGLIB_OPTION_ENUMVALUE_FZQD_YB 72L // "分纸强度-强" #define HGLIB_OPTION_ENUMVALUE_FZQD_Q 73L // "不休眠" #define HGLIB_OPTION_ENUMVALUE_XMSJ_BXM 74L // "五分钟" #define HGLIB_OPTION_ENUMVALUE_XMSJ_WFZ 75L // "十分钟" #define HGLIB_OPTION_ENUMVALUE_XMSJ_SFZ 76L // "半小时" #define HGLIB_OPTION_ENUMVALUE_XMSJ_BXS 77L // "一小时" #define HGLIB_OPTION_ENUMVALUE_XMSJ_YXS 78L // "两小时" #define HGLIB_OPTION_ENUMVALUE_XMSJ_LXS 79L // "四小时" #define HGLIB_OPTION_ENUMVALUE_XMSJ_SXS 80L // 左右对折 #define HGLIB_OPTION_ENUMVALUE_ZYDZ 81L // 上下对折 #define HGLIB_OPTION_ENUMVALUE_SXDZ 82L // 自动对折 #define HGLIB_OPTION_ENUMVALUE_ZDDZ 83L // 待纸扫描退出时间15s #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_15S 84L // 待纸扫描退出时间30s #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_30S 85L // 待纸扫描退出时间60s #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_60S 86L // 待纸扫描退出时间2min #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_2MIN 87L // 待纸扫描退出时间4min #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_4MIN 88L // 待纸扫描退出时间8min #define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_8MIN 89L // 跳过空白页-基于文件大小 #define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYJYWJDX 90L // 上传图像并校验 #define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJY 91L /* 配置值类型 */ #define HGLIB_OPTION_VALUETYPE_INT 1L #define HGLIB_OPTION_VALUETYPE_ENUM 2L #define HGLIB_OPTION_VALUETYPE_DOUBLE 3L #define HGLIB_OPTION_VALUETYPE_BOOL 4L /* 配置值范围类型 */ #define HGLIB_OPTION_VALUERANGETYPE_NULL 0L #define HGLIB_OPTION_VALUERANGETYPE_INTLIST 1L #define HGLIB_OPTION_VALUERANGETYPE_ENUMLIST 2L #define HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST 3L #define HGLIB_OPTION_VALUERANGETYPE_INTRANGE 4L #define HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE 5L #pragma pack(push) #pragma pack(4) typedef struct { HGUInt size; /* 结构体大小,必须初始化为sizeof(HGLibSaveImageParam) */ HGUInt jpegQuality; /* jpeg下有效, 0-100 */ HGUInt tiffCompression; /* tiff下有效, HGLIB_TIFFCOMPRESSION_* */ HGUInt tiffJpegQuality; /* tiff且HGLIB_TIFFCOMPRESSION_JPEG下有效, 0-100 */ HGBool ocr; /* 是否OCR,pdf和ofd格式有效 */ }HGLibSaveImageParam; /* 图像信息 */ typedef struct { HGUInt width; /* 宽(像素),列数 */ HGUInt height; /* 高(像素),行数 */ HGUInt type; /* 类型,参见HGLIB_IMGTYPE_* */ HGUInt widthStep; /* 每行的字节数 */ HGUInt origin; /* 数据排列方式,参见HGLIB_IMGORIGIN_* */ }HGLibImageInfo; typedef struct { HGInt* value; HGUInt count; }HGLibDeviceIntValueList; typedef struct { HGUInt* value; HGUInt count; }HGLibDeviceEnumValueList; typedef struct { HGDouble* value; HGUInt count; }HGLibDeviceDoubleValueList; typedef struct { HGInt minValue; HGInt maxValue; }HGLibDeviceIntValueRange; typedef struct { HGDouble minValue; HGDouble maxValue; }HGLibDeviceDoubleValueRange; typedef struct { HGUInt option; /* 配置名, 参见HGLIB_OPTION_NAME_* */ HGUInt type; /* 值类型, 参见HGLIB_OPTION_VALUETYPE_* */ union { HGInt intValue; HGUInt enumValue; HGDouble doubleValue; HGBool boolValue; }; HGUInt rangeType; /* 值范围类型, 参见HGLIB_OPTION_VALUERANGETYPE_* */ union { HGLibDeviceIntValueList intValueList; HGLibDeviceEnumValueList enumValueList; HGLibDeviceDoubleValueList doubleValueList; HGLibDeviceIntValueRange intValueRange; HGLibDeviceDoubleValueRange doubleValueRange; }; }HGLibDeviceParam; typedef struct { HGUInt group; /* 组名, 参见HGLIB_GROUP_NAME_* */ HGLibDeviceParam* param; HGUInt paramCount; }HGLibDeviceParamGroup; #pragma pack(pop) /* 设备热拔插回调 * event: HGLIB_DEVHOTPLUG_EVENT_* * deviceName: 设备名 * param: 回调参数 */ typedef void (HGAPI *HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *deviceName, HGPointer param); /* 设备扫描事件回调 * device: 设备句柄 * event: HGLIB_DEVSCAN_EVENT_* * operateCode: 设备错误码, HGLIB_DEVSCAN_EVENT_INFO下有效 * info: 扫描信息, HGLIB_DEVSCAN_EVENT_INFO下有效 * param: 回调参数 */ typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGInt operateCode, const HGChar *info, HGPointer param); /* 设备扫描图像回调 * device: 设备句柄 * image: 图像句柄, 不要调用HGLib_ReleaseImage释放, 回调执行后会自动释放 * param: 回调参数 */ typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param); /* 内存拷贝 */ HGEXPORT HGBool HGAPI HGLib_MemoryCopy(HGVoid *dest, const HGVoid *src, HGUInt size); /* 加载图像 */ HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath); /* 克隆图像 */ HGEXPORT HGLibImage HGAPI HGLib_CloneImage(HGLibImage image, HGUInt type, HGUInt origin); /* 获取图像数据 */ HGEXPORT HGByte* HGAPI HGLib_GetImageData(HGLibImage image); /* 获取图像信息 */ HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo); /* 获取图像DPI */ HGEXPORT HGBool HGAPI HGLib_GetImageDpi(HGLibImage image, HGUInt *xDpi, HGUInt *yDpi); /* 保存图像 */ HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam); /* 释放图像 */ HGEXPORT HGBool HGAPI HGLib_ReleaseImage(HGLibImage image); /* 获取OCR文本 */ HGEXPORT HGChar* HGAPI HGLib_GetOcrText(HGLibImage image); /* 销毁OCR文本 */ HGEXPORT HGBool HGAPI HGLib_ReleaseOcrText(HGChar* ocrText); /* 初始化扫描仪 */ HGEXPORT HGBool HGAPI HGLib_InitDevice(HGLibDeviceHotPlugEventFunc func, HGPointer param); /* 反初始化扫描仪 */ HGEXPORT HGBool HGAPI HGLib_DeinitDevice(); /* 获取扫描仪名称列表 */ HGEXPORT HGChar** HGAPI HGLib_GetDeviceNameList(); /* 销毁扫描仪名称列表 */ HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceNameList(HGChar** deviceName); /* 打开设备 */ HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName); /* 关闭设备 */ HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device); /* 获取设备型号 */ HGEXPORT HGBool HGAPI HGLib_GetDeviceType(HGLibDevice device, HGChar *type, HGUInt maxLen); /* 获取设备序列号 */ HGEXPORT HGBool HGAPI HGLib_GetDeviceSN(HGLibDevice device, HGChar *sn, HGUInt maxLen); /* 获取设备固件版本号*/ HGEXPORT HGBool HGAPI HGLib_GetDeviceFWVersion(HGLibDevice device, HGChar* fwVersion, HGUInt maxLen); /* 获取设备滚轴计数 */ HGEXPORT HGInt HGAPI HGLib_GetDeviceRollerCount(HGLibDevice device); /* 获取设备历史扫描张数 */ HGEXPORT HGInt HGAPI HGLib_GetDeviceTotalCount(HGLibDevice device); /* 清除滚轴计数 */ HGEXPORT HGBool HGAPI HGLib_ClearDeviceRollerCount(HGLibDevice device); /* 设置设备锁定令牌 */ HGEXPORT HGBool HGAPI HGLib_SetDeviceToken(HGLibDevice device, const HGChar *code); /* 设置设备参数 */ HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, HGUInt option, const HGVoid *data); /* 获取设备参数 */ HGEXPORT HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count); HGEXPORT HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option); /* 销毁设备参数 */ HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count); HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param); /* 重置设备参数 */ HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device); /* 设备是否有纸 */ HGEXPORT HGBool HGAPI HGLib_DeviceIsPaperOn(HGLibDevice device); /* 获取设备状态, -1表示异常,0表示无纸,1表示有纸 */ HGEXPORT HGInt HGAPI HGLib_GetDeviceStatus(HGLibDevice device); /* 重启设备 */ HGEXPORT HGBool HGAPI HGLib_DeviceRestart(HGLibDevice device); /* 关闭设备 */ HGEXPORT HGBool HGAPI HGLib_DeviceShutDown(HGLibDevice device); /* 开始扫描 */ HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam, HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam); /* 停止扫描 */ HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device); /* 停止扫描-异步 */ HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device); /* 获取设备错误码(在调用设备操作函数以后) */ HGEXPORT HGInt HGAPI HGLib_GetDeviceOperateCode(HGLibDevice device); /* 获取当前图像所属的页码序号(必须在HGLibDeviceScanImageFunc回调中调用) */ HGEXPORT HGInt HGAPI HGLib_GetDevicePageId(HGLibDevice device); #endif /* __HGSCANNERLIB_H__ */