java 代码 用 wkHtmlToPdf 工具生成 pdf 文档 并 设置自定义 字体

wkHtmlToPdf  的简单使用我在这里就不说了,今天主要说一下 设置  自定义字体问题,我经过多次的测试,终于成功应用,这种设计方案,目前在百度上你几乎搜不到第二篇文章介绍!。

1、上代码

import java.io.File;
import java.io.IOException;
public class WkHtmlToPdf {

private static final String toPdfTool = "D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";

private static final String toPdfCssFangSong = "E:\\template\\toPdfCssStyle\\style_fangsong.css";
/** 主体方法生成  pdf */
public static void testConvert( String srcPath, String destPath){
    logger.info("css样式在服务器上存的路径[{}]",toPdfCssFangSong);
    String pageSize = "A4";
    File file = new File(destPath);
    File parent = file.getParentFile();
    if (!parent.exists()){
        parent.mkdirs();
    }
    StringBuilder cmd = new StringBuilder();
    cmd.append(toPdfTool).append(" ");//wkhtmltopdf 的安装地址
    cmd.append("--page-size ");
    cmd.append(pageSize).append(" ");
    cmd.append("--margin-top ");
    cmd.append("24mm").append(" ");
    cmd.append("--margin-bottom ");
    cmd.append("15mm").append(" ");

    cmd.append("--user-style-sheet ");
    cmd.append(toPdfCssFangSong).append(" ");//为生成的 pdf 文档设置自定义样式,非常重要!!!  
    cmd.append("--disable-smart-shrinking ");//这个参数一定要加上,加上页面就不缩小了,会正常比例显示

    cmd.append(srcPath).append(" ");
    cmd.append(destPath);
    try {
        Runtime.getRuntime().exec(cmd.toString());
    }catch (IOException e){
        e.printStackTrace();
    }
}

 

public static void main(String[] args) {
    try {

        //设置纸张大小: A4, Letter, etc.
        String pageSize = "A4";
        //需要生成PDF的URL,这样也可以是页面的本地地址
     
        String srcPath = "E:\\buildWord\\2020\\2020-04-28\\C1101072020100816\\协议书.html";
       
        String destPath = "E:\\buildWord\\2020\\2020-04-28\\C1101072020100816\\协议书.pdf";
        testConvert(srcPath, destPath);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
2、style_fangsong.css  是自定义的样式文件,根据根据所需要的字体或者其他样式,自定义设置,格式样式如下:

 @font-face{font-family: "仿宋";src:url("C:\\Windows\\Fonts\\simfang.ttf")}
* {    
    font-family: 仿宋 !important;
    font-weight:normal !important;
}

这种设置,主要针对对 pdf字体或其他样式要求比较严格的使用场景,小伙伴可以试试,如果有不懂的地方 可以留言!!!



}
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值