为了账号安全,请及时绑定邮箱和手机立即绑定

使用 javax.print 将纯文本文件打印到 PDF 打印机会产生一个空文件

使用 javax.print 将纯文本文件打印到 PDF 打印机会产生一个空文件

慕勒3428872 2021-08-04 16:37:24
我需要从纯文本文件创建一个 pdf 文件。我认为最简单的方法是读取这些文件并将它们打印到 PDF 打印机。我的问题是,如果我打印到 pdf 打印机,结果将是一个空的 pdf 文件。如果我打印到 Microsoft XPS Document Writer,文件将以纯文本格式创建,而不是 oxps 格式。我会对两步或三步的解决方案感到满意。(例如,先转换为 xps,然后使用 ghostscript 或类似方法转换为 pdf)。我尝试了几种 pdf 打印机,例如:CutePDF、Microsoft PDF writer、Bullzip PDF。每个人的结果都是一样的。环境为Java 1.7/1.8 Win10private void print() {    try {        DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;        PrintRequestAttributeSet patts = new HashPrintRequestAttributeSet();                           PrintService[] ps = PrintServiceLookup.lookupPrintServices(flavor, patts);        if (ps.length == 0) {            throw new IllegalStateException("No Printer found");        }        System.out.println("Available printers: " + Arrays.asList(ps));        PrintService myService = null;        for (PrintService printService : ps) {            if (printService.getName().equals("Microsoft XPS Document Writer")) { //                 myService = printService;                break;            }        }        if (myService == null) {            throw new IllegalStateException("Printer not found");        }        myService.getSupportedDocFlavors();        DocPrintJob job = myService.createPrintJob();   FileInputStream fis1 = new FileInputStream("o:\\k\\t1.txt");        Doc pdfDoc = new SimpleDoc(fis1, DocFlavor.INPUT_STREAM.AUTOSENSE, null);        HashPrintRequestAttributeSet pr = new HashPrintRequestAttributeSet();        pr.add(OrientationRequested.PORTRAIT);        pr.add(new Copies(1));        pr.add(MediaSizeName.ISO_A4);        PrintJobWatcher pjw = new PrintJobWatcher(job);        job.print(pdfDoc, pr);        pjw.waitForDone();        fis1.close();    } catch (PrintException ex) {        Logger.getLogger(Docparser.class.getName()).log(Level.SEVERE, null, ex);    } catch (Exception ex) {        Logger.getLogger(Docparser.class.getName()).log(Level.SEVERE, null, ex);    }}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 288 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信