用Java自动打印已创建的itext报告

用Java自动打印已创建的itext报告,java,printing,Java,Printing,当按下按钮并编码以自动打印创建的报告时,我已经创建了itext报告 一些代码 DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; AttributeSet attributeSet = new HashAttributeSet(); attributeSet.add(new PrinterName("NPI8DA48A", null));

当按下按钮并编码以自动打印创建的报告时,我已经创建了itext报告

一些代码

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
                    AttributeSet attributeSet = new HashAttributeSet();
                    attributeSet.add(new PrinterName("NPI8DA48A", null));
                    PrintService service = PrintServiceLookup.lookupDefaultPrintService();

                    DocPrintJob job= service.createPrintJob();
                    Doc pdfp = new SimpleDoc(salepdf, flavor, null);
                    PrintJobWatcher watcher = new PrintJobWatcher(job);
                    job.print(pdfp, null);
                    watcher.waitForDone();
但这说明了一个例外

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data is not of declared type
at javax.print.SimpleDoc.<init>(SimpleDoc.java:103)
at com.bit.project.Newsale.saveprint_btnActionPerformed(Newsale.java:1128)
at com.bit.project.Newsale.access$1300(Newsale.java:57)
at com.bit.project.Newsale$16.actionPerformed(Newsale.java:683)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:数据不是声明的类型 位于javax.print.SimpleDoc(SimpleDoc.java:103) 位于com.bit.project.Newsale.saveprint\u btnActionPerformed(Newsale.java:1128) 访问com.bit.project.Newsale.access$1300(Newsale.java:57) 在com.bit.project.Newsale$16.actionPerformed上(Newsale.java:683) 在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 位于javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 第1128行是
DocFlavor flavor=DocFlavor.INPUT\u STREAM.AUTOSENSE

从中,如果前两个参数中的任何一个为null,或者第一个参数与指定的文档样式不对应,则
SimpleDoc
构造函数将抛出一个
IllegalArgumentException
。因此,我要确保
salepdf
实际上是一个
输入流。AUTOSENSE
,并且实际上是从中正确初始化的,
SimpleDoc
构造函数将抛出一个
IllegalArgumentException
,如果前两个参数中的任何一个为空,或者如果第一个与指定的文档样式不对应。因此,我要确保
salepdf
实际上是一个
输入流。AUTOSENSE
,并且在线程“AWT-EventQueue-0”中正确初始化
异常java.lang.IllegalArgumentException:数据不是声明的类型
似乎表明数据与
DocFlavor
之间不匹配

由于您使用的是
DocFlavor.INPUT\u STREAM.AUTOSENSE
,我猜它要么无法读取您的
salepdf
,要么它不是
InputStream

测试代码时,我必须确保数据是从PDF文件读取的
InputStream

线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:数据不是声明的类型
似乎表明数据与
DocFlavor
之间存在不匹配

由于您使用的是
DocFlavor.INPUT\u STREAM.AUTOSENSE
,我猜它要么无法读取您的
salepdf
,要么它不是
InputStream


当我测试您的代码时,我必须确保数据是从PDF文件读取的
InputStream

不知道它是否会产生影响,但是有一个PDF
DocFlavor
,不知道它是否会产生影响,但是有一个PDF
DocFlavor