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

时间:2017-12-14 17:37:32

标签: asp.net itext pdf-generation

我有此代码将图像添加到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的方法,只有水印。如果您知道链接或文章的示例,请告诉我。

1 个答案:

答案 0 :(得分:1)

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

   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方法plesae的问题,请参阅此链接IText7 JumpStart

并准确地找到处理图片的示例请参阅此Chapter7

我还建议您阅读所有章节