.net core中利用谷歌内容将html生成pdf的方法
南风 2022-08-15 18:28 640

html生成pdf的方法组件现在有很多选择了,我们可以很方便的通过一些已经造好的轮子集成进自己的项目内,从而实现生成pdf文件。

生成pdf可以有以下方法

  1. 通过html2pdf.js生成pdf文件,如果是在移动端生成会出现各种各样的问题。html2pdf的github地址:https://github.com/eKoopmans/html2pdf.js
  2. 通过wkhtmltopdf工具生成pdf,这个工具很强大,可能是我的用的版本低的原因,好像不是100%兼容html5,wkhtmltopdf官网:https://wkhtmltopdf.org/
  3. 通过DinkToPdf控件生成pdf,这个组件可以很方便地在.net core中集成使用,生成的效果也还不错,不过有时候内容控制不好会被切断,DinkToPdf的github地址:https://github.com/rdvojmoc/DinkToPdf
  4. 通过ChromeHtmlToPdf控件生成pdf,这个组件是通过调用本机安装的Google Chrome浏览器进行生成pdf,前提得在服务器装chrome浏览器,而且由于要调用chrome浏览器,时间嘛会有点久,ChromeHtmlToPdf的github地址:https://github.com/Sicos1977/ChromeHtmlToPdf

下面主要简单介绍一下第四种方式在.net5中的使用

using System;
using ChromeHtmlToPdfLib;
using ChromeHtmlToPdfLib.Settings;
namespace myDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var ctx = new Converter(@"C:\Google\Chrome\Application\chrome.exe"))//当不指定这个chrome的路径时,会默认去program file中查找,我这里因为安装路径不在那里会发生异常
            {
                ctx.ConvertToPdf(new ConvertUri($"{Environment.CurrentDirectory}\\test.html"),$"{Environment.CurrentDirectory}\\test.pdf",new PageSettings());
            }

            Console.WriteLine("ok");
        }

    }
}

 

以下是我执行时的问题记录

这是我没有指定chrome的安装路径时的错误图

查找获得chrome的安装路径

开始菜单找到谷歌浏览器图片,(在桌面上的快捷方式也行),右键--->属性--->复制目标里面的内容,这样就可以得到chrome的安装路径了

 

然后在代码中传入地址就可以正常的生成pdf了

这里只是记录了简单的使用方法,其他的使用方法可以参考github上面的介绍进行研究

 

 

本网站提供的文章除原创外均转载自其他网站,本网站只为更好的记录及学习技术经验
若网站内转载的文章侵犯了您的版权,请通过 意见反馈 告知本网站,我们会尽快删除相关信息
Copyright©2021-2021 kcBlog博客 版权所有 粤ICP备2021119076号 v1.0.0 栈谷统计