当前位置: 首页 > 知识库问答 >
问题:

用Java向打印机发送数据

薄涵衍
2023-03-14

但是,下面的代码将数据发送到打印机,当数据到达打印机队列时,它返回时带有无法转换PostScript文件。我认为可以通过指定风味来克服这个问题,但事实并非如此

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.PrintServiceAttribute;
import javax.print.attribute.standard.PrinterName;

public class New1 {

   public static void main(String[] args) {

       try {

           String s = "Hello";

          // byte[] by = s.getBytes();
           DocFlavor flavor = DocFlavor.STRING.TEXT_PLAIN;
           PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
           DocPrintJob job = pservice.createPrintJob();
           Doc doc = new SimpleDoc(s, flavor, null);
           job.print(doc, null);

       } catch (PrintException e) {
           e.printStackTrace();
       }      
   }
}

共有1个答案

俞子实
2023-03-14

只使用JPS,你会在Mac上遇到问题。我的建议是使用Java2Print API+Java Print Service。

Java2打印API类似于1990年的风格。为了避免使用Java2Print API创建代码,可以使用PDFBoxhttp://PDFBox.apache.org作为框架。

使用PDFBox,您可以创建一个PDF文档(http://PDFBox.apache.org/1.8/cookbook/documentcreation.html),但不是保存,而是使用以下代码打印:

PrinterJob printJob = PrinterJob.getPrinterJob();
PrintService service = PrintServiceLookup.lookupDefaultPrintService(); 
printJob.setPrintService(service);      
document.silentPrint(printJob);

它在我的Mac上工作得很好。

 类似资料:
  • 我正在尝试将打印机作业语言命令发送到HP 4515打印机。但是,打印机不会打印任何内容。下面是我的代码。打印机位于远程,我只能请那里的人检查是否打印出了任何内容。不幸的是,没有打印出任何内容。PJL命令的格式是否不好?如何使用Java获取作业状态 打印机的纸张设置:

  • 问题内容: Java中有一种简单的方法可以执行以下操作吗? 连接到打印机(将是本地打印机,并且是连接到机器的唯一打印机)。 在2个不同的打印机纸盘中打印2页的页面。 获取当前的打印队列计数,即我有100项要打印的项目和34项当前已打印,则打印机队列现在应显示为66。 问题答案: 一些快速提示: 从Java打印:请参阅基本打印程序 打印作业的状态:您可以使用PrintJobListener获得一些有

  • 我需要发送一个pdf文件打印在一个网络应用程序的服务器端,打印机完全支持pdf打印等,它是网络以及服务器。pdf也存储在服务器上。 我尝试的是点击一个按钮,打印出pdf文件,目前我有以下代码: 但我有几个问题,我如何将pdf放入输入流以打印出来,我可以选择诸如双面打印之类的选项,以及如何从JSF web应用程序中调用它 谢谢

  • 我正试图把我的脑袋围绕着我在编程集中遇到的一个问题。 我们应该编写从文件中读取并打印出来的代码。我明白,我能做到。 他要我们做的是把它反向打印出来。 文件内容如下: 下面是改进后的代码,我尝试将其放入数组中。 数组中的数据没有打印出来。

  • 在我的项目中,客户需要使用POS打印机打印收据,这可以使用JAVA POS来完成。我在网上搜索没有任何有用的材料,但发现 1.javapos 2.jpos 可以有人请指导我应该进行JAVA POS或JPOS。 该应用程序基于Java Swing desktop而不是基于web。 真的坚持这一点,任何帮助都是非常有用的

  • 我在标签打印机上打印时遇到了问题。下面的代码在一个上打印4个“标签”(附标签图片)。 下面的代码打印到兄弟QL-500标签打印机上。它打印到3.5"乘1.1"标签上。 如果有人能帮我更好地理解代码,那也太好了。 下面是它打印的内容: