.netCore后台将数据生成为PDF文件

这篇具有很好参考价值的文章主要介绍了.netCore后台将数据生成为PDF文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

几种常见的操作文档的方式

  1. OLEDB        

    把整个 Excel 文件当做一个数据源来进行数据的读取操作。

    优点:实现方式简单,读取速度快。

    缺点:读取 Excel 数据的过程不太灵活,对内存的占用比较高,当数据量变的很大时,容易由于内存空间不足导致内存溢出异常。

  2. COM 组件

    通过 COM 组件 Microsoft.Office.Interop.Excel.dll 实现 Excel 文件的操作。

    优点:读取 Excel 数据非常灵活,可以实现 Excel 具有的各种数据处理功能。

    缺点:对数据的访问时基于单元格方式实现的,所以读写数据较慢,特别是当数据量较大时,访问效率问题更为突出。另一点是要求本机安装了 Office 组件。

  3. NPOI

    通过 NPOI 库实现 Excel 文件操作,可以在没有安装微软 Office 的情况下使用。详情可查看官网。

    优点:读取Excel数据速度较快,操作方式灵活。

    缺点:官方文档较少。

  4. Aspose 公司旗下的最全的一套 office 文档管理方案。支持 Word, Excel, PowerPoint, Project 等 office 文档以及 PDF 文档读写操作。

    优点:因商业驱动所以会有详细的使用文档和技术支持。

    缺点:需要收费使用。


做项目的时候遇到了一个需要将数据导出为pdf的功能,写了两天,将成果记录下来,方便下次开发作参考。

思路:先制作一个word文档模板,将模板中需要填充数据的地方插入标签,通过Spire.Doc将文档模板填充后保存为新的doc文件,然后再将doc文件通过Aspose转换为pdf文件进行输出

一、自己先设计一个word文档模板,根据自己的需求设计word文档,在需要填充数据的地方插入标签,后台插入数据的时候是根据获取标签位置将数据插入到标签的位置的。

        将制作好的word文档模板,放在后台项目中,模板就算制作好了

.net core 生成pdf,.NetCore,.netcore,pdf

 二、第在项目中先安装需要的Nuget包,

.net core 生成pdf,.NetCore,.netcore,pdf

 三、第三步在后台进行操作,先获取自己刚才做的word文档模板, 

注:下边代码段如果不加的话,生成的pdf会有aspose开发者的广告,引用包的版本需要与消除水印代码的版本保持一致,不一致就会报错,(我这里用的是19.12.0)

new Aspose.Words.License().SetLicense(new MemoryStream(Convert.FromBase64String("PExpY2Vuc2U+CiAgPERhdGE+CiAgICA8TGljZW5zZWRUbz5TdXpob3UgQXVuYm94IFNvZnR3YXJlIENvLiwgTHRkLjwvTGljZW5zZWRUbz4KICAgIDxFbWFpbFRvPnNhbGVzQGF1bnRlYy5jb208L0VtYWlsVG8+CiAgICA8TGljZW5zZVR5cGU+RGV2ZWxvcGVyIE9FTTwvTGljZW5zZVR5cGU+CiAgICA8TGljZW5zZU5vdGU+TGltaXRlZCB0byAxIGRldmVsb3BlciwgdW5saW1pdGVkIHBoeXNpY2FsIGxvY2F0aW9uczwvTGljZW5zZU5vdGU+CiAgICA8T3JkZXJJRD4yMDA2MDIwMTI2MzM8L09yZGVySUQ+CiAgICA8VXNlcklEPjEzNDk3NjAwNjwvVXNlcklEPgogICAgPE9FTT5UaGlzIGlzIGEgcmVkaXN0cmlidXRhYmxlIGxpY2Vuc2U8L09FTT4KICAgIDxQcm9kdWN0cz4KICAgICAgPFByb2R1Y3Q+QXNwb3NlLlRvdGFsIGZvciAuTkVUPC9Qcm9kdWN0PgogICAgPC9Qcm9kdWN0cz4KICAgIDxFZGl0aW9uVHlwZT5FbnRlcnByaXNlPC9FZGl0aW9uVHlwZT4KICAgIDxTZXJpYWxOdW1iZXI+OTM2ZTVmZDEtODY2Mi00YWJmLTk1YmQtYzhkYzBmNTNhZmE2PC9TZXJpYWxOdW1iZXI+CiAgICA8U3Vic2NyaXB0aW9uRXhwaXJ5PjIwMjEwODI3PC9TdWJzY3JpcHRpb25FeHBpcnk+CiAgICA8TGljZW5zZVZlcnNpb24+My4wPC9MaWNlbnNlVmVyc2lvbj4KICAgIDxMaWNlbnNlSW5zdHJ1Y3Rpb25zPmh0dHBzOi8vcHVyY2hhc2UuYXNwb3NlLmNvbS9wb2xpY2llcy91c2UtbGljZW5zZTwvTGljZW5zZUluc3RydWN0aW9ucz4KICA8L0RhdGE+CiAgPFNpZ25hdHVyZT5wSkpjQndRdnYxV1NxZ1kyOHFJYUFKSysvTFFVWWRrQ2x5THE2RUNLU0xDQ3dMNkEwMkJFTnh5L3JzQ1V3UExXbjV2bTl0TDRQRXE1aFAzY2s0WnhEejFiK1JIWTBuQkh1SEhBY01TL1BSeEJES0NGbWg1QVFZRTlrT0FxSzM5NVBSWmJRSGowOUNGTElVUzBMdnRmVkp5cUhjblJvU3dPQnVqT1oyeDc4WFE9PC9TaWduYXR1cmU+CjwvTGljZW5zZT4=")));

