天天看点

Spire.pdf Pdf添加图片,无水印

Spire.pdf Pdf添加图片,无水印,10页以上未测试,但是10以内是可以的

浪费了很多时间,终于解决了

引了两个dll

用了这个,只有第一页会出现那个警告框

Spire.pdf Pdf添加图片,无水印

下载dll的链接

https://pan.baidu.com/s/10BQG9tGgjyfjfPB-gCNTUA

提取码

rxy7

这块代码是可以把第一页的警告框去掉的

我是在pdf上最后一页添加图片的,所以我就

doc.Pages.Add();

PdfPageBase lastPage = doc.Pages[doc.Pages.Count-2];

doc.Pages.Remove(doc.Pages[doc.Pages.Count - 1]);

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spire.Pdf;
using Spire.License;
using System.IO;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;
using Spire.Pdf.Annotations.Appearance;

namespace pdfToWord
{
    class Program
    {
        public Stream merge(string pdf, byte[] imgeByte)
        {
            try
            {
                byte[] bt = Convert.FromBase64String(pdf);
                //FileContentResult pdf_tmp = (FileContentResult)pdf;
                byte[] pdfByte = bt;
                //合成
                //首先新建一个PDF文档对象并加载要添加印章的文档。
                PdfDocument doc = new PdfDocument();
                MemoryStream ms1 = new MemoryStream(pdfByte);
                doc.LoadFromStream(ms1);
                //获取文档的最后一页。
                doc.Pages.Add();
                PdfPageBase lastPage = doc.Pages[doc.Pages.Count-2];
                PdfPageBase page = lastPage;
                //新建一个PdfRubberStampAnnotation对象,指定其注释的范围和大小。
                PdfRubberStampAnnotation loStamp = new PdfRubberStampAnnotation(new RectangleF(lastPage.ActualSize.Width - 150, lastPage.ActualSize.Height - 100, 200, 200));
                //实例化一个PdfAppearance对象。  
                PdfAppearance loApprearance = new PdfAppearance(loStamp);

                //MemoryStream ms2 = new MemoryStream(imgeByte);
                //PdfImage image = PdfImage.FromStream(ms2);
                 PdfImage image = PdfImage.FromFile(@"E:\template6\8.jpg");
                //新建一个PDF模板,并在模板里绘制图片。
                PdfTemplate template = new PdfTemplate(2000, 2000);
                template.Graphics.DrawImage(image, 100, 100);
                loApprearance.Normal = template;
                loStamp.Appearance = loApprearance;
                page.AnnotationsWidget.Add(loStamp);
                //保存操作
                doc.Pages.Remove(doc.Pages[doc.Pages.Count - 1]);
                doc.SaveToFile(@"E:\template7\sample.pdf");
                PdfPageBase firstPage = doc.Pages[0];


                return doc.SaveToStream(FileFormat.PDF)[0];
            }
            catch (Exception ex)
            {
                MemoryStream ms2 = new MemoryStream();
                return ms2;
            }
        }
        static void Main(string[] args)
        {
            string pdf = Convert.ToBase64String(File.ReadAllBytes(@"E:\template7\320382104122JC00046.pdf"));
            byte[] imgByte = File.ReadAllBytes(@"E:\template6\test1.jpg");
            Program p = new Program();
            Stream s = p.merge(pdf, imgByte);
            Console.WriteLine("转换成功");
        }
    }
}

           

图片展示

Spire.pdf Pdf添加图片,无水印
Spire.pdf Pdf添加图片,无水印
Spire.pdf Pdf添加图片,无水印

我这块最开始直接下载的最新的Spire.pdf,每一页都有警告框

在CSDN上花了50积分,结果报错,我框架是.netframework 4.6.1,那个好像是4.0的,

dll网上找的,代码也是网上找的,哈哈要是有小伙伴刚好也是pdf加图片啥的,页数少于10页,无水印,可以看看。