java - pdf 文件中的可扩展列表

标签 java pdf pdf-generation report

我可以在 pdf 文件中创建可扩展列表吗?可扩展列表的形式为:

+Item1
+Item2
-Item3
   -Subitem3.1
   -Subitem3.2
+Item4
-Item5
   -Subitem5.1
   -Subitem5.2
   -Subitem5.3

我还需要从 Java 创建 pdf 文件(我正在考虑使用 iText,另一个库更好/更容易吗?)。这可能吗。或者其他标准格式(不是 pdf 或 html)的报告是更简单的方法。

最佳答案

首先:我是 iText 的创建者,所以请原谅我没有向您指出其他解决方案;-)

现在回答您的问题:您要求 PDF 文档中的动态功能(在用户交互时打开/关闭的树结构)。

最明显的答案是:这是不可能的。创建 PDF 时,请考虑纸张。您可以在纸张上打印一个树结构,当最终用户触摸纸张时该树结构会打开/关闭吗?不,你不能,因此你问的问题在 PDF 中是不可能的。

不太明显的答案是:这取决于情况。我们谈论的是什么类型的 PDF?

如果您正在谈论交互式 XFA 表单,那么您也许能够实现您想要的。 XML 表单架构 (XFA) 是一种可用于定义交互式表单的 XML 规范。当您使用 XFA 时,PDF 只不过是 XML 的容器。该 XML 在 Adob​​e Reader 中动态呈现。如何创建 XFA 表单?我只知道两个产品:Adobe LiveCycle Designer 和 Avoka ​​Smart Forms Designer。

如果您谈论的是“常规 PDF”,那么一种选择是嵌入 swf 文件。在这种情况下,树结构将由 Flash 播放器呈现(这可能是一个缺点,因为这可能不适用于所有 PDF 查看器)。另一个缺点:树结构将被限制在固定页面上的固定矩形内。

最后:您可以在书签面板中创建这样的结构。在 PDF 术语中,这些书签称为大纲。显然,树结构不会成为可打印内容的一部分。它将在 PDF 查看器的单独面板中可见。

关于java - pdf 文件中的可扩展列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16515029/

相关文章:

java - IReport 结合了横向和纵向方向

java - 在 PDFBox 中使用框生成字符 (utf-8)

java 将剩余部分发送到连接在同一 LAN 中的系统

java - 将逗号分隔的字符串添加到 ArrayList,反之亦然

Java可选类方法无法解析

pdf - 如何在没有 X11 的情况下从 Octave 音程绘制到 pdf

java - 将 Swing 组件添加到 PDF 文件

java - 我应该将文件放在哪里,以便在运行 jar 时能够访问它们?

iphone - 是否可以在 iPhone 或 iPad 上查看数字签名的 pdf?

jquery - 如何避免打印为 pdf 时固定 div 的重叠?