跨平台扫描库

很长一段时间,我很恼火,你需要使用特殊软件从平板扫描仪创建多页PDF文档.因为“扫描仪”是一个含糊不清的词(这真的让搜索变得困难!)让我澄清一下:我的意思是,例如,HP F4280打印机/扫描仪设备光学“扫描”纸质文档并创建数字表示的过程.它,通常最终为.jpg或.tif文件.

问题是,我知道没有跨平台的程序,并且能够从平板扫描仪创建多页扫描.为此,软件必须一次存储一个扫描页面,并询问用户是否要扫描另一页面.您不能依赖驱动程序来处理多页扫描,因为驱动程序只对表单进纸扫描程序执行此操作,这些扫描程序将“吸入”一堆纸而不会暂停,并在将数据交付给驱动程序框架之前将数据组合在一起.

因此,我开始创建这样一个计划.在低级别,我想支持TWAIN和SANE接口,在Windows XP或更高版本,Mac OS X和流行的Linux 2.6发行版中. 2008年或以后的年份.

这是我设想它将如何工作.首先,我需要一个提供统一API的库,无论它是在后端使用TWAIN还是SANE. API必须能够提供扫描数据的压缩或其他位的字节数组.应展示TWAIN和SANE之间共享的一些属性:例如,DPI,纸张大小和颜色/灰度/艺术线条.然后应该可以指定显式,提示或查询从成功扫描返回的字节数组的结果图像格式.

我并不特别关心编程环境:我熟悉所有流行的命令式/ OO语言.我更喜欢Java或C#之类的东西,但C或C也可以正常工作.

一旦我掌握了这样的库,我就可以构建一个只需要根据需要调用例程的GUI,并使用几个可用的PDF渲染库中的一个来创建输出.我不坚持“编译一次,随处运行”,但我坚持“写一次,随处编译”至少.当然,因为TWAIN和SANE是在互斥平台上可用的不同API,所以在某些时候必须有一些#ifdefs或其他区分平台的方法来确定使用哪个API.

我打算将我的程序和我直接链接的任何库作为自由软件(根据FSF),但我对编程环境的唯一要求是它在Windows XP或更高版本,Mac OS X和Linux 2.6.

我一直在谷歌上搜索这么一个库,但我甚至找不到专有的库,更不用说免费的软件了.如果有人找到了这样的宝石,请给我一个链接 – 否则,任何有关我的申请入门的建议将不胜感激.如有必要,我将自己开发上述库,并将其作为GNU LGPL下的单独项目发布.为了应用程序的缘故,我更喜欢用Qt4 / C,.NET和GTK#或Java / Swing编写它,以实现最大的跨平台兼容性.

最佳答案 不幸的是,TWAIN是一个严格限制的标准.大多数制造商只实现足够的TWAIN功能来运行自己的GUI.尝试使用较低级别的TWAIN功能和您自己的GUI不是一个实用的解决方案,除非您真正针对特定的扫描仪.

点赞