2010-10-06 117 views
2

我们的应用程序是一个基于Java的网络应用程序,由许多不同的组织使用并由我们自己托管。如何创建一个PDF文件,打印后将每个页面发送到另一个托盘/打印机?

我目前正在努力解决上述问题。在我们的应用程序中,我们有一个批量打印功能,可以打印出PDF文件,由Apache FOP生成,然后用户可以打印。问题是,有时需要在一台打印机(或一台打印机的纸盘)中打印其中一些页面,其他页面需要打印其中一页,第三页与第一页打印机位于同一打印机/纸盒中。

我最初的目的是使用Adobe Javascript,因为它似乎允许每页打印机选择(不幸的是没有当前不支持的托盘选择)。然后,我可以通过选择不同的默认纸盒的不同打印机来解决纸盒选择问题。最后一部分是问题:

所以我的问题是,有人知道如何,或者如果可能的话,创建网络打印机与默认纸盒?这也意味着网络打印机需要能够拥有多个IP,每个IP都有不同的设置。 PS:当写这篇文章时,我意识到它可能更像是一个系统管理员类型的问题。但是,考虑到这个问题与编程有关,我认为它属于这里。

回答

0

网络打印机不需要有不同的IP地址; Windows打印机可以指向相同的IP并使用相同的驱动程序,因此您试图实现的是可能的(然后每个打印机可以有不同的默认设置 - 托盘等...)

或者,您可以检查Java库这可以让你打印PDF文件,例如这个post谈论一个(可能不像你所要求的那样稳定或完整)

+0

对,但我们并不是在这里讨论Windows,我们的服务器上的应用程序必须识别这些打印机,以便我们可以将它集成到我们的PDF中。这样我们可以将每个页面设置为自动打印。 – rbottel 2010-10-06 10:53:44

+0

@rbottel,啊是的,我在想可携带性可能会下降。那么,我必须承认,我不知道你是如何从Java打印机上进行交谈的(我通过Java获得了Windows打印机配置文件)。现在,如果为同一台打印机配置不同的IP地址,然后检查打印机,它可能会支持多个IP地址,或者您可以在路由器上执行DNAT。这两种方法*都是骇人听闻的(看起来我应该有一个更合适的方法)。 – Unreason 2010-10-06 11:36:44

+0

是的,就像我在我的问题中所说的那样,我们托管我们的应用程序,但多个大型医疗机构都使用此功能。所以它需要从系统管理员的角度进行配置。但是,获取Windows配置文件可能不是一个坏主意,这样系统管理员可以确保必要的打印机可用,并且我们可以通过名称或其他方式查询它们。 – rbottel 2010-10-06 12:19:51

0

通过创建多个PDF并直接从Java打印它们,你可以设置所有你想要的选项将你的垃圾路由到正确的托盘。 “media”参数允许您选择纸盘。

+0

感谢您的回答,但是我们遇到了使用Java Applets的严重问题,所以我不认为我们可以使用Java直接打印。 :) – rbottel 2010-10-06 12:21:32

+0

您对其他答案的评论说,您的服务器上的应用程序必须检测打印机来整合它们。这让我认为你的服务器可以与打印机进行通信。在这种情况下,不能直接从服务器打印? – Guillaume 2010-10-06 14:33:34

+0

或者,如果小程序是一个问题(我可以理解),你可以写一个小的Java Webstart打印助手吗?如果您的部署环境得到充分控制,则很容易实施。 – Guillaume 2010-10-06 14:34:45