6

很长一段时间以来,您需要特殊的软件来从平板扫描仪创建多页 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++、带有 GTK# 的 .NET 或 Java/Swing 来编写它,以获得最大的跨平台兼容性。

4

2 回答 2

4

我知道我迟到了 8 年,但最后,我可以给你一个似乎符合你要求的库:Libinsane :-)。它支持 Sane、WIA2 和 TWAIN。您将需要MSYS2在 Windows 上构建它。

我是为我的个人项目写的:文书工作

于 2019-08-07T09:00:56.047 回答
2

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

于 2011-01-21T19:59:20.113 回答