C# PDF添加图片水印
2021/5/12 12:27:22
本文主要是介绍C# PDF添加图片水印,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 引用Spire.Pdf /// <summary> /// 制作水印图片并给pdf添加图片水印(缺点:将图片作为背景并设成透明的形式的假水印) /// </summary> /// <param name="savepath">pdf文件地址</param> /// <param name="str">水印信息文本</param> public static void AddImageWaterMark(string savepath, string str) { // 添加一个空白图片,宽高可自定义设置 using (Bitmap bm = new Bitmap(410, 600)) { Graphics g = Graphics.FromImage(bm); // 清空图片并添加背景色 g.Clear(Color.White); //公共内容 g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.CompositingQuality = CompositingQuality.HighQuality; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel; /*添加水印*/ //图片的宽度与高度 int height = bm.Height; //水印文字 string text = str; // 可通过FontStyle 修改字体样式 System.Drawing.Font crFont = new System.Drawing.Font("微软雅黑", 14, FontStyle.Italic); // FromArgb的第一个参数为透明度,最大为255 SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(120, Color.Black)); //将原点移动 到图片中点 g.TranslateTransform(0, height); //以原点为中心 转 -45度 g.RotateTransform(-20); for (int i = 0; i < 10; i++) { g.DrawString(text, crFont, semiTransBrush, new PointF(-600 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(-400 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(-200 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(0 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(200 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(400 + i * 150, -600 + i * 100)); g.DrawString(text, crFont, semiTransBrush, new PointF(600 + i * 150, -600 + i * 100)); } /*添加水印*/ g.Dispose(); // 将水印图片存储下来 // bm.Save($"{AppDomain.CurrentDomain.BaseDirectory}File/666.png", ImageFormat.Png); // 将图片转为Stream MemoryStream ms = new MemoryStream(); bm.Save(ms, ImageFormat.Png); System.Drawing.Image img = System.Drawing.Image.FromStream(ms); // 定义一个对象,并加读取pdf文件 Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument(); pdf.LoadFromFile(savepath); // 获取PDF文档的第一页(多页可用循环去指定背景) Spire.Pdf.PdfPageBase page = pdf.Pages[0]; // 设置背景图片 page.BackgroundImage = img; // 指定背景图的位置和大小 page.BackgroundRegion = new RectangleF(0, 0, img.Width, img.Height); pdf.SaveToFile(savepath); pdf.Close(); } }
这篇关于C# PDF添加图片水印的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统