我需要实现一个自定义打印机驱动程序,它在后台执行以下操作:
pinterdriver应该适用于windows和mac osx。我首选的实现语言是Java。
这可能与Java有关吗? 是否有可用于将编码工作量降至最低的框架?
答案 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程序可以监视此文件的更改,然后处理它收到的数据。