C#使用wkhtmltopdf,把HTML生成PDF(包含分页)

 

最近花了2天多的时间终于把HTML生成PDF弄好了。步骤如下:

 

1、首先是技术选型。看了好多都是收费的就不考虑了。

免费的有:

  1. jsPDF(前端生成,清晰度不高,生成比较慢)
  2. iText(严格要求html标签。这个好像也是收费的)
  3. wkhtmltopdf(简单、配置选项多、生成快、支持跨平台、也支持HTML生成图片) 

因此选择wkhtmltopdf。

 

2、前期准备,首先需要下载wkhtmltopdf.exe(下载地址:https://wkhtmltopdf.org/downloads.html)阅读配置参数(https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

常用参数:

  1. -T 0 :设置上下左右margin-top=0(-B 0 -L 0 -R 0 -T 0,上下左右都设置一下)
  2. -s A4:设置A4纸大小,默认A4
  3. --disable-smart-shrinking:禁止缩放(不设置这个,生成的pdf会缩放)
  4. --zoom 1:设置缩放系数,默认为1。如果--disable-smart-shrinking设置了,--zoom就不用设置了。
  5. --cookie name value:设置cookie,如果下载的url需要登录(用cookie),那么这个参数很重要。

 

3、设置需要打印的页面(核心是分页)

A4纸大小:210mm×297mm,因此页面的每个div大小也是A4纸大小。

 

这里的页面设置很重要。另外,设置了分页的页码,示例如下:

<style>
#view {
    height: 100%;
    margin: auto;
    padding: 0;
    width: 210mm;
}

/*设置A4打印页面*/
/*备注:由于@是否特殊符号,样式放在css文件中没问题,放在cshtml文件就不行了,需要@@。*/
@preview-item {
    size: A4;
    margin: 0;
}
 
@media print {
    .preview-item {
        margin: 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值