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