我在各种主机和打印机上打印包含某些标签的PDF时遇到问题。 在某些主机上,我的应用程序打印了许多空白页,但在其他主机上,一切正常。 我不知道为什么。 我没有任何空异常或其他东西。

在装有Linux和带有网络打印机的JRE10的主机上,我的应用程序正常运行。 它正在完美地打印一张A4页。

在与上述相同的主机上,但在Windows 7和JRE10上(我也尝试过使用JRE8,仍然没有尝试),并且同一台网络打印机上,我的应用程序正在打印许多空白/空白页。 (与上述网络,打印机和主机相同)

因此,我测试了另一台具有JRE10和上述网络打印机的Windows 10主机。 应用程序正在打印许多空白/空白页。

在其他装有Windows 7和JRE8的主机上,但使用不同的网络打印机,我的应用程序正确打印了标签。 它正在完美地打印一张A4页。

在使用Windows 7和JRE8的另一台不同主机上以及在不同网络打印机应用程序上打印空白页。

问题可能出在哪里? 是不稳定的JRE还是我的代码错误?

码:

public static String printPdf(byte[] pdf){

log.debug("printPdf(byte["+pdf.length+"])");

log.info("All printers:"+ Printer.getAllPrinters());

PrinterJob printerJob = PrinterJob.createPrinterJob();

if(printerJob==null){

log.warn("No priters were found in system");

return "[E:2]";

}

Printer printer = null;

if(printerJob.showPrintDialog(null))

{

log.info("Selected printer " + printerJob.getPrinter().getName());

printer = printerJob.getPrinter();

}

DocFlavor docType = DocFlavor.INPUT_STREAM.AUTOSENSE;

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

aset.add(MediaSizeName.ISO_A4);

PrintService[] pservices = PrintServiceLookup.lookupPrintServices(null, aset);

String pserv = Arrays.stream(pservices).map(printService -> printService.getName()).collect(Collectors.joining(", "));

log.debug("Available print services:" + pserv);

DocPrintJob docPrintJob = null;

for(PrintService ps : pservices){

log.debug("PrintSevice: "+ps.getName());

if(ps.getName()==printer.getName()){

log.info("Serviece for a printer was founded");

docPrintJob = ps.createPrintJob();

}

}

if (docPrintJob!=null) {

log.debug("Created DocPrintJob: " +docPrintJob.getAttributes().toString());

try {

Doc doc = new SimpleDoc(new ByteArrayInputStream(pdf), docType, null);

log.info("Printing document");

docPrintJob.print(doc, aset);

} catch (PrintException e) {

log.error("PrintException", e.getMessage(), e);

return "[E:3]";

}

}else {

log.error("Null DocPrintJob");

return "[E:4]";

}

return "OK";

}

