iTextSharp - 将文档作为页面附加

时间:2012-11-27 00:10:08

标签: pdf itextsharp

到目前为止,通过iTextSharp,我已经能够使用带有文本字段的Adobe Acrobat Pro创建pdf。我可以使用iTextSharp打开PDF,然后使用关键信息将所需字段填充到关键字段中。

接下来,我能够将所有内容包装起来,并将文件从字节数组中作为文件附件发送出去 - 所以一切都很好。

问题在于 - 我必须在内存流中创建一个PDF文档,并使用必要的文本填充文档。我把它弄得相当不错。

问题在于我对如何将内存流中的文档附加到文件流中作为新页面的现有源.PDF感到困惑。

一个是使用stamper.insert页面,但我不知道我不能在矩形中添加标题,我认为使用Document doc = new Document()是可行的方法。

思想?

1 个答案:

答案 0 :(得分:0)

这是伪代码。这就是它目前所做的。

打开源文件并存储到byte [] 使用Acrofields使用.SetField填充pdf中的文本字段(这很成功) 邮票和关闭 以字节数组形式返回并作为文件附件发送。这一切都很好。

现在 - 我们需要在上面的现有文档中添加一个新页面,其中包含文本 - 几个段落。

创建内存流 创建一个文档 创建一个编写器并将内存流和文档混合在一起。

MemoryStream ms = new MemoryStream();
Document doc = new Document(PageSize.LETTER);
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
doc.NewPage();
Paragraph p = new Paragraph();
p.Add(new Chunk(complaintinfo.COMPLAINT_DESC, new Font(Font.NORMAL, qSize, iTextSharp.text.Font.NORMAL)));
// doc - add header info later..
doc.Add(p);

如何将文档作为新页面添加到文件流中已有的.pdf中?当然,我假设我们要在加盖和关闭与原始PDF链接的阅读器之前添加页面。