在Java中连接并打印到打印机
在Java中有没有一种简单的方法可以完成以下任务在Java中连接并打印到打印机,java,printing,Java,Printing,在Java中有没有一种简单的方法可以完成以下任务 连接到打印机(将是本地打印机,也是唯一连接到机器的打印机) 在两个不同的打印机托盘中打印两页的页面 获取当前打印队列计数,即我有100个项目要打印,34个项目当前已打印,打印机队列现在应为66 您的需求非常具体,因此我不确定Java打印API是否满足您的所有需求。您可以使用直接访问本机操作系统的API,这可能会获得打印队列信息。一些快速提示: 从java打印:请参阅 打印作业的状态:您可以使用以下工具获得有用的内容: 此侦听器的实现 接口应连
您的需求非常具体,因此我不确定Java打印API是否满足您的所有需求。您可以使用直接访问本机操作系统的API,这可能会获得打印队列信息。一些快速提示:
- 从java打印:请参阅
- 打印作业的状态:您可以使用以下工具获得有用的内容:
非常好的打印教程: 另外,请检查我关于打印机的问题的答案,打印机作业API是您正在寻找的,但检查此项也将有助于:
打印字节数组的简单java程序
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
String str = "ABCGVDVJHBDKDLNJOKBUHODVWFCVDHGSBDKS";
byte[] byteArr = str.getBytes();
ByteArrayInputStream fis = new ByteArrayInputStream(byteArr);
String printerID; // = give printer ID here
System.out.println("printerID"+printerID);
String command = "lp -d " + printerID;
Process child = Runtime.getRuntime().exec(command);
OutputStream childOut = child.getOutputStream();
byte[] buffer = new byte[100000000];
int bytesRead;
while ((bytesRead = fis.read(buffer)) > 0)
{
childOut.write(buffer, 0, bytesRead);
}
childOut.close();
int exitVal = child.waitFor();
InputStream childIn = child.getInputStream();
BufferedReader is = new BufferedReader(new InputStreamReader(childIn));
String line;
boolean retval;
while ((line = is.readLine()) != null)
{
String finalLine = line;
}
childIn.close();
if (exitVal == 0)
{
retval = true;
}
}第一个想法是购买类似cups4j的产品。不确定java中的基本打印api是否可以处理此问题。