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 = ;
int intCount = (int)Math.Ceiling(intPageNums / (decimal.Parse(intNumber.ToString())));
for (int j = ; j < intCount; j++)
{
fileStamp = new PdfFileStamp(strSourceFilePath, strTargetFilePath);
for (int i = ; 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页,保存关闭当前文件,再拿加过水印的文件进行再追加水印,这样这就不会了错了。
pdf增加水印的更多相关文章
- PDF的水印怎么去掉
很多朋友私下都有问过PDF去除水印的方法,现在在网上下载一些PDF电子书,几乎页面内都会有水印的,而且有的水印还带有超链接,稍微不注意就会点开进入别的页面内,不仅影响了阅读效果还带给读者负面影响,那如 ...
- 怎么编辑PDF,如何给PDF加水印
在使用PDF文件的时候,往往会用到PDF编辑器来修改,那么,在使用PDF编辑器修改文件的时候,想要在文件中添加水印,这该怎么操作呢,不会的小伙伴可以看看下面的文章了哦,说不定就会了. 1.打开运行PD ...
- java 实现 PDF 加水印功能
使用java代码实现给PDF加水印的功能 首先导入所需要的依赖 <dependency> <groupId>com.itextpdf</groupId> <a ...
- C#图片增加水印
给图片增加水印 1.引用 using System.Drawing; 2.代码实现 string ImagePath = @"C:\Users\RAPOO\Pictures\Camera R ...
- 【Python】批量给图片增加水印工具
背景 最近有一些图片需要增加水印,找了一圈也没看见比较好的工具,又不想用破解的PS,干脆自己做了一个GUI工具,有需要的同学自取 功能 支持水印预览 自定义水印文字内容 支持行楷和微软雅黑两种字体 支 ...
- PDF打水印加密
using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using S ...
- 给现有的word和pdf加水印
iTextSharp简单生成pdf和操作pdf添加水印 给word加水印,利用的是aspose.words
- pdf文件下载水印添加的中文与空格问题解决
public static boolean waterMark(String inputFile, String outputFile, String waterMarkName)throws IOE ...
- 阿里云ali-oss图片增加水印
先附上文档连接 : https://helpcdn.aliyun.com/document_detail/44957.html 水印文字或图片必须经过一下转化 URL安全的Base64位编码 在图片处 ...
随机推荐
- CSS: Float a div on another div, Ex: Text caption on picture
<style type="text/css"> .figure { width: 316px; height: 205px; display: block; borde ...
- MPMoviePlayerController过期导致视频播放时间条颠倒及AVPlayerViewController的用法
MPMoviePlayerController虽然好用 但是过期了 所以可能会导致一些莫名的问题 ,比如说下面时间条的问题 但我们可以使用AVPlayerViewController来实现相应的想过 ...
- 进程间通信之管道(pipe、fifo)
我们先来说说进程间通信(IPC)的一般目的,大概有数据传输.共享数据.通知事件.资源共享和进程控制等.但是我们知道,对于每一个进程来说这个进程看到属于它的一块内存资源,这块资源是它所独占的,所以进程之 ...
- [转]每次打开IE9就会跳出管理加载项的窗口
当您打开IE9就跳出管理加载项的窗口,这一般是由于使用优化软件对系统进行优化清理后导致了注册表的错误.上次我们就为大家介绍了关于IE9启动后自动弹出管理加载项窗口的问题,这两个问题非常类似,引发问题的 ...
- CF Fox And Names (拓扑排序)
Fox And Names time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Leetcode 338. Counting Bits
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...
- JAVA网络编程常见问题
一. 网络程序运行过程中的常见异常及处理 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发生在服务器端进行new ...
- inline-block总结
inline-block的内部表现类似block,可以设置宽高,外部表现类似inline,具有不还行的特性. 与float排版有些类似,当内部块级(可设置宽高),水平排列的时候都两者都可以实现. 两者 ...
- MyBatis(3.2.3) - Handling the CLOB/BLOB types
MyBatis provides built-in support for mapping CLOB/BLOB type columns. Assume we have the following t ...
- cocos2dx-lua class语法糖要注意了
cocos2dx-lua function.lua 定义了class方法,让lua实现继承像传统语言一样漂亮和方便 看定义 function class(classname, super) local ...