itextsharp操作pdf——插入图片二维码等

Posted chenyanbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itextsharp操作pdf——插入图片二维码等相关的知识,希望对你有一定的参考价值。

简单介绍

  业务需求,需要往pdf图纸上添加二维码功能,将实现过程记录下来

下载类库

直接下载

添加引用

技术图片

 

 

添加命名空间

using System.IO;
using iTextSharp.text.pdf;

插入图片处理函数

        /// <summary>
        /// 向pdf中添加图片
        /// </summary>
        /// <param name="oldP">源pdf地址</param>
        /// <param name="imP">图片地址</param>
        /// <param name="x">x轴坐标</param>
        /// <param name="y">y轴坐标</param>
        protected void AddImg(string oldP, string imP, int x, int y)
        {
            string newP = Path.GetDirectoryName(oldP) + Path.GetFileNameWithoutExtension(oldP) + "_temp.pdf"; ;
            try
            {                
                using (Stream inputPdfStream = new FileStream(oldP, FileMode.Open, FileAccess.Read, FileShare.Read))
                using (Stream inputImageStream = new FileStream(imP, FileMode.Open, FileAccess.Read, FileShare.Read))
                using (Stream outputPdfStream = new FileStream(newP, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    var reader = new PdfReader(inputPdfStream);//读取原有pdf
                    var stamper = new PdfStamper(reader, outputPdfStream);
                    var pdfContentByte = stamper.GetOverContent(1);//获取第一页pdf内容
                    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream);//获取图片
                    image.ScalePercent(40);//设置图片比例
                    image.SetAbsolutePosition(x, y);//设置图片的绝对位置
                    pdfContentByte.AddImage(image);
                    stamper.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                File.Copy(newP, oldP, true);
                File.Delete(newP);
            }
        }

实现

        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string destPhysicalFile = @"C:UsersAdministratorDesktopK0000113_舱容图.pdf";
                string Img = @"C:UsersAdministratorDesktop1572568425.png";//图片文件路径
                AddImg(destPhysicalFile, Img, 129, 574);
                MessageBox.Show("ok");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

效果

技术图片

 

以上是关于itextsharp操作pdf——插入图片二维码等的主要内容,如果未能解决你的问题,请参考以下文章

C#工具类:使用iTextSharp操作PDF文档

应用Itextsharp 添加图片到pdf

ITextSharp导出PDF表格和图片(C#)

ASP.NET 转自定内容到 PDF - 使用 iTextSharp

iTextSharp 在 pdf 文件中的单词中插入空格

使用 itextsharp 在现有 pdf 中插入文本