try{using (PdfReader pdfReader = new PdfReader(sourcePdfPath))using (PdfWriter pdfWriter = new PdfWriter(destinationPdfPath))using (PdfDocument pdfDoc = new PdfDocument(pdfReader, pdfWriter)){var page = pdfDoc.GetFirstPage();ImageData imageData = ImageDataFactory.Create(stampImagePath);var imgWidth = imageData.GetWidth();var imgHeight = imageData.GetHeight();// 获取页面高度 var pageHeight = page.GetPageSize().GetHeight();// 获取页面宽度 var pageWidth = page.GetPageSize().GetWidth();// 设置图像的位置 float x = pageWidth - 200; // x 坐标float y = 0; // y 坐标 // 创建 PdfCanvas var canvas = new PdfCanvas(page);canvas.SaveState();if (pageWidth > pageHeight){// 上下翻转图像 canvas.ConcatMatrix(1, 0, 0, -1, x , y + pageHeight); // y轴翻转 }// 创建 Image 对象 var image = new Image(imageData);image.SetFixedPosition(0, 0);image.ScaleToFit(imgWidth * 20 / 100, imgHeight * 20 / 100); // 可选,具体根据需要调整 // 嵌入图像到当前页面 var document = new Document(pdfDoc);document.Add(image);document.Close(); // 保证文档被正确关闭 MessageBox.Show("已签名成功!!");}}catch (iText.Kernel.Exceptions.PdfException ex){Console.WriteLine($"PdfException: {ex.Message}");}catch (Exception ex){Console.WriteLine($"Exception: {ex.Message}");}
stampImagePath为图片的路径,sourcePdfPath为PDF的路径,destinationPdfPath为目标PDF路径。