java中的打印机驱动程序实现

时间:2011-09-01 08:15:15

标签: java frameworks printing driver

我需要实现一个自定义打印机驱动程序,它在后台执行以下操作:

  1. 创建要打印的文档的PDF文档
  2. 将创建的PDF文档发送到预定义的电子邮件地址或 调用Web服务并在那里传输文档
  3. pinterdriver应该适用于windows和mac osx。我首选的实现语言是Java。

    这可能与Java有关吗? 是否有可用于将编码工作量降至最低的框架?

2 个答案:

答案 0 :(得分:4)

你确定“司机”真的是你在这里寻找的词吗?通常当一个人说一个打印驱动程序时,他们实际上意味着将文档数据转换为打印机命令的东西。我认为你真的在寻找一种预处理器。

在任何情况下,如果您希望它看起来像操作系统的打印机,那么几乎不可能完全用Java做。最好的办法是为每个使用JNI(或只是调用JVM)的平台创建驱动程序,进行处理,然后将其转发到打印机。

虽然我不知道类似的方法是否适用于Windows,但您想要做的事情在OS X上几乎无关紧要.Apple已经提供了cup-pdf服务,可将任何可打印的文档转换为pdf,要做的就是获取输出,将其转发到需要的位置,然后将其转发到打印机,无需用Java做任何事情。

有关如何执行此操作的示例,请查看以下项目:

https://bitbucket.org/codepoet/cups-pdf-for-mac-os-x/downloads

答案 1 :(得分:0)

可以将Windows配置为将打印机输出发送到文件。您可以在Windows中使用PostScript驱动程序创建打印机,并将其写入c:\ myfile.txt 在Windows中:添加打印机,选择本地打印机,选择创建新端口,然后键入要使用的文件名(完整路径)。然后选择你想要的驱动程序,你的Java程序必须解析它。在某些情况下,通用文本可能很有用,如果您需要所有格式化,则可以使用Postscript,并且可以处理解析。

与"文件:"不同。现有端口下的选项,它不会要求用户输入文件名。它每次都会自动保存到指定的文件中。

您的Java程序可以监视此文件的更改,然后处理它收到的数据。