我想使用iText7将图像添加到现有PDF文件中的特定位置。
在使用iTextSharp的另一个项目中,代码非常简单:

iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(new Uri(fullPathSignature));
// Set img size and location on page
//-------------------------------------
// item.Width, item.Height
img.ScaleAbsolute(120, 62);

// left: item.X bottom: item.Y
img.SetAbsolutePosition(25, 25);
//-------------------------------------

//Add it to page 1 of the document,
PdfContentByte cb = stamper.GetOverContent(1);
cb.AddImage(img);


但是我找不到使用iText7的正确方法。
我有一个PdfReader和PdfWriter,但是在iText7中哪里可以找到PdfStamper?
也许有另一种方法可以将图像添加到iText7中的现有PDF文件中?
(我不能在当前项目中使用iTextSharp)

最佳答案

在iText7中,不再有PdfStamperPdfDocument负责修改文档的内容。

要将图像添加到页面,最简单的方法是使用Document模块中的layout类。这样,您几乎不必关心任何事情。

要将图像添加到特定位置的特定页面,您需要以下代码:

// Modify PDF located at "source" and save to "target"
PdfDocument pdfDocument = new PdfDocument(new PdfReader(source), new PdfWriter(target));
// Document to add layout elements: paragraphs, images etc
Document document = new Document(pdfDocument);

// Load image from disk
ImageData imageData = ImageDataFactory.Create(imageSource);
// Create layout image object and provide parameters. Page number = 1
Image image = new Image(imageData).ScaleAbsolute(100, 200).SetFixedPosition(1, 25, 25);
// This adds the image to the page
document.Add(image);

// Don't forget to close the document.
// When you use Document, you should close it rather than PdfDocument instance
document.Close();

10-08 20:00