C#基于 iTextSharp.text.pdf 实现PDF水印添加功能
在文档电子化管理中会遇到 对PDF进行水印化的需求,如图
private string AddWaterMark(Stream stream,string waterName) {
PdfReader pdfReader = null;
PdfStamper pdfStamper = null;
var tempPath = $"wwwroot/tempFile_{Guid.NewGuid()}.pdf";
try
{
pdfReader = new PdfReader(stream);
pdfStamper = new PdfStamper(pdfReader, new FileStream(tempPath, FileMode.Create));
int total = pdfReader.NumberOfPages + 1;
iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);
float width = psize.Width;
float height = psize.Height;
PdfContentByte content;
// 中文适配
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
BaseFont font = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
PdfGState gs = new PdfGState();
for (int i = 1; i < total; i++)
{
content = pdfStamper.GetOverContent(i);//在内容上方加水印
//content = pdfStamper.GetUnderContent(i);//在内容下方加水印
//透明度
gs.FillOpacity = 0.4f;
content.SetGState(gs);
//content.SetGrayFill(0.3f);
//开始写入文本
content.BeginText();
content.SetColorFill(BaseColor.GRAY);
content.SetFontAndSize(font, 20);
content.SetTextMatrix(0, 0);
content.ShowTextAligned(Element.ALIGN_CENTER, waterName, width - 120, height - 120, -45);
if (width > 240 && height > 240)
{
content.ShowTextAligned(Element.ALIGN_CENTER, waterName, width - 240, height - 240, -45);
}
if (width > 360 && height > 360)
{
content.ShowTextAligned(Element.ALIGN_CENTER, waterName, width - 360, height - 360, -45);
}
if (width > 480 && height > 480)
{
content.ShowTextAligned(Element.ALIGN_CENTER, waterName, width - 480, height - 480, -45);
}
//content.SetColorFill(BaseColor.BLACK);
//content.SetFontAndSize(font, 8);
//content.ShowTextAligned(Element.ALIGN_CENTER, waterMarkName, 0, 0, 0);
content.EndText();
}
if (pdfStamper != null)
pdfStamper.Close();
if (pdfReader != null)
pdfReader.Close();
}
catch (Exception ex)
{
return "";
}
return tempPath;
}
C#基于 iTextSharp.text.pdf 实现PDF水印添加功能相关推荐
- pdf怎么加水印,pdf加水印简单方法
pdf怎么加水印?pdf的使用往往伴随着重要的文件,相信大家都应该比较同意这种观点吧,我们平时在工作中接触到的那些pdf文件往往都是比较重要的,因此小编认为pdf文件的安全级别相对较高.同样,细心的小 ...
- C#合并多个pdf到一个pdf文件;不使用Aspose.pdf.dll,避免水印
一首先引用:itextsharp.dll(不使用Aspose.pdf.dll,避免水印) 二编写合并方法 多个pdf合并成一个pdf /// </summary> ...
- .NetCore实现word转PDF无第三方水印+批量生成自定义水印(不用安装Microsoft和WPS插件)
技术实现: Aspose18.7破解版Word转PDF无官方水印,使用Aspose破解版需要在Nuget中下载安装 SkiaSharp1.60.0 iTextSharp添加自定义水印,平铺展示 Dem ...
- 【itext学习之路】--4.给pdf增加文本水印和图片水印
来源:[itext学习之路]-------(第四篇)给pdf增加文本水印和图片水印_tomatocc的博客-CSDN博客_itext添加水印 一般而言,许多公司在做pdf之后,都会将公司的logo或者 ...
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
前段时间,为了解析PDF,花了不少时间去学习PDFbox和itext,这两个都是处理PDF的开源库,有java和C#的.作为一个刚开始学习这两个开源库的,感觉百度上的资源还是太少了.我做的是一个关于P ...
- Android pdf填充表单,预览,图片填充,水印添加
前言 需求是这样的,客户需要用户登录app后录入个人信息,然后由手机端帮助将录入的信息填充到pdf, 用户录入的部分图片需要填充到pdf模板的最后面,还需要给每一页pdf都加上水印,生成后给用户预览 ...
- JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...
- Java使用Spire.Pdf实现PDF添加图片水印
通过本文你将学到: Spire.Pdf是什么? 如何在项目中引入Spire.Pdf依赖? 项目中基于Spire.Pdf实现PDF添加图片水印? 一.Spire.Pdf是什么? 1.Spire.Pdf是 ...
- java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令
文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...
最新文章
- Linux的档案权限及目录配置(3)
- Python 之父谈 Python
- python知乎-知乎大佬李启方道出肺腑之言:为什么我不建议你学Python?
- Java布尔类的compareTo()
- 用C#创建COM组件全过程
- UDP接收端和发送端_Socket编程
- vc c语言坐标图,VC++6.0下C语言画图编程问题
- 分布式锁和mysql事物扣库存_浅谈库存扣减和锁
- 【Java】第6章 访问权限控制
- 编程基本功:BUG描述不要偷懒,不要误导
- lightning接口_苹果、安卓充电接口有望统一,欧盟重压下,苹果将不得不妥协
- Navicat15 安装激活
- java 判断正态分布_如何检验数据是否服从正态分布
- 人脸识别中的活体检测
- bootstrap-tagsinput 使用方法
- python生成带照片的二维码图片_Python生成带文字的二维码
- bootstrapTable 数据格式
- cocos creator中FBX文件不可用显示asset invalid
- R语言 RevoScaleR的大规模数据集决策树模型应用案例
- 开源项目推荐:运动控制速度前瞻算法(Look-Ahead),连续小线段高速插补算法
热门文章
- PHP 函数、类声明和调用
- centos8 手动修改网络配置以及怎么重启网络,添加开机自启动
- 视频和图片合成软件,简单快速合成视频和图片
- 在VC中编程实现按钮的启用(enable)和禁用(disable)
- .pdm文件怎么打开
- Java在编译到执行过程的编码问题
- oracle and not 的用法,[ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)...
- 学生成绩管理系统总体设计
- 数据结构(C语言)-广义表
- 解决“事件ID(487)的描述(在资源(Zend Optimizer)中)无法找到”问题