.net core 生成pdf,.NetCore,.netcore,pdf

 四、操作word文档,这步应该在生成pdf之前,为了方便看,我写在了这里,我这个文档中有将

文本、表格、图片插入内容的操作,如果有其他需要可以在教程上边找,https://www.evget.com/doclib/s/21/10921

  1.  第一种的话是获取标签位置,填充内容。
    bookmarkNavigator.MoveToBookmark("LICNO", true, true);//根据模板中的标签名称,获取位置
    bookmarkNavigator.ReplaceBookmarkContent("填充的内容", true);
  2. 自定义样式,我这里是在表格替换标签的时候定义的样式。.net core 生成pdf,.NetCore,.netcore,pdf

  3. 生成表格插入到word中,成果,.net core 生成pdf,.NetCore,.netcore,pdf

     代码,

     //创建表格
    Table table = new Table(document, true);//在文档中创建表格
    table.ResetCells(20, 2);//这里是表格的行数和列数,我这里是20行,2列
    //设置表格的水平和垂直边框 
    table.TableFormat.Borders.Horizontal.BorderType = BorderStyle.Hairline;
    table.TableFormat.Borders.Horizontal.Color = Color.White;
    table.TableFormat.Borders.Vertical.BorderType = BorderStyle.Hairline;
    table.TableFormat.Borders.Vertical.Color = Color.White;//设置内边框的颜色,(我这里设置成了白色)
    //table[0, 0]这里是获取表格的位置,位置是从0开始的,我这里就是第一行第一列
    table[0, 0].AddParagraph().AppendText("| 经营异常名录");//在第一行第一列单元格填充文本
    table[0, 0].Paragraphs[0].Format.HorizontalAlignment = HorizontalAlignment.Left;//设置文本居左
    //这里是设置单元格的样式,style.Name就是上一步自定义样式的NAME,获取样式
    table[0, 0].Paragraphs[0].ApplyStyle(style.Name);
     //创建TextBodyPart对象
    TextBodyPart bodyPart = new TextBodyPart(document);
    bodyPart.BodyItems.Add(table);
    //定位到指定书签位置
    bookmarkNavigator.MoveToBookmark("模板书签的名字");
    //使用表格替换原书签的内容
    bookmarkNavigator.ReplaceBookmarkContent(bodyPart);
  4. 将图片插入到word文档中(我这里是将生成的二维码插入到了word中)成果:.net core 生成pdf,.NetCore,.netcore,pdf

     代码:

    var wjjurl = _host.WebRootPath + "/XYJG/XYBG/QrCode/";//文件夹路径
    string qrcodepath = _host.WebRootPath + "/XYJG/XYBG/QrCode/" + jgdm + ".jpg";
    if (!Directory.Exists(wjjurl))//判断文件夹路径是否存在
    {
        Directory.CreateDirectory(wjjurl);
    }
    if (!System.IO.File.Exists(qrcodepath))//判断二维码是否存在
    {
    //定义二维码扫出来的内容
    string url = "企业名称:" + enmoeamodel.QYMC + "统一社会信用代码:" + jgdm;
    
    Bitmap ImagePath = QRCodeHelper.GetPTQRCode(url, 2);//生成二维码
    ImagePath.Save(qrcodepath);//将二维码保存
    }
    //创建BookmarksNavigator实例
    BookmarksNavigator bn = new BookmarksNavigator(document);
    //模板中要替换图片的书签
    bn.MoveToBookmark("qytpimg", true, true);
    //添加一个secton并命名为section0
    Section section0 = document.AddSection();
    //为section0添加一个段落
    Paragraph paragraph = section0.AddParagraph();
    //加载一张图片
    Image image = Image.FromFile(qrcodepath);//图片的物理路径
    //为段落添加图片
    DocPicture picture = paragraph.AppendPicture(image);
    //把含有图片的段落插入到书签位置
    bn.InsertParagraph(paragraph);
    document.Sections.Remove(section0);
    

