加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 资讯 > 正文

.net core如何使用PdfSharpCore控制PDF实例?

发布时间:2024-01-04 16:47:26 所属栏目:资讯 来源:互联网
导读:  这篇文章主要介绍“.net core如何使用PdfSharpCore控制PDF实例?”,有一些人在.net core如何使用PdfSharpCore控制PDF实例?的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答

  这篇文章主要介绍“.net core如何使用PdfSharpCore控制PDF实例?”,有一些人在.net core如何使用PdfSharpCore控制PDF实例?的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。

  目录

  前序

  1.设置PDF拥有者的密码,让PDF防篡改。

  2.PDF添加页眉和页脚

  (2)添加页眉

  (3)添加页脚

  3.PDF添加水印文字

  4.PDF 添加图片

  总结

  前序

  使用PdfSharpCore请注意使用XGraphics基类,与System.Drawing 的Graphics类似,XGraphics 提供XColor(颜色)、XPen(画笔)、XBrush(画刷)、XFont(字体)、XPoint(位置)等对象。提供很多画线,矩形,圆,扇形,多边形,图,文本等方法。源码请查看https://github.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://github.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

  “.net core如何使用PdfSharpCore控制PDF实例?”的内容就介绍到这里了,感谢大家的阅读。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章