2012-08-22 49 views
2

我有要求将内容插入PDF中的页面中间。如何使用IText将内容插入PDF中的页面中间

内容可能是动态表或图像。

我的理念是首先将PDF分成两部分,然后通过替换占位符字段来获取要添加和追加的新内容。


拆分被称为平铺根据IText,这里是一个相同的例子。 http://itextpdf.com/examples/iia.php?id=116

上面的代码有两个缺点: 1.它将页面拆分为16个部分。但这是示例的一部分。我仍然不能找出一种方法来将文件分成两部分。 2.其次,拆分页面转换为完整页面,从而干扰其比例。


重新排列代码是另一个问题。

剩余内容应以附加模式重新排序。但直到现在我只找到代码来添加完整的新页面而不仅仅是内容。

我发现,通过更换一个占位符追加PDF内容代码:

float[] fieldPosition= pdfTemplate.getAcroFields().getFieldPositions("tableField"); 
PdfPTable table = buildTable(); 
PdfContentByte cb = stamper.getOverContent(1); 
table.writeSelectedRows(0, -1, fieldPosition[1],fieldPosition[4],cb); 

请帮我解决了这个要求。

回答

2

PDF是一种演示文稿格式,而不是一种版本格式。换句话说,它的设计不允许内容插入,而原始内容会优雅地回流。因此,没有工具(至少,我没有知道的,当然也不是iText)将使您能够实现您作为要求提供的东西。

我的建议是:

  • 拒绝分配,因为它是不可行的,或
  • 得到你的手在原稿时,将所需的额外内容,并然后转换为PDF。
+0

嗨亚历克西斯,我不同意你。我已经在某种程度上编辑了PDF,并且我被告知之前已经完成了相同的工作,但代码备份不可用。我仍然在寻找完整的解决方案 –

+0

编辑一个PDF文件是可能的:您可以添加/删除页面,标记内容上/下,签名,裁剪,合并等......但是,没有我知道的工具将启用你可以修改一个PDF文件,使原始内容重新排列并适应新添加的内容。 –

+0

有没有什么办法以字节的形式提取内容?我已经看到在IText Library中有一个名为PDFContentByte的类。如果我们可以使用它来提取字节格式的内容,然后将它附加到添加的PDF内容字节后面,那么这可能会解决问题。不幸的是我目前不知道该怎么做。 –

相关问题