如何使用itextsharp c#Assembely替换Exisitng PDF中的图像

时间:2016-07-25 16:03:04

标签: c# pdf

我有以下代码在PDF上使用替换图像,代码运行没有错误,但PDF文件不会更改图像。怎么解决它。所以我需要你的帮助在pdf文件中添加图像。

 PdfReader pdf = new PdfReader("PDF\\111x117.pdf");
        PdfStamper stp = new PdfStamper(pdf, new FileStream("PDF\\output.pdf", FileMode.Create));


        PdfWriter writer = stp.Writer;
        for (int pageNumber = 1; pageNumber <= pdf.NumberOfPages; pageNumber++)
        {

            iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance("images\\image1.jpg");
            PdfDictionary pg = pdf.GetPageN(pageNumber);
            PdfDictionary res =
              (PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
            PdfDictionary xobj =
              (PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
            if (xobj != null)
            {
                foreach (PdfName name in xobj.Keys)
                {
                    PdfObject obj = xobj.Get(name);
                    if (obj.IsIndirect())
                    {
                        PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
                        PdfName type =
                          (PdfName)PdfReader.GetPdfObject(tg.Get(PdfName.SUBTYPE));
                        if (PdfName.IMAGE.Equals(type))
                        {
                            PdfReader.KillIndirect(obj);
                            iTextSharp.text.Image maskImage = img.ImageMask;
                            if (maskImage != null)
                                writer.AddDirectImageSimple(maskImage);
                            writer.AddDirectImageSimple(img, (PRIndirectReference)obj);
                            break;
                        }
                    }
                }
            }
        }
        stp.Close();

0 个答案:

没有答案
相关问题