总结:这是本人做数据导出为pdf的总结文字,有的地方可能表达的不是很清楚,仅供参考文章来源地址https://www.toymoban.com/news/detail-587041.html

到了这里,关于.netCore后台将数据生成为PDF文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【生成PDF】【JAVA】纯后台生成Echarts图片,并将图片生成到PDF文档

    目录 前言 一、如何后台生成Echarts图片? 1.PhantomJS 2.PhantomJS的下载  3.用phantomjs调用echarts-converts.js生成图片 二、Java如何将Echarts图生成到PDF 1.生成PDF依赖 2.Java代码测试例子:  3.测试结果   三、下载生成的PDF ReportFormUtil 提示:本文仅用于记录日常,多有不足,仅供参考。

    2024年02月09日
    浏览(47)
  • 杨中科 .NETCORE ENTITY FRAMEWORK CORE-1 EFCORE 第一部分

    1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: 比如查询: 3、有哪些ORM: EF core(官方推荐)、Dapper、SqlSugar、FreeSql等 1、Entity Framework Core(EF Coxe)是微软官方的ORM框架优点: 功能强大、官方支持、生

    2024年02月02日
    浏览(63)
  • nodejs根据pdf模板填入中文数据并生成新的pdf文件

    首先 const templateBytes = await fs.promises.readFile(templatePath);   const pdfDoc = await PDFDocument.load(templateBytes);   const form = pdfDoc.getForm(); 这三行表示读文件,并且读取pdf表单,然后注册fontkit,将你要的字体嵌入pdf中,之后在pdf的表单中寻找字段,填入字段,并把字体样式更新为你嵌入pd

    2024年02月10日
    浏览(45)
  • .NetCore之log4net的使用

    1.首先下载log4ne的包: 2.添加配置文件log4net.config 3.添加日志帮助类 4.在服务中采用单例生命周期注入 5.添加全局异常过滤器 6.注入过滤器服务 7.使用 日志截图:

    2024年02月11日
    浏览(41)
  • 福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!

    千里之行,始于足下,若想提高软件编程能力,最最重要的是实践,所谓纸上得来终觉浅,绝知此事要躬行。根据相关【艾宾浩斯遗忘曲线】研究表明,如果不动手实践,记住的东西会很快忘记。 为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计44

    2024年02月03日
    浏览(49)
  • 如何用Python实现从pdf文件精准抓取数据生成数据库!

    要从PDF文件中提取数据并生成数据库,你可以使用Python中的一些库和工具来实现。 1、安装必要的库: 确保已安装所需的库。除了之前提到的 PyPDF2 、 pdfminer.six 和 pdftotext 之外,你可能还需要其他的库来处理提取的数据和数据库操作。例如,你可以使用 re 库进行正则表达式匹

    2024年02月11日
    浏览(46)
  • NetCore读取JSON配置文件

    一、添加NuGet 包: 1. Microsoft.Extensions.Configuration.Binder :将对象与 Microsoft.Extensions.Configuration 的配置提供程序中的数据绑定的功能。 2. Microsoft.Extensions.Configuration.Json :Microsoft.Extensions.Configuration 的 JSON 配置提供程序实现。 3. Microsoft.Extensions.Configuration.EnvironmentVariables :Microso

    2024年02月05日
    浏览(37)
  • 文件管理工具.netcore资源文件管理

    文件管理工具 怎么快速有效的管理我的文件包括文件夹,需求功能是 模糊搜索显示匹配的文件夹或文件数据 快速打开文件夹位置 在windows直接查看搜索速度太慢,范围宽泛,整理所需资源文件名和文件本机路径保存在数据库,可以在数据库中快速检索 显示文件夹路径然后点

    2024年01月23日
    浏览(54)
  • .netcore中的虚拟文件EmbeddedFile

    以前一直比较好奇像swagger,cap,skywalking等组件是如何实现引用一个dll即可在网页上展示界面的,难道这么多html,js,css等都是硬编码写死在代码文件中的?后面接触apb里面也有虚拟文件的功能,一直没去深入了解,最近仔细看了一下他们的代码,发现内部其实就是用 嵌入式文件

    2024年02月08日
    浏览(37)
  • .Net 6/NetCore3.1 Vue Element Uniapp前后端分离低代码快速开发框架

    这是一个能提高开发效率的开发框架,全自动生成PC与移动端(uniapp)代码;支持移动ios/android/h5/微信小程序。 1、前后端分离项目 2、纯后端项目 3、移动端开发uni-app(IOS、Android、H5、微信小程序) 4、内容管理系统 1、代码生成器 2、一对一与一对多代码生成 3、全自动导入导出

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包