长期以来,让您感到烦恼的是,您需要特殊的软件才能从平板扫描仪创建多页PDF文档。因为“扫描仪”是一个不明确的词(这确实使搜索变得困难!),我需要澄清一下:例如,我的意思是指HP F4280打印机/扫描仪设备以光学方式“扫描”纸质文档并创建数字表示形式的过程。它,通常以.jpg或.tif文件结尾。
问题是我不知道跨平台的程序能够从平板扫描仪创建多页扫描。为此,该软件必须一次存储一个扫描页面,并询问用户是否要扫描另一页面。您不能依靠驱动程序来处理多页扫描,因为驱动程序仅对换页扫描仪执行此操作,即可以不间断地“吸入”一叠纸,并在将数据传递给驱动程序框架之前对其进行组合。
因此,我正在开始创建这样的程序。在低层,我想支持TWAIN和SANE接口(interface),在Windows XP或更高版本,Mac OS X和流行的大约2.6版Linux 2.6发行版上。 2008年或之后的年份。
我认为这是可行的。首先,我需要一个提供统一API的库,而不管它是在后端使用TWAIN还是SANE。 API必须能够提供已扫描数据的位(压缩或其他方式)的字节数组。应当公开TWAIN和SANE之间共享的一些属性:例如DPI,纸张尺寸以及颜色/灰度/线条。然后应该可以明确指定,提示或查询从成功扫描返回的字节数组的结果图像格式。
我并不特别关注编程环境:我熟悉所有流行的命令式/OO语言。我更喜欢Java或C#之类的东西,但是C或C++也可以正常工作。
一旦有了这样的库,就可以构造一个GUI,该GUI仅在需要时调用例程,然后使用几个可用的PDF渲染库之一来创建输出。我不坚持“一次编译,可以在任何地方运行”,但是我至少坚持“一次编写,在任何地方编译”。当然,由于TWAIN和SANE是互斥平台上可用的不同API,因此在某些时候必须有一些#ifdefs或其他区分平台的方法来确定使用哪个API。
我打算使用我的程序和直接链接的任何库以符合自由软件的要求(根据FSF),但是我对编程环境的唯一要求是,它在Windows XP或更高版本,Mac OS X和Windows XP上具有同等的功能。 Linux 2.6。
我一直在寻找很多这样的库,但是我什至找不到专有的库,更不用说自由软件了。如果有人找到了这样的 gem ,请给我一个链接-否则,将不胜感激有关我的应用程序入门的任何建议。如有必要,我将自己开发上述库,并将其作为GNU LGPL下的单独项目发布。为了应用程序的缘故,我更喜欢使用Qt4/C++,带有GTK#的.NET或Java/Swing来编写它,以实现最大的跨平台兼容性。
最佳答案
我知道我要迟到8年了,但是最后,我可以给您一个似乎符合您要求的库:Libinsane :-)。它支持Sane,WIA2和TWAIN。您将需要MSYS2才能在Windows上构建它。
我是为我的个人项目写的:Paperwork
关于scanning - 跨平台扫描库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4762106/