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字体或其他样式要求比较严格的使用场景,小伙伴可以试试,如果有不懂的地方 可以留言!!!
wkHtmlToPdf 的简单使用我在这里就不说了,今天主要说一下 设置 自定义字体问题,我经过很多次的测试,终于成功。1、上代码import java.io.File;import java.io.IOException;public class WkHtmlToPdf {private static final String toPdfTool = "D:\\Progra...
常规解决wkhtmltopdf 中文乱码的方法有 安装缺失的字体、修改字符编码等,相关方法可以通过搜索引擎解决。
但目前碰到一个案情况比较少见,html中所需要的字体为宋体,windows自带,且html字符编码正确,但wkhtmltopdf转换时,对于宋体段落无法正常渲染,出现乱码,如下图:
经多方查询,最简的解决方法是,在网页头部的style标签中,手工指定宋体字体的本地存放位置,wkhtm...
最近,项目需要将HTML页面转换为PDF文件,所以就研究了下HTML转PDF的解决方案,发现网上比较流行的解决方案有3种:
(1)iText
(2)Flying Saucer
(3)wkhtmltopdf
还有一些收费的,我就没测试过了,前两种对HTML的要求过于严格,而且即使你写标准的HTML(当然这都是理想情况下),他也未必可以完美解析,所以我就选择了(3),wkhtmltopdf基于...
style支持弱,对于表单的样式无法进行更改,就是有背景色,无法去掉等
因此我寻求另外一种更好的转变方式,将用户编辑完的HTML页面直接生成PDF,一模一样,即使是样式也一模一样。
各种试,各种查找,最终选择了wkhtmltpdf这个神一样的软件
二、简单介绍
wkhtmltopdf不是程序,而是软件。能够安装在 l...
问题描述:我们产品报告内需要用到四种
字体(黑体、新罗马
字体、方正兰亭细黑、方正兰亭中黑),html文件可以将不同
字体按照要求分别显示,但是使用
wkhtmltopdf将html转成
pdf之后,只保留一种
字体。
解决方案:参考了
Wkhtmltopdf Considered Harmful
需要用php把html生成pdf,找了了个php扩展,HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML+css无法生成。网上找到了强大的wkhtmltopdf。
直接下周bin包,不用安装,解压缩就能用。
./wkhtmltox/bin/wkhtmltopdf http://www.baidu.com baidu.pdf
如果wkhtmltopdf中文显示空白,打
下载地址:https://
wkhtmltopdf.org/downloads.html
傻瓜式解压安装,这里不细说
测试是否安装成功,进入到程序执行目录(\
wkhtmltopdf\bin)
wkhtmltopdf "https://www.baidu.com"...
我可以回答这个问题。使用python的pdfkit库和wkhtmltopdf工具可以将HTML格式的文件转换为PDF文件。你可以通过以下代码将HTML文件转换为PDF文件:
import pdfkit
pdfkit.from_file('example.html', 'example.pdf')
在运行代码之前,确保安装了wkhtmltopdf工具并将其添加到环境变量中。