我正在使用itextpdf-5.1.0.jar文件从Java程序创建pdf文件。
它具有 Document类,其实例包含要写入pdf文件的全部数据。创建pdf文件并将其保存在我们的任何系统驱动器中之后,可以使用icepdf-viewer-6.2.2.jar中的类在我的Java程序中 查看该文件。
而不用在系统驱动器中的文件,并在Java应用程序重新加载相同的,是有这需要的实例的任何类文档类的itextpdf-5.1.0.jar作为参数,并直接显示PDF文件的内容在JFrame的?
你的问题包含一个错误的假设:
它具有Document类,其实例包含要写入pdf文件的全部数据。
尽管itextDocument
实例确实是对象,但你将所有内容添加到itext将为你布局的内容中,但该实例根本不 包含该内容。相反,它立即将其转发到已注册的侦听器对象,后者又将其尽快PdfWriter
写入实例,该实例又将其尽快写入实例化的流。
因此,你的问题
是有这需要的实例的任何类文档类的itextpdf-5.1.0.jar直接作为参数,并显示PDF文件的内容中的JFrame
显然必须回答:不,不可能有这样的课程。
但是,你可以做的是PdfWriter
用aByteArrayOutputStream
而不是a实例化FileOutputStream
以在内存中生成pdf:在关闭你的文件后,Document
你可以从中检索字节数组ByteArrayOutputStream
,然后保存已完成的pdf。然后,你可以使用所选的pdf查看器组件尝试从内存中显示pdf,只要该查看器支持通过字节数组或输入流(通过ByteArrayInputStream
)进行文档输入即可。
。非常感谢:)我将尝试您的想法。