使用itextsharp在现有PDF中添加图像

时间:2015-04-16 18:57:32

标签: c# asp.net-mvc-4 pdf pdf-generation itextsharp

所以我创建了一个带有文本框的PDF模板表单,它是可编辑的字段。我能够通过MVC 4.0应用程序生成预填充的PDF,其中包含从我的数据库到模板的值。哪个工作正常。现在我想将文件夹中的图像添加到PDF中,将一个表单与另一个表单区分开来。图像取决于用户输入。图像将位于PDF的底部。我没有看到任何图像框或图像容器作为提交选项。我只能看到一个是文本框,复选框,收音机,列表框等,但没有像iimage持有者那样。

任何人都知道如何动态地将图像添加到PDF中吗?

1 个答案:

答案 0 :(得分:0)

您可以在official documentation中找到问题的答案,更具体地说,可以在chapter 8中找到问题的答案。在第8.2.3节,标题为"按钮",我解释说我们通常使用按钮作为图像的占位符,因为按钮可以有图标

ReplaceIcon示例显示了如何替换现有按钮的图标。在使用C#时,您可能需要查看ReplaceIcon.cs

PdfReader reader = new PdfReader(aPdf);
using (MemoryStream ms = new MemoryStream()) {
    using (PdfStamper stamper = new PdfStamper(reader, ms)) {
        AcroFields form = stamper.AcroFields;
        PushbuttonField ad = form.GetNewPushbuttonFromField("button_name");
        ad.Layout = PushbuttonField.LAYOUT_ICON_ONLY;
        ad.ProportionalIcon = true;
        ad.Image = Image.GetInstance(yourImage);
        form.ReplacePushbuttonField("button_name", ad.Field);
      }
    }
    // ms will contain your PDF in memory
}
reader.Close();

请注意,行ad.ProportionalIcon = true;会缩放图片,使其适合按钮。