itextsharp将图像添加到现有的pdf [英] itextsharp adding image to existing pdf

查看:73
本文介绍了itextsharp将图像添加到现有的pdf的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用itextsharp添加图像,但没有任何运气有大量的教程将图像添加到新的pdf文档中,而没有将图像添加到现有的pdf中,因此.add方法无法使用

我正在尝试使用压模写入方法添加图像而且我没有任何错误,但是没有图像显示

  PdfReader reader = new PdfReader(pdfIn);//获取pdf如果(File.Exists(pdfOut))File.Delete(pdfOut);//重启FileStream fs =新的FileStream(pdfOut,FileMode.Create);PdfStamper压模=新的PdfStamper(阅读器,fs);尝试{//将base64string转换为bytes数组Byte []个字节= Convert.FromBase64String(base64decode);iTextSharp.text.Image sigimage = iTextSharp.text.Image.GetInstance(bytes);//sigimage.SetAbsolutePosition(10,10);sigimage.ScaleToFit(140f,120f);stamper.Writer.Add(sigimage);}捕获(DocumentException dex){//在此处记录异常}捕获(IOException ioex){//在此处记录异常}AcroFields字段= stamper.AcroFields;//为每个pdf表单填充字段重复fields.SetField("agencyName",name.Value);stamper.FormFlattening = true;//设置为true以锁定pdf不可编辑stamper.Writer.CloseStream = true;stamper.Close();reader.Close();fs.Close(); 

解决方案

我认为您可以尝试以下将其添加到字节中

  PdfReader reader =新的PdfReader(pdfIn)FileStream fs =新的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); 

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 menthod is not avaivlable

i am tring to do use the stamper write method to add image and i dont get any errors but no image shows up

PdfReader reader = new PdfReader(pdfIn); //get pdf

        if (File.Exists(pdfOut)) File.Delete(pdfOut); //reset 
        FileStream fs = new FileStream(pdfOut, FileMode.Create);

        PdfStamper stamper = new PdfStamper(reader, fs);
        try
        {
            //  Convert base64string to bytes array
            Byte[] bytes = Convert.FromBase64String(base64decode);
            iTextSharp.text.Image sigimage = iTextSharp.text.Image.GetInstance(bytes);//
            sigimage.SetAbsolutePosition(10, 10);
            sigimage.ScaleToFit(140f, 120f);
            stamper.Writer.Add(sigimage);
        }catch (DocumentException dex){//log exception here
        }catch (IOException ioex){//log exception here
        }



        AcroFields fields = stamper.AcroFields;
        //repeat for each pdf form fill field       
        fields.SetField("agencyName", name.Value);


        stamper.FormFlattening = true; // set to true to lock pdf from being editable
        stamper.Writer.CloseStream = true;
        stamper.Close();
        reader.Close();
        fs.Close();

解决方案

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);

这篇关于itextsharp将图像添加到现有的pdf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