pdf增加水印

/// <summary>
        /// 为PDF添加水印或背景图片
        /// </summary>
        /// <param name="strSourceFilePath">源文件路径</param>
        /// <param name="strTargetFilePath">目标文件路径</param>
        /// <param name="strWaterMarkPicPath">水印图片路径</param>
        /// <param name="strTargetFileTmpPath">目标临时文件</param>
        /// <returns>添加结果</returns>
        public static bool AddWaterMarkForPdf(string strSourceFilePath, string strTargetFilePath, string strWaterMarkPicPath, FileInfo TargetFileTmp)
        {
            bool blnRt = false;
            PdfFileInfo pdf = new PdfFileInfo(strSourceFilePath);
            if (! pdf.BePdfFile)
            {
                throw  new ApplicationException("源文件不是有效的PDF文件");
            }
            //开始处理
            int intPageNums = pdf.NumberofPages;

            PdfFileStamp fileStamp = null;
            try
            {
                int intNumber = 650;
                int intCount = (int)Math.Ceiling(intPageNums / (decimal.Parse(intNumber.ToString())));
                for (int j = 0; j < intCount; j++)
                {
                    fileStamp = new PdfFileStamp(strSourceFilePath, strTargetFilePath);
                    for (int i = 1; i <= intNumber; i++)
                    {
                        if (j * intNumber + i > intPageNums)
                        {
                            break;
                        }
                        Stamp stamp = new Stamp();
                        if (!String.IsNullOrEmpty(strWaterMarkPicPath))
                        {
                            stamp.BindImage(strWaterMarkPicPath);
                        }
                        stamp.IsBackground = true;
                        stamp.PageNumber = j * intNumber + i;
                        stamp.SetImageSize(PageSize.A4.Height, PageSize.A4.Width);
                        fileStamp.AddStamp(stamp);
                    }
                    fileStamp.Close();
                    TargetFileTmp.Delete();
                    File.Copy(strTargetFilePath, TargetFileTmp.FullName);
                    strSourceFilePath = TargetFileTmp.FullName;
                }
                blnRt = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return blnRt;
        }

具体代码

注意,给PDF增加水晶报表,当页码过多时会报错,或卡死。为了防止这种情况,我们要分多次对PDF进行增加水印。

如第一次加600页,保存关闭当前文件,再拿加过水印的文件进行再追加水印,这样这就不会了错了。

时间: 2024-12-27 15:57:55

pdf增加水印的相关文章

Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)

Android中图片的处理(放大缩小,去色,转换格式,增加水印等) 原文地址:http://menxu.lofter.com/post/164b9d_3ebf79 package com.teamkn.base.utils; import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.

PDF编辑器轻松四步去除PDF文中水印

在网上下载的任何PDF格式的文件都有可能已经添加上了该网站的一些水印,有了这些水印的文件我们在使用的时候就相当于是盗用他人资源,很有可能会承担法律风险.那么有什么方法能够去除这些文件中的文字水印吗?相信有很多朋友是不知道如何做的,那么接下来小编就为大家详细的介绍一下PDF文字水印的去除方法!不过在此之前我们需要接触到一款软件--PDF编辑器! 小编向你们推荐一款好用的PDF编辑器--捷速PDF编辑器.它可以对PDF文件进行图片替换.文字修改.绘画标注.页面旋转.输出与打印等,是PDF编辑器中速度

《OpenCV3编程入门》毛星云高清PDF无水印+源代码学习

资源链接:https://pan.baidu.com/s/159TPjEDXOil32WMkL6QLoQ高清完整带书签PDF无水印版和源代码.如下: 原文地址:http://blog.51cto.com/13371447/2322861

迅捷PDF在线转换器将PDF增加密码的简单方法

当PDF文件中有重要的内容时,我们就需要给PDF文件增加密码,文件加密了可以保证文件的安全性,下面就让小编给大家简单介绍一下.步骤一:我们可以直接进入到迅捷PDF在线转换器的网站中,找到导航栏中的文档处理,点击PDF增加密码: 步骤二:然后进行文件的密码输入,将密码输入到条形框中: 步骤三:密码输入完成之后就可以进行文件的选择,直接将文件拖拽到界面或是点击选择文件进行打开: 步骤四:等文件上传完成之后就可以进行文件的处理,点击开始处理: 步骤五:文件的处理是需要一定的时间的,我们需要耐心的等待一

如何给PDF文件增加密码?PDF增加密码的简单方法

pdf文件中可以放很多在工作上需要用到的一些重要文件,那么我们是怎么进行在线将pdf文件添加密码的呢?下面就让小编给大家简单介绍一下. 步骤一:首先我们可以直接在浏览器上进行搜索迅捷PDF在线转换器,然后进入到在线网站中去:步骤二:在文档处理中找到PDF增加密码这个功能,然后我们就可以进行点击进入:步骤三:然后进行密码的输入,在输入栏中进行密码的输入,然后进行PDF文件的选择,点击选择文件进行文件的选择:步骤四:文件的选择可以是直接将PDF文件选择到界面中去,或是直接点击进行选择文件:步骤五:P

PDF的水印怎么去掉

很多朋友私下都有问过PDF去除水印的方法,现在在网上下载一些PDF电子书,几乎页面内都会有水印的,而且有的水印还带有超链接,稍微不注意就会点开进入别的页面内,不仅影响了阅读效果还带给读者负面影响,那如何将PDF水印去除呢. 操作工具:[迅捷PDF转换器] 步骤一:打开电脑进入浏览器内搜索“迅捷pdf在线转换器”(需提前准备好PDF文件) 步骤二:进入在线转换的页面后,可以看到很多关于PDF文件的转换,这个时候不要看花了眼,找到文档处理,在下拉框里下回弹出“PDF去除水印”. 步骤三:进入去除水印

PDF打水印加密

1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Diagnostics; 5 using System.IO; 6 using System.Linq; 7 using System.Web; 8 using iTextSharp.text; 9 using iTextSharp.text.pdf; 10 using iTextSharp.text.html; 11 u

阿里云ali-oss图片增加水印

先附上文档连接 : https://helpcdn.aliyun.com/document_detail/44957.html 水印文字或图片必须经过一下转化 URL安全的Base64位编码 在图片处理服务里会有很多参数需要变成Base64位编码,参考RFC4648.注意这里的URL 安全Base64位编码只是用在水印操作某些特定参数(文字水印的文字内容,文字颜色,文字字体及图片水印的水印object)里,不要将其用来签名字符串(Signature)的内容.编码的格式是: 先将内容编码成Base

pdf文件下载水印添加的中文与空格问题解决

public static boolean waterMark(String inputFile, String outputFile, String waterMarkName)throws IOException { try { //inputFile = new String(inputFile.getBytes("UTF-8"),"UTF-8"); BaseFont base = BaseFont.createFont("STSong-Light&