【发布时间】:2015-05-25 16:20:58
【问题描述】:
如何在 Java 中确定 Apache PDFBox 中页面中的行数?
我需要将每个页面分成三个不同的页面,以便对每个部分进行一些统计。然后,我需要确定页面有多少行。之后,我需要遍历每一行并在新页面中写入尽可能多的行。
我想知道是否可以使用PDFBox。 (我对这个库完全陌生,需要快速弄清楚)
【问题讨论】:
-
您的问题有点令人困惑-您只需要知道页面上的文本行数(使用 PDFTextStripper 非常简单),还是您还询问如何将页面分成三页?最后会很困难。 PDF 中的行不能按顺序排列,而且通常不是。 PDF 不是 HTML。
-
“线条”是什么意思?文本行还是矢量元素?
-
我的意思是文本行。在这一点上,我不想让它变得复杂。我只需要将一个页面分成三个不同的页面。例如,如果我有一个包含 3 页的文档,我需要创建一个包含 9 页的新文档(包含准确的文本)。这可行吗?
-
要计算行数,请参阅 Luis 的答案。 (设置起始页和结束页)。然而,将页面一分为三几乎是不可能的。 PDF 甚至没有文本行的概念。大多数 PDF 一次输出几个字符或单词,而且通常不是您在屏幕上看到的顺序。您必须分析内容流,然后针对每个小部分序列,决定它应该转到三个页面中的哪一个。如果所有 PDF 文件都来自同一个制作者,可能会更容易。
-
实际上拆分确实很困难,但 OP 可能会使用类似于 this answer 中用于 iText 的技术:他可能会将原始页面放入 Xobject 并绘制该 Xobject 的剪辑部分到目标页面上。