【问题标题】:Possible to control PDF layout with iText?可以使用 iText 控制 PDF 布局吗?
【发布时间】:2013-11-03 06:55:15
【问题描述】:

我正在编写一些逻辑来构建一个大型的单个 PDF 文件,我们的用户可以在方便时打印该文件。我正在使用 Java 的 iText 库(通过 Clojure 的 clj-pdf)。

我试图让 PDF 在每一页上显示完全相同的模板表单,但是我似乎找不到任何文档或指示可以让 PDF 内容“适合页面”。

这些形式的文本略有不同,因此每页可能需要更多更少的文本行。这意味着内容有可能溢出到下一页,或者太短,使下一页爬到上一页,打破了文档其余部分“每页一个表单”的要求。

我试图弄清楚我的选择是否仅仅是手动检查每页上文本的长度,如果我超过 n 行,可能会手动裁剪它,或者 PDF 格式是否以某种方式支持智能将段落+表格+标题全部放在一页中的方式。一些 UI 系统允许你控制溢出的处理方式,从裁剪到调整字体大小,所以我很好奇 PDF 是否支持这种类型的任何东西。

编辑:为简单起见,最终使用分页符,当我写这个问题时不知道这个选项。

【问题讨论】:

  • 你说 pdf 支持它......我认为你的意思是我选择创建 pdf 的应用程序支持它。并且正如您还指出的那样,有很多方法可以控制从裁剪到字体大小到行距到段落间距的溢出...如果您将 iText 指定为解决方案,那么您可以对所有这些进行编程。如果您使用的是替代方案像 xsl fo 这样的解决方案,那么它们可能在您选择的产品中。根据您的要求,您需要自己编程。

标签: pdf pdf-generation itext


【解决方案1】:

如果您想控制文本占用的空间,例如将其放在单个页面上,则可以创建一个ColumnText 对象并在模拟模式下添加内容。如果文本适合页面,请真实添加。如果不是,请使用较小的字体大小。这在MovieAds 示例中得到了证明,其中将文本的 sn-ps 拟合到 AcroForm 字段中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    相关资源
    最近更新 更多