0

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

接下来,我可以打包所有内容并将文件从字节数组中作为文件附件发送出去——所以一切正常。

问题在于——我必须在内存流中创建一个 PDF 文档,并用必要的文本填充文档。我已经很好地解决了这个问题。

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

一种是使用 stamper.insert 页面,但我对无法向矩形添加标题的想法感到困惑,我认为使用 Document doc = new Document() 是可行的方法。

想法?

4

1 回答 1

0

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

打开源文件并存储到 byte[] 使用 .SetField 使用 Acrofields 填充 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 的阅读器之前添加页面。

于 2012-11-27T16:40:21.253 回答