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

本文关键字:注释 图像 itextsharp | 更新日期: 2023-09-27 17:49:28

这里我试图添加到图像上的文字覆盖。所以我用了按钮和注解。但我只能写一个图像。不能继续写第二张图片。请帮帮我

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);

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

你的问题的答案1是:确保不同的字段有不同的名称。你根据我的评论修复了这个问题,它起作用了。

你的问题的答案2是:不要使用表单字段添加图像,只是添加图像"正常的方式"。你问我要一个代码示例,我给你我书中的一章:工作与现有的pdf文件。在本章中,您将找到一些涉及PdfStamper类的示例。你可以在这里找到这些例子的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);
    }
}