c#添加图片、文本水印到PDF文件
作者:EiceblueSpire 时间:2021-08-30 13:36:57
概述
一般我们在向文档添加水印时,会分为直接添加文字水印和加载图片添加图片水印两种情况。常见的,在添加文字水印时会多以声明文档版权、权威性的文字、标语或者名称等;同样的,图片水印也通常可以是某组织的LOGO、印章、或者其他能够指示性的图片等。在下面的文档中,将介绍通过C#编程来添加PDF水印的方法,包括:
1 添加文本水印
2 添加图片水印
使用工具
Spire.PDF for .NET
C#代码示例(供参考)
【示例1】添加PDF文本水印
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Annotations.Appearance;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;
namespace TextWatermark
{
class Program
{
static void Main(string[] args)
{
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载现有PDF文档
pdf.LoadFromFile("sample.pdf");
//创建True Type字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", 20f), true);
//水印文字
string text = "版权所有\n侵权必究";
//测量文字所占的位置大小,即高宽
SizeF fontSize = font.MeasureString(text);
//计算两个偏移量
float offset1 = (float)(fontSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(fontSize.Height * System.Math.Sqrt(2) / 4);
//遍历文档每一页
foreach (PdfPageBase page in pdf.Pages)
{
//创建PdfTilingBrush对象
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.Size.Width / 2, page.Canvas.Size.Height / 2));
//设置画刷透明度
brush.Graphics.SetTransparency(0.8f);
//将画刷中坐标系向右下平移
brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2);
//将坐标系逆时针旋转45度
brush.Graphics.RotateTransform(-45);
//在画刷上绘制文本
brush.Graphics.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
//在PDF页面绘制跟页面一样大小的矩形,并使用定义的画刷填充
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.Size));
}
//保存文档
pdf.SaveToFile("output.pdf");
System.Diagnostics.Process.Start("output.pdf");
}
}
}
完成代码后,调试运行程序,生成文档,如下:
注:如果只想设置单页的水印效果,只需获取指定页,并添加水印效果即可。
【示例2】添加PDF图片水印
using Spire.Pdf;
using System.Drawing;
namespace ImageWaterMark
{
class Program
{
static void Main(string[] args)
{
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载现有PDF文档
pdf.LoadFromFile("sample.pdf");
//加载图片到System.Drawing.Image对象
Image image = Image.FromFile("logo.png");
//遍历文档每一页
foreach (PdfPageBase page in pdf.Pages)
{
//设置背景图的位置及大小
page.BackgroundRegion = new RectangleF((page.ActualSize.Width - 250) / 2, (page.ActualSize.Height - 250) / 2, 250, 250);
//设置背景图
page.BackgroundImage = image;
}
//保存并打开文档
pdf.SaveToFile("output.pdf");
System.Diagnostics.Process.Start("output.pdf");
}
}
}
测试结果:
以上是本次关于C#添加PDF水印的全部内容。
来源:https://www.imooc.com/article/284363
标签:c#,pdf,水印
0
投稿
猜你喜欢
Java程序部署到服务器上,接口请求下载文件失败/文件为空/文件名不对的问题
2023-05-12 15:30:00
Spring boot热部署devtools过程解析
2022-06-21 13:12:09
.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
2021-08-08 23:56:44
Java ArrayList与LinkedList及HashMap容器的用法区别
2022-07-07 00:53:25
JAVA调用SAP WEBSERVICE服务实现流程图解
2023-11-07 03:54:57
Java使用fill()数组填充的实现
2022-02-06 15:03:33
Spring集成Swagger常见错误及解决办法
2023-07-10 05:01:17
Spring-boot 2.3.x源码基于Gradle编译过程详解
2022-04-07 15:41:36
java中@SuppressWarnings注解用法详解
2023-09-20 23:11:40
java实现字符串四则运算公式解析工具类的方法
2021-11-03 09:22:23
Java中Arraylist动态扩容方法详解
2023-04-30 23:25:53
在Winform和WPF中注册全局快捷键实现思路及代码
2023-03-13 23:00:25
c# 使用HtmlAgilityPack解析Html
2021-06-22 11:50:11
idea中Maven镜像源详细配置步骤记录(对所有项目)
2022-12-17 14:27:56
Java带返回值的方法的定义和调用详解
2022-10-05 21:01:09
MyBatis查询结果resultType返回值类型的说明
2021-10-25 21:37:39
C#中WebClient实现文件下载
2022-10-11 18:04:57
C# XML操作类分享
2022-02-16 03:22:03
C#读写Config配置文件案例
2022-10-22 20:11:09
Mybatis基础概念与高级应用小结
2023-11-26 20:18:22