为什么当我使用iTextSharp将图像添加到文档时没有显示出来?
本文关键字:文档 显示 添加 iTextSharp 图像 为什么 | 更新日期: 2023-09-27 18:15:49
上下文:我正在打开一个包含AcroForm字段的现有交互式PDF表单。我尝试在PDF表单的矩形字段中添加图像,如下所示:
string path = HttpContext.Current.Server.MapPath("includes");
string newFile = HttpContext.Current.Server.MapPath("Tmp") + "/completed_gray" +".pdf";
string imagepath = HttpContext.Current.Server.MapPath("Tmp");
Document doc = new Document();
try {
PdfWriter.GetInstance(doc, new FileStream(newFile, FileMode.Open));
doc.Open();
iTextSharp.text.Image gif = iTextSharp.text.Image.GetInstance(imagepath + "/CUstomRep_Eng_Col_1_V1.png");
iTextSharp.text.Rectangle rect = pdfStamper.AcroFields.GetFieldPositions("img_1_space")[0].position;
gif.ScaleAbsolute(rect.Width, rect.Height);
gif.SetAbsolutePosition(rect.Left, rect.Bottom);
doc.Add(gif);
}
catch (Exception ex) {
//Log error;
}
finally {
doc.Close();
}
图片不显示在生成的PDF中
您正在使用我的书中记录的"创建PDF文档的5个步骤"创建文档。
- 创建一个Document对象。 创建PdfWriter实例
- 打开文件
- 添加内容到文档
- 关闭文件
这与您实际想要做的事情相矛盾:我想在由AcroForm字段定义的占位符中添加图像。
为什么你说你想要一件事,做另一件事?难倒我了。可能是因为你不想看文档。
你需要这样写:
- 创建PdfReader实例
- 创建PdfStamper实例
- 询问盖章人有关字段的信息。
- 使用stamper实例向页面添加内容
- 关闭压模。
在回答你的问题:为什么我的图像不显示在我的文档?
支持现有文档中字段的坐标为左下角x = 600, y = 600和右上角x = 700, y = 700,然后您将图像添加到您正在创建的页面的可见区域之外。当您使用new Document();
时,您创建的文档左下角是x = 0, y = 0,右上角是x = 595, y = 842。
在这种情况下,您正在将图像添加到文档中,但它是不可见的,因为您已将其添加到定义页面的矩形之外。