怎么新建MySQL数据库

发布时间:2023-09-15 作者:admin
阅读:995
这篇文章主要介绍“.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实例?”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业技术相关的知识可以关注群英网络网站,小编每天都会为大家更新不同的知识。

        免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

        二维码-群英

        长按识别二维码并关注微信

        更方便到期提醒、手机管理

        7*24 全天候服务

        售前 400-678-4567

        售后 0668-2555666

        售后 400 678 4567

        信息安全 0668-2555 118

        域名空间 3004329145