是否可以将一个 pdf 文件的内容放置到另一个文件的特定位置(例如,在两个段落之间),并使原始内容自动向下移动,这样它就不会覆盖新的内容?
如果没有,是否至少可以获得pdf页面内容部分的高度?
我有许多带有 AcroForms 的模板,其中一个是包含多个页面的主模板,我需要在特定位置标记并将其他文件插入其中。
我可以使用PdfWriter
和PdfTemplate
使用绝对定位来组装输出来做到这一点,但这似乎有点难看。
是否可以将一个 pdf 文件的内容放置到另一个文件的特定位置(例如,在两个段落之间),并使原始内容自动向下移动,这样它就不会覆盖新的内容?
如果没有,是否至少可以获得pdf页面内容部分的高度?
我有许多带有 AcroForms 的模板,其中一个是包含多个页面的主模板,我需要在特定位置标记并将其他文件插入其中。
我可以使用PdfWriter
和PdfTemplate
使用绝对定位来组装输出来做到这一点,但这似乎有点难看。
当您在这里提出多个问题时,我将在回答时引用相应的问题。
是否可以将一个 pdf 文件的内容放置到另一个文件的特定位置(例如,在两个段落之间),并使原始内容自动向下移动,这样它就不会覆盖新的内容?
PDF不是一种可以(轻松)重排的格式。虽然您的问题没有提到重排的最坏情况(这将是在现有段落中插入一些文本,例如句子),但这已经很困难了。向下移动段落时,例如,您不希望任何页脚行也向下移动;不幸的是,页脚行没有(必然)标记为页脚行。您可能想要移动属于内容的图像,而不是背景图像;不幸的是,图像没有被标记为前景或背景图像。等等。
本质上:iText 没有用于此类段落插入的便捷方法,任何拥有它们的库都会经常产生不良结果。
如果没有,是否至少可以获得pdf页面内容部分的高度?
PDF 页面的内容部分是什么?你的意思是排除页眉和页脚吗?如上所述,页眉和页脚没有这样标记,因此不能(可靠地)自动识别。因此,没有。还是您的意思是所有页面内容所在的最小矩形?在这种情况下,请查看iText in Action - 2nd Edition第 15 章中的示例ShowTextMargins。此示例查找文本,但您可以通过扩展其中的使用来轻松概括它,使其不仅对 renderText 事件作出反应,而且对 renderImage 作出反应。不过,我担心剪切路径可能会被忽略。TextMarginFinder
我有许多带有 AcroForms 的模板,其中一个是包含多个页面的主模板,我需要在特定位置标记并将其他文件插入其中。
你提到了 Acroforms。表单元素不是PDF 页面内容的一部分,它们作为注释与其关联。注释比页面内容更容易移动,但如果页面内容和注释属于彼此,则必须同时移动两者。
我可以使用 PdfWriter 和 PdfTemplate 来使用绝对定位来组装输出,但这似乎有点难看。
这在什么方面看起来很丑陋?输出丑陋还是产生它的代码?