这里我试图将图像添加为文本上的叠加。所以我使用了按钮和注释。但我只能写一张图片。不能写第二张图片。请帮帮我
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);
答案 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);
}
}