无法在itextsharp中编写多个注释图像

时间:2014-03-10 10:37:01

标签: c# .net itextsharp

这里我试图将图像添加为文本上的叠加。所以我使用了按钮和注释。但我只能写一张图片。不能写第二张图片。请帮帮我

PdfReader reader1 = new PdfReader(Path);
FileStream fs = new FileStream(OutLocation, FileMode.Create,    FileAccess.Write,FileShare.None);
PdfStamper stamper = new PdfStamper(reader1, fs);
PushbuttonField fld = new PushbuttonField(stamper.Writer,
    new iTextSharp.text.Rectangle(315, 400, 210, 250), "Test ");
fld.Layout = PushbuttonField.LAYOUT_ICON_ONLY;
string Img = path + "RedSlash.png";
iTextSharp.text.Image jpeg = iTextSharp.text.Image.GetInstance(Img);
jpeg.ScaleToFit(100, 200);
fld.Image = jpeg;
stamper.AddAnnotation(fld.Field, 1);
fld1 = new PushbuttonField(stamper.Writer,
    new  iTextSharp.text.Rectangle(500, 500, 210, 250), "Test ");
fld1.Layout = PushbuttonField.LAYOUT_ICON_ONLY;        
iTextSharp.text.Image jpeg1 = iTextSharp.text.Image.GetInstance(Img);
jpeg1.ScaleToFit(100, 200);
fld1.Image = jpeg1;
stamper.AddAnnotation(fld1.Field, 1);

1 个答案:

答案 0 :(得分:0)

答案1的问题是:确保不同的字段有不同的名称。你根据我的评论解决了这个问题并且有效。

回答2你的问题是:不要使用表单字段添加图像,只需添加图像“正常方式”。你问了我一个代码示例,我给你一章我的书:Working with existing PDFs。在本章中,您将找到涉及PdfStamper类的some examples。你可以在这里找到这些例子的C#版本。

一些代码:

using (PdfStamper stamper = new PdfStamper(reader, ms)) {
    Image img = Image.GetInstance(imagePath);
    img.SetAbsolutePosition(0, 0);
    int n = reader.NumberOfPages;
    PdfContentByte foreground;
    for (int i = 1; i <= n; i++) {
        foreground = stamper.GetOverContent(i);
        foreground.AddImage(img);
    }
}