java打印空白页_java - DocPrintJob在随机主机上打印空白页 - 堆栈内存溢出相关推荐

  1. java ftp 关闭连接_java - 使用Java Apache FTPClient进行FTP TLS获取“握手时远程主机关闭连接”[重复] - 堆栈内存溢出...

    我在Windows 10 64x上为FTP TLS(org.apache.commons.net.ftp)运行了一个Java(1.8)程序: FTPSClient ftpClient = new FT ...

  2. Java筛选重复名字输出单一的,java - 输入:一个单词的字符串。 打印给定字符串的所有重排,而无需重复。 爪哇 - 堆栈内存溢出...

    这是我想到的最简单的方法 String str= "abc"; ArrayList letters = new ArrayList(); HashSet combinations ...

  3. aws java mysql_java - AWS EC2 / MySql - spring boot无法从datasource确定jdbc url - 堆栈内存溢出...

    我有一个简单的Spring Boot应用程序,我试图在基于Amazon AMI的Amazon EC2实例上部署. 它使用MySql数据库(版本8.0.15). 我在AWS上创建了数据库,当我从本地系统 ...

  4. java服务器返回错误码,java - java.io.IOException:服务器返回URL的HTTP响应代码:409 - 堆栈内存溢出...

    我正在使用某些应用程序的API下载文档. 问题是,当我尝试解析inputStream时,它将引发响应代码409异常. 但是最大的问题是它有时会抛出此异常. 此异常的原因是什么? 这是我的代码: URL ...

  5. java spring 打包后找不到路径,java - Spring中的类路径问题:找不到文件异常 - 堆栈内存溢出...

    我有一个简单的Java Spring IO项目,其中的一个类应该从csv文件读取,对于每个读取的记录,参数都存储在帐户对象列表中. 我正在使用Force IDE Luna,并且读取文件的Class C ...

  6. java mapper.readtree_java - 杰克逊的readValue和readTree:何时使用哪个? - 堆栈内存溢出...

    我刚刚开始使用Jackson JSON库. 杰克逊是一个非常强大的库,但它有一个非常广泛的API. 很多事情可以通过多种方式完成. 这使得很难在杰克逊找到自己的方式 - 如何知道什么是正确/最好的做事 ...

  7. java游戏怎么导入jme3,java - JME:将带有纹理的Cinema 4d模型导入jMonkey Projekt - 堆栈内存溢出...

    我的问题是: 现在,我想将其导出到我的jMonkeyEngine中,以将其设置在场景中并对其进行动画处理. 我试图将模型导出为.obj文件并将其加载到我的项目中(只是.obj文件). 结果是我没有纹理 ...

  8. java结果写入html,java - 将长字符串写入HTML文件,InputStream vs FileWriter vs BufferedReader - 堆栈内存溢出...

    我对执行此操作的最佳方法有些困惑. 我在SO上看到了很多示例,许多答案有不同的解决方案. 因此,我想知道将非常长的字符串写入新的html文件的最有效方法(即,从字符串中生成html文件). 并且真的可 ...

  9. 如何在虚拟主机上部署java项目_如何在购买的虚拟主机上部署java项目

    如何在购买的虚拟主机上部署java项目?要选购的虚拟主机来部署Java新项目,第一步要确保虚拟主机能够支持Java的项目,随后采用ftp客户端软件将Java的项目上传至虚拟主机的主目录下,如此一来就能 ...

最新文章

  1. C#的winform矩阵简单运算
  2. java web中验证码的实现
  3. 微软备战 RPA 市场,Power Platform,Ready GO!
  4. 论文浅尝 - AAAI2020 | 利用自然语言推断生成人称一致的对话
  5. 你发这些什么目的_微信CRM系统究竟是什么?
  6. Nginx 架构详解
  7. java公平锁和非公平锁_java并发编程学习之再谈公平锁和非公平锁
  8. 应用安全-Web安全-SSRF攻防
  9. JS获取浏览器版本号
  10. 科林明伦杯哈尔滨理工大学第八届程序设计竞赛——Hrbust-2378 小H的问题(模拟)
  11. 关于Navicat连接mysql数据库报host XXXXXXX is not allowed to connect to this mysql server
  12. dirname: missing operand 问题解决
  13. 西门子PLC产生随机数
  14. 计算机论文写作提纲怎么写,计算机算法论文提纲 计算机算法论文大纲如何写...
  15. 习惯的力量:35岁以前养成好习惯
  16. java计算机毕业设计家庭安防系统源码+mysql数据库+系统+lw文档+部署
  17. Vue3 实现 RBAC 权限管理
  18. Python批量处理方法
  19. 苹果公布穿戴设备进行跌倒检测专利,Find My技术堪称王炸
  20. 强化学习VPG和PPO的区别

热门文章

  1. 如果运气不好,就试试勇气
  2. 论文阅读——利用Inceptioin V3在PET上进行AD预测
  3. 高德地图API学习二、获取定位数据
  4. P2p流媒体直播与视频会议有什么不同?
  5. 几款实用的Docker的GUI管理界面
  6. 网络学习 DNS服务:域名解析和域名迁徙
  7. checkbox选中和不选中 jqu_JQuery控制radio选中和不选中方法总结
  8. 计算机环境与应用专业就业前景,2018资源环境科学专业就业前景和就业方向分析...
  9. 全志R11 _Tina_V2.5 wifimanager API
  10. 用java做小学数学系统_小学生数学练习题目自动生成系统——java课程设计