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

Spire.pdf Pdf添加图片,无水印,10页以上未测试,但是10以内是可以的
浪费了很多时间,终于解决了
引了两个dll
用了这个,只有第一页会出现那个警告框

Spire.pdf Pdf添加图片,无水印_第1张图片
下载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添加图片,无水印_第2张图片
Spire.pdf Pdf添加图片,无水印_第3张图片
Spire.pdf Pdf添加图片,无水印_第4张图片
我这块最开始直接下载的最新的Spire.pdf,每一页都有警告框
在CSDN上花了50积分,结果报错,我框架是.netframework 4.6.1,那个好像是4.0的,

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

你可能感兴趣的:(Spire.pdf,pdf加图片,10页内无水印)