在 JFrame 中显示在 java 程序中生成的 pdf 文档的内容,而不创建 pdf 文件

Show the contents of pdf Document generated in java program ,without creating pdf file, in JFrame


我正在使用 itextpdf-5.1.0.jar 文件从 java 程序创建一个 pdf 文件。
它有 文档 class,其实例包含要写入 pdf 文件的全部数据。 创建 pdf 文件并将其保存在我们的任何系统驱动器中后,可以使用 icepdf-viewer-6.2 中的 classes 在我的 java 程序中查看相同内容。2.jar.

不是在系统驱动器中创建文件并在 java 应用程序中重新加载相同的文件,是否有任何 class 以 Document class[ 的实例=24=] of itextpdf-5.1.0.jar作为参数直接在Jframe中显示pdf文件的内容?

您的问题包含不正确的假设:

It has Document class whose instance contains entire data to be written to the pdf file.

虽然 itext Document 实例确实是您将所有内容添加到 itext 的对象,但该实例 不是 完全包含 那个内容。相反,它立即将它转发给已注册的侦听器对象,后者又尽快将其写入 PdfWriter 实例,后者又尽快将其写入为其实例化的流。

因此,你的问题

is there any class which takes the instance of Document class of itextpdf-5.1.0.jar as a parameter and show the contents of pdf file directly the in Jframe

显然要回答:不,不可能有这样的class。

不过,您可以使用 ByteArrayOutputStream 而不是 FileOutputStream 实例化 PdfWriter 以在内存中生成 pdf:关闭 Document 之后您可以从 ByteArrayOutputStream 中检索字节数组,然后保存完成的 pdf。然后,您可以尝试使用您选择的 pdf 查看器组件从内存中显示 pdf,只要该查看器支持通过字节数组或输入流(通过 ByteArrayInputStream)输入文档。