跨平台扫描库

时间:2011-01-21 17:56:05

标签: scanning

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

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

因此,我开始创建这样一个计划。在低级别,我想支持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编写它,以实现最大的跨平台兼容性。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我知道我要迟到8年了,但是最后,我可以为您提供一个符合您要求的库:Libinsane :-)。它支持Sane,WIA2和TWAIN。您需要MSYS2才能在Windows上构建它。

我为我的个人项目Paperwork

编写了它