很长一段时间以来,您需要特殊的软件来从平板扫描仪创建多页 PDF 文档,这让我很恼火。因为“扫描仪”是一个含糊不清的词(这确实使搜索变得困难!)让我澄清一下:我的意思是,例如,HP F4280 打印机/扫描仪设备以光学方式“扫描”纸质文档并创建数字表示的过程它,通常以 .jpg 或 .tif 文件结尾。
问题是我不知道没有跨平台的程序能够从平板扫描仪创建多页扫描。为此,软件必须一次存储每个扫描的页面,并询问用户是否要扫描另一页。您不能依赖驱动程序来处理多页扫描,因为驱动程序只为换页扫描仪执行此操作,这些扫描仪会不间断地“吸入”一叠纸,并在将数据交给驱动程序框架之前组合数据。
因此,我开始着手创建这样一个程序。在底层,我想在 Windows XP 或更高版本、Mac OS X 和流行的 Linux 2.6 发行版上支持 TWAIN 和 SANE 接口。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 编写它,以获得最大的跨平台兼容性。