1

上下文:我正在打开一个包含 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 中。

4

1 回答 1

2

您正在使用我的书中记录的“创建 PDF 文档的 5 个步骤”创建文档。

  1. 创建一个文档对象。
  2. 创建一个 PdfWriter 实例。
  3. 打开文档。
  4. 向文档中添加内容。
  5. 关闭文档。

这与您实际想要做的相矛盾:我想在 AcroForm 字段定义的占位符中添加一个图像。

为什么你说你想要一件事,而做另一件事?打败我。可能是因为您不想阅读文档。

你需要这样的东西:

  1. 创建一个 PdfReader 实例。
  2. 创建一个 PdfStamper 实例。
  3. 向压模询问有关字段的信息。
  4. 使用压模实例将内容添加到页面。
  5. 关闭压模。

回答您的问题:为什么我的图片没有出现在我的文档中?

支持现有文档中字段的坐标是左下角x = 600, y = 600 和右上角x = 700, y = 700,那么你是在页面可见区域之外添加图像'重新创造。使用 时new Document();,您正在创建一个文档,其中左下角为 x = 0,y = 0,右上角为 x = 595,y = 842。

在这种情况下,您将图像添加到文档中,但它不可见,因为您已将其添加到定义页面的矩形之外。

于 2013-05-30T07:10:53.130 回答