最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
.net core利用PdfSharpCore操作PDF实例教程
时间:2026-09-16 14:20:02 编辑:袖梨 来源:一聚教程网
前序
使用PdfSharpCore请注意使用XGraphics基类,与System.Drawing 的Graphics类似,XGraphics 提供XColor(颜色)、XPen(画笔)、XBrush(画刷)、XFont(字体)、XPoint(位置)等对象。提供很多画线,矩形,圆,扇形,多边形,图,文本等方法。源码请查看https://gi**t*hub.com/ststeiger/PdfSharpCore/blob/master/PdfSharpCore/Drawing/XGraphics.cs
1.设置PDF拥有者的密码,让PDF防篡改。
代码很简单设置PdfDocument.SecuritySettings.OwnerPassword
PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);doc.SecuritySettings.OwnerPassword = "123";var filePath = $"b.pdf";doc.Save(filePath);

2.PDF添加页眉和页脚
(1)添加页码显示
XStringFormats 指定文本的位置:详请查看https://githu**b.*com/ststeiger/PdfSharpCore/blob/master/PdfSharpCore/Drawing/XStringFormats.cs
XFont font = new XFont("SimHei", 8);XBrush brush = XBrushes.Black;PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);for (int i = 0; i < doc.Pages.Count; i++){PdfPage page = doc.Pages[i];XRect layoutRectangle = new XRect(0, page.Height - font.Height, page.Width, font.Height);using (XGraphics gfx = XGraphics.FromPdfPage(page)){gfx.DrawString($"第{(i + 1).ToString()}页/共{doc.Pages.Count}页",font,brush,layoutRectangle,XStringFormats.BottomLeft);}}

(2)添加页眉
XFont font = new XFont("SimHei", 8);XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));XPoint point = new XPoint(90, 20);PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);for (int i = 0; i < doc.Pages.Count; i++){var renderer = XGraphics.FromPdfPage(doc.Pages[i]);XSize pageSize = renderer.PageSize;renderer.DrawString("xxx有限公司", font, brush, point);XPen pen = new XPen(XBrushes.Gray, 0.5f);renderer.DrawLine(pen, point.X, point.Y, pageSize.Width - point.X, point.Y);}doc.Save("b.pdf");

(3)添加页脚
XFont font = new XFont("SimHei", 8);XBrush brush = new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);for (int i = 0; i < doc.Pages.Count; i++){var renderer = XGraphics.FromPdfPage(doc.Pages[i]);XSize pageSize = renderer.PageSize;XPoint point = new XPoint(90, pageSize.Height-20);renderer.DrawString("xxx有限公司", font, brush, point);XPen pen = new XPen(XBrushes.Gray, 0.5f);renderer.DrawLine(pen, point.X, point.Y-10, pageSize.Width - point.X, point.Y-10);}doc.Save("b.pdf");

3.PDF添加水印文字
XFont font = new XFont("SimHei", 8);XBrush brush =new XSolidBrush(XColor.FromArgb(128, 255, 0, 0));PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);for (int i = 0; i < doc.Pages.Count; i++){XStringFormat stringFormat = new XStringFormat();stringFormat.Alignment = XStringAlignment.Center;stringFormat.LineAlignment = XLineAlignment.Center;PdfPage page = doc.Pages[i];var gfx = XGraphics.FromPdfPage(page, XPageDirection.Downwards);gfx.DrawString( $"xxx公司版权所有", font, brush, new XPoint(500, 500),stringFormat);}doc.Save("b.pdf");

4.PDF 添加图片
//第一步先加载PDF文件PdfDocument doc = PdfReader.Open(@"a.pdf", PdfDocumentOpenMode.Modify);//导入图片(地址,文件流)var background = XImage.FromFile(@"QRCode.png");// var background = XImage.FromStream(()=> stream);//指定PDF 的页PdfPage page = doc.Pages[0];var gfx = XGraphics.FromPdfPage(page, XPageDirection.Downwards);//写入指定位置gfx.DrawImage(background, 20, 20, 250, 140);doc.Save("b.pdf");
docker 模式,需要在 dockerfile 中添加如下配置
RUN apt-get update && apt-get -y install libfontconfig1
如需要指定字体,请将字段文件进行拷贝(比如雅黑)
COPY /xx/xxx/SIMHEI.TTF /usr/share/fonts/SIMHEI.TTF
总结
到此这篇关于.netcore利用PdfSharpCore操作PDF实例的文章就介绍到这了,更多相关.netcore用PdfSharpCore操作PDF内容请搜索一聚教程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持一聚教程网!
相关文章
- AI项目更新依赖,别让安全防线“裸奔” 09-16
- 向量检索跑通后,离真正掌握 RAG 还有多远 09-16
- .netcore3.1Redis安装和简单使用 09-16
- MessagePack和System.Text.Json序列化和反序列化性能及对比分析 09-16
- .net core利用PdfSharpCore操作PDF实例教程 09-16
- 使用.NETMAUI开发ChatGPT客户端的流程 09-16