gpt4 book ai didi

java - 打印 ByteArrayOutputStream 对象

转载 作者:行者123 更新时间:2023-12-02 11:16:21 31 4
gpt4 key购买 nike

我有一个使用 iText 库生成的 PDF 文档,然后我使用 ByteArrayOutputStream 将文档保存在内存中以打印它,但它没有打印任何内容。知道为什么不打印吗?您可以找到下面的代码并提前致谢。

    ByteArrayOutputStream byteArr = new ByteArrayOutputStream();
Document document = new Document();
PdfWriter.getInstance(document, byteArr);
document.open();

/*
* Adding data and tables to the document
*/

document.close();

DocFlavor docType = DocFlavor.BYTE_ARRAY.AUTOSENSE;
byte[] byteStream = byteArr.toByteArray();// fetch content in byte array;
// byteArr is the ByteArrayOutputStream object
// Tried using InputStream but did not work as well.

Doc documentToBePrinted = new SimpleDoc(byteStream, docType, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService services = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = services.createPrintJob();
try {
job.print(documentToBePrinted, aset);
System.out.println("Donee");

}
catch (Exception pe)
{
pe.printStackTrace();

}

byteArr = null;


}

最佳答案

如果无法运行您的代码,这不是一个容易回答的问题。

可能的问题是您没有关闭 PdfDocument 类。结果,底层资源没有被释放,字节也没有被刷新。

结果,生成了无效(有时甚至是空)的 PDF 文档,打印机当然不会(或无法)打印该文档。

如果您可以存储 PDF,并且它可以在查看器中正确显示,那么您很可能在应用程序的打印部分中执行了错误的操作。

关于java - 打印 ByteArrayOutputStream 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249273/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com