| C#给PDF每一页都加上自己的图片logo标识
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 自己做了一个PDF说明文件给客户,现在需要在每一页上都加上自己的logo图片,具体操作过程如下: 建项目这些就省略了,直接上代码:using iTextSharp.text.pdf;
using System;
using System.IO;
using System.Windows.Forms;
namespace Pic2PDF
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        
        private void button1_Click(object sender, EventArgs e)
        {
            string path = Application.StartupPath;            //源PDF地址
            string pdffilename = path + "\\test.pdf";            //加完图片的PDF地址
            string pdffilename1 = path + "\\test1.pdf";            //图片文件地址
            string picfilename = path + "\\sign.jpg";            //执行操作,加上图片
            string r = AddPics(pdffilename, pdffilename1, picfilename);
            MessageBox.Show(r);
        }        
        public static string AddPics(string PdfPath, string OutPdfPath, string picpath)
        {            
            try
            {                
                if (File.Exists(OutPdfPath))
                {
                    File.delete(OutPdfPath);
                }
                PdfReader reader = new PdfReader(PdfPath);
                PdfStamper stamp = new PdfStamper(reader, new FileStream(OutPdfPath, FileMode.create));                
                int n = reader.NumberOfPages;                
                int i = 0;
                PdfContentByte under;
                iTextSharp.text.Image im = iTextSharp.text.Image.GetInstance(picpath);
                PDFATT att = new PDFATT(PdfPath);                
                float ww = att.Width();                
                float hh = att.Height();                
                float w = im.Width;                
                float h = im.Height; 
                float locationx;                
                float locationy;
                locationx = ww - w - 20;
                locationy = 50;
                im.SetAbsolutePosition(locationx, locationy);
                im.ScaleAbsolute(w, h);                
                while (i < n)
                {
                    i++;
                    under = stamp.GetOverContent(i);
                    under.AddImage(im, false);
                }
                stamp.Close();
                reader.Close();
            }            
            catch (Exception ex)
            {                
                return ex.Message;
            }
            return "ok";
        }        
        class PDFATT
        {
            PdfReader reader;            
            public PDFATT(string iPdfFilePath)
            {
                reader = new PdfReader(iPdfFilePath);
            }
            public int PageCount()
            {
                return reader.NumberOfPages;
            }
            public float Width()
            {
                return reader.GetPageSize(1).Width;
            }
            public float Height()
            {
                return reader.GetPageSize(1).Height;
            }
        }
    }
}我这里设置的是添加到右下角了,位置的代码主要在这个地方PDFATT att = new PDFATT(PdfPath); float ww = att.Width(); //PDF的宽度 float hh = att.Height(); //PDF的高度 float w = im.Width; //图片宽 float h = im.Height; //图片高 float locationx; float locationy; locationx = ww - w - 20; //横向位置自己计算 locationy = 50; //纵向位置自己试下就行 其它的都很简单了。 运行效果如下:该文章在 2023/5/22 9:37:43 编辑过 | 关键字查询 相关文章 正在查询... |