.net?core利用PdfSharpCore操作PDF实例教程(.net core文件下载)深度揭秘

随心笔谈2年前发布 admin
207 0 0

文章摘要

这篇文章介绍了如何使用 .NET 核心库 PdfSharpCore 对 PDF 文件进行操作。主要内容包括: 1. **基本功能**:设置 PDF 文件的所有者密码以防止篡改、添加页眉页脚、添加水印文字、插入图片等。 2. **高级功能**:通过 XGraphics 类实现复杂的 PDF 编辑操作,如添加页码、绘制公司名称、添加水印等。 3. **具体实现**:展示了如何通过 XStringFormat 和 XStringDraw 字体功能实现文本的位置和对齐,以及如何通过 XImage 和 XGraphics 类插入图片。 4. **Docker 配置**:提供了一种在 Docker 环境中运行 PDF 处理任务的配置方法,包括安装依赖和配置字体路径。 总结来说,文章详细讲解了如何利用PdfSharpCore 库对 PDF 文件进行基本到高级的编辑操作,并提供了在 Docker 环境中运行这些操作的配置方法。



目录前序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

代码很简单设置PdfDocument.SecuritySettings.OwnerPassword

PdfDocument doc=PdfReader.Open(@”a.pdf”, PdfDocumentOpenMode.Modify);
doc.SecuritySettings.OwnerPassword=”123″;
var filePath=$”b.pdf”;
doc.Save(filePath);

(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);
}
}

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”);

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”);

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”);

//第一步先加载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实例的文章就介绍到这了,更多相关.net core用PdfSharpCore操作PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:.NET使用DinkToPdf将HTML转成PDF的示例代码利用C#/VB.NET实现将PDF转为Word.Net 对于PDF生成以及各种转换的操作详解如何使用Net将HTML简历导出为PDF格式

© 版权声明

相关文章