itextsharp adding image to existing pdf

后端 未结 2 1773
生来不讨喜
生来不讨喜 2020-12-21 11:06

i am trying to add an image using itextsharp but not having any luck there are a ton of tutorials for adding an image to a new pdf doc but not and existing pdf so the .add m

相关标签:
2条回答
  • 2020-12-21 11:32

    using following code you can able to add image to each page in an existing pdf file. ( I use this code for desktop application)

    string FileLocation = @"C:\\test\\pdfFileName.pdf"; // file path of pdf file
    var uri = new Uri(@"pack://application:,,,/projrct_name;component/View/Icons/funnelGreen.png"); // use image from project/application folder (this image will insert to pdf)
    var resourceStream = Application.GetResourceStream(uri).Stream; 
    PdfReader pdfReader = new PdfReader(FileLocation);
    PdfStamper stamp = new PdfStamper(pdfReader, new FileStream(FileLocation.Replace(".pdf", "(tempFile).pdf"), FileMode.Create));iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(resourceStream), System.Drawing.Imaging.ImageFormat.Png);
    img.SetAbsolutePosition(125, 350); // set the position in the document where you want the watermark to appear.
    img.ScalePercent(35f);// not neccessory, use if you want to adjust image
    img.ScaleToFit(140f, 100f); // not neccessory, use if you want to adjust image 
    PdfContentByte waterMark;
    
    for (int page = 1; page <= pdfReader.NumberOfPages; page++) // for loop will add image to each page. Based on the condition you can add image to single page also 
    {
            waterMark = stamp.GetOverContent(page);
        waterMark.AddImage(img);
    }
    
    stamp.FormFlattening = true;
    stamp.Close();// closing the pdfStamper, the order of closing must be important
    pdfReader.Close();
    
    File.Delete(FileLocation);
    File.Move(FileLocation.Replace(".pdf", "(tempFile).pdf"), FileLocation);
    
    0 讨论(0)
  • 2020-12-21 11:36

    I think you try the following adding it to bytes

            PdfReader reader = new PdfReader(pdfIn)
            FileStream fs = new FileStream(pdfOut, FileMode.Create);
            var stamper = new PdfStamper(reader, fs);
            var pdfContentByte = stamper.GetOverContent(1);
            iTextSharp.text.Image sigimage = iTextSharp.text.Image.GetInstance(bytes);
            sigimage.SetAbsolutePosition(100, 100);
            pdfContentByte.AddImage(sigimage);
    
    0 讨论(0)
提交回复
热议问题