【问题标题】:Expandable list in pdf filespdf文件中的可扩展列表
【发布时间】:2013-05-13 04:47:51
【问题描述】:
我可以在 pdf 文件中创建一个可扩展的列表吗?可扩展列表将采用以下形式:
+Item1
+Item2
-Item3
-Subitem3.1
-Subitem3.2
+Item4
-Item5
-Subitem5.1
-Subitem5.2
-Subitem5.3
我还需要从 Java 创建 pdf 文件(我正在考虑使用 iText,另一个库更好/更容易吗?)。这可能吗。或者其他标准格式(不是 pdf 或 html)的报告是更简单的出路。
【问题讨论】:
标签:
java
pdf
pdf-generation
report
【解决方案1】:
首先:我是 iText 的创建者,所以请原谅我没有为您指出其他解决方案 ;-)
现在您的问题是:您要求 PDF 文档中的动态功能(一种在用户交互时打开/关闭的树结构)。
最明显的答案是:这是不可能的。创建 PDF 时,请考虑纸张。您可以在最终用户触摸纸张时打开/关闭的纸上打印树结构吗?不,你不能,因此你问的是 PDF 中不可能的东西。
不太明显的答案是:视情况而定。我们在谈论什么类型的 PDF?
如果您谈论的是交互式 XFA 表单,那么您可能能够实现您想要的。 XML 表单体系结构 (XFA) 是一种 XML 规范,可用于定义交互式表单。当您使用 XFA 时,PDF 只不过是 XML 的容器。此 XML 在 Adobe Reader 中动态呈现。如何创建 XFA 表单?我只知道两个产品:Adobe LiveCycle Designer 和 Avoka Smart Forms Designer。
如果您谈论的是“常规 PDF”,那么一种选择是嵌入 swf 文件。在这种情况下,树结构将由 Flash 播放器呈现(这可能是一个缺点,因为这可能不适用于所有 PDF 查看器)。另一个缺点:树形结构会被限制在固定页面上的固定矩形内。
最后:您可以在书签面板中创建这样的结构。在 PDF 术语中,这些书签称为大纲。显然,树结构不会成为可打印内容的一部分。它将显示在 PDF 查看器的单独面板中。