将图像添加到现有 PDF 不要替换整个 PDF

Adding Image to existing PDF DO NOT replace the whole PDF

我有将图像添加到 PDF 的代码:

     string SRC = 
            @"C:/Saved/Test.pdf";
        string DEST = @"C:/Saved/TestComplete.pdf";
        string IMG = @"C:Saved//TestImage.JPG";


    Document doc = new Document();

try
{
            iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(SRC, FileMode.Create));
doc.Open();

//doc.Add(new Paragraph("GIF"));
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(IMG);
    image.ScalePercent(200f);
doc.Add(image);
}
catch (Exception ex)
{
            //Log error; 
            string error = ex.Message;
}
finally
{
doc.Close();
}
}

问题在于它不只是添加图像,而是用该图像替换整个 PDF 有没有办法在 PDF 中添加图像,只是签名图像,只需将其添加到页面 任何想法 ? 此外,我已将 Itextsharp 升级到 IText7,但我找不到将图像添加到现有 PDF 的方法,只有水印。如果您知道示例 Link 或关于它的文章,请告诉我。

如果您想使用旧方法,请使用此方法:

   string SRC = 
            @"C:/Saved/Test.pdf";
        string DEST = @"C:/Saved/TestComplete.pdf";
        string IMG = @"C:Saved//TestImage.JPG";
 iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(SRC);
        iTextSharp.text.Rectangle Size = reader.GetPageSizeWithRotation(1);
        Document document = new Document(Size);
        FileStream fs = new FileStream(DEST, FileMode.Create, FileAccess.Write);
        iTextSharp.text.pdf.PdfWriter weiter = iTextSharp.text.pdf.PdfWriter.GetInstance(document, fs);
        document.Open();
        PdfContentByte cb = weiter.DirectContent;
        PdfImportedPage page = weiter.GetImportedPage(reader, 1);
        cb.AddTemplate(page, 0, 0);
        iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(IMG);
        document.Add(jpg);
        document.Close();
        fs.Close();
        weiter.Close();
        reader.Close();

关于使用 iText7 方法的问题,请参阅此 link IText7 JumpStart

并且要确切地在哪里可以找到处理图像的示例请参考此Chapter7

我还建议您阅读所有章节