0

是否可以将一个 pdf 文件的内容放置到另一个文件的特定位置(例如,在两个段落之间),并使原始内容自动向下移动,这样它就不会覆盖新的内容?

如果没有,是否至少可以获得pdf页面内容部分的高度?

我有许多带有 AcroForms 的模板,其中一个是包含多个页面的主模板,我需要在特定位置标记并将其他文件插入其中。

我可以使用PdfWriterPdfTemplate使用绝对定位来组装输出来做到这一点,但这似乎有点难看。

4

1 回答 1

1

当您在这里提出多个问题时,我将在回答时引用相应的问题。

是否可以将一个 pdf 文件的内容放置到另一个文件的特定位置(例如,在两个段落之间),并使原始内容自动向下移动,这样它就不会覆盖新的内容?

PDF不是一种可以(轻松)重排的格式。虽然您的问题没有提到重排的最坏情况(这将是在现有段落中插入一些文本,例如句子),但这已经很困难了向下移动段落时,例如,您不希望任何页脚行也向下移动;不幸的是,页脚行没有(必然)标记为页脚行。您可能想要移动属于内容的图像,而不是背景图像;不幸的是,图像没有被标记为前景或背景图像。等等。

本质上:iText 没有用于此类段落插入的便捷方法,任何拥有它们的库都会经常产生不良结果。

如果没有,是否至少可以获得pdf页面内容部分的高度?

PDF 页面的内容部分是什么?你的意思是排除页眉和页脚吗?如上所述,页眉和页脚没有这样标记,因此不能(可靠地)自动识别。因此,没有。还是您的意思是所有页面内容所在的最小矩形?在这种情况下,请查看iText in Action - 2nd Edition第 15 章中的示例ShowTextMargins。此示例查找文本,但您可以通过扩展其中的使用来轻松概括它,使其不仅对 renderText 事件作出反应,而且对 renderImage 作出反应。不过,我担心剪切路径可能会被忽略。TextMarginFinder

我有许多带有 AcroForms 的模板,其中一个是包含多个页面的主模板,我需要在特定位置标记并将其他文件插入其中。

你提到了 Acroforms。表单元素不是PDF 页面内容的一部分,它们作为注释与其关联。注释比页面内容更容易移动,但如果页面内容注释属于彼此,则必须同时移动两者。

我可以使用 PdfWriter 和 PdfTemplate 来使用绝对定位来组装输出,但这似乎有点难看。

这在什么方面看起来很丑陋?输出丑陋还是产生它的代码?

于 2013-01-16T09:28:01.760 回答