Java 转换 HTML 到PDF有许多类库,今天我们介绍一下第三方免费的类库OpenPDF。
1. OpenPDF
OpenPDF是免费的Java类库 ,遵从LGPL 和 MPL协议,所以基本上能够可以随意使用。OpenPDF是基于iTEXT的,目前来说也是维护的比较好的Java操作PDF的开源软件。
话不多说,且看所需要的依赖,
< dependency >
< groupId >org.jsoup< /groupId >
< artifactId >jsoup< /artifactId >
< version >1.13.1< /version >
< /dependency >
< dependency >
< groupId >com.openhtmltopdf< /groupId >
< artifactId >openhtmltopdf-core< /artifactId >
< version >1.0.6< /version >
< /dependency >
< dependency >
< groupId >com.openhtmltopdf< /groupId >
< artifactId >openhtmltopdf-pdfbox< /artifactId >
< version >1.0.6< /version >
< /dependency >
jsoup可以将html文件转换成输入流等,也可以遍历html的DOM节点,提取元素及样式等。
2. 示例
本篇示例将以下html文件转换成pdf
< html >
< head >
< style >
.center_div {
border: 1px solid #404e94;
margin-left: auto;
margin-right: auto;
background-color: #f6d0ed;
text-align: left;
padding: 8px;
}
table {
width: 100%;
border: 1px solid black;
}
th, td {
border: 1px solid black;
}
body,html,input{font-family:"msyh";}
< /style >
< /head >
< body >
< div class="center_div" >
< h1 >Hello java North!< /h1 >
< div >
< p >convert html to pdf.< /p >
< /div >
< div >
< table >
< thead >
< th >ROLE< /th >
< th >NAME< /th >
< th >TITLE< /th >
< /thead >
< tbody >
< tr >
< td >MARKSMAN< /td >
< td >ASHE< /td >
< td >THE FROST ARCHER< /td >
< /tr >
< tr >
< td >MAGES< /td >
< td >ANNIE< /td >
< td >THE DARK CHILD< /td >
< /tr >
< tr >
< td >射手< /td >
< td >凯塔琳< /td >
< td >皮城女警< /td >
< /tr >
< /tbody >
< /table >
< /div >
< /div >
< /body >
< /html >
以上html用浏览器打开如下,乱码是因为中文字体不识别,下面转换的时候会加载对应的字体来进行转换。
使用Java转换HTML到PDF代码如下:
public class HtmlToPDFOpenSource {
public static void main(String[] args) throws IOException {
HtmlToPDFOpenSource htmlToPDFOpenSource = new HtmlToPDFOpenSource();
htmlToPDFOpenSource.generatePdfByOpenhtmltopdf();
}
private void generatePdfByOpenhtmltopdf() throws IOException {
File inputHtml = new File("E:javaNorthjava-study-notejavaOpenSourcesrcmainresourcestest.html");
//加载html文件
Document document = Jsoup.parse(inputHtml, "UTF-8");
document.outputSettings().syntax(Document.OutputSettings.Syntax.html);
//引入资源目录,可以单独引入css,图片文件等
String baseUri = FileSystems.getDefault()
.getPath("javaOpenSourcesrcmainresources")
.toUri().toString();
try (OutputStream os = new FileOutputStream("javaOpenSourcesrcmainresourcestestOpenLeagueoflegends1.pdf")) {
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.withUri("javaOpenSourcesrcmainresourcestestOpenLeagueoflegends1.pdf");
builder.toStream(os);
builder.withW3cDocument(new W3CDom().fromJsoup(document), baseUri);
//引入指定字体,注意字体名需要和css样式中指定的字体名相同
builder.useFont(new File("javaOpenSourcesrcmainresourcesfontsmsyh.ttf"),"msyh",1,BaseRendererBuilder.FontStyle.NORMAL, true);
builder.run();
}
}
}
使用Java代码转换成PDF如下(示例中使用了微软雅黑中文字体):
上述html文件中增加如下 外部样式 :
< link href="style.css" rel="stylesheet" >
并在resources目录下添加style.css文件,重新生成PDF文件如下。
3. 总结
本片介绍了使用OpenPDF将html文件转换成PDF文件。同时也使用了自定义字体,外部样式。但是以下几点需要格外注意。
- Java代码中加载的字体名称要和HTML引用的CSS样式中的字体名相同 ({font-family:"msyh";})。
- HTML文件标签节点必须闭合().否则解析会失败。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开源软件
+关注
关注
0文章
204浏览量
15661 -
JAVA
+关注
关注
19文章
2904浏览量
102994 -
HTML
+关注
关注
0文章
273浏览量
29271 -
PDF
+关注
关注
1文章
163浏览量
33006
发布评论请先 登录
相关推荐
pdf转换成jpg软件如何使用
大家在工作中对不同的文件格式,都有是相当了解的。因为工作需要都是会进行编辑的。但为了提高工作效率,需要将文件与其它格式之间进行相互转换,那么pdf
发表于 10-26 10:56
怎么把图片jpg转换成pdf文件呢
,安装和启动的过程极为迅速。迅捷JPG转为PDF转换器,独立的PDF文件解析核心技术,使得软件本身可以更好地对文件内容进行深度识别,并最终
发表于 10-26 15:49
怎么用pdf转换软件将pdf转换成ppt格式
` pdf文件大多都是以图文并茂的形式出现的,所以很多朋友看到自己喜欢的pdf文件都想要将其转换成ppt幻灯片,这样能省不少事,但是
发表于 10-27 11:56
将pdf转换成jpg格式的快速转换方法
钟将pdf转换成jpg。 这里向大家推荐一个非常简单而又实用的方法,那就是使用迅捷PDF在线转换器这个软件就可以搞定了。这款软件可以完美的
发表于 10-28 11:27
jpg转换成pdf格式该如何转换比较简便
` jpg转换成pdf文件的简单步骤?我们现在生活在一个效率时代,为了工作上的需要,都会学习到很多新的技能,像是文件转换,这就是我们每天会
发表于 11-01 15:42
怎么将pdf转换成ppt格式的文件
目前我们处理的文件大部分是的PDF格式的,遇到这类文档,大家已经能熟练的掌握转换的技巧了,不过那些刚进公司的小白就不行了。那么今天就还是给大家介绍下怎么将
发表于 11-02 10:24
简单易掌握的pdf转换成word格式的方法
支持多种格式转换的软件,可将Word/Excel/PPT、JPG等格式的文件快速转换成PDF,也支持PDF转Office、图片、TXT、
发表于 11-03 11:04
pdf转换成ppt格式的详细转换方法
` pdf、word、excel、ppt等都是我们办公中常需要用到的文件格式,说到格式转换,大家可能对前几种比较熟悉,但是对于pdf转换成
发表于 11-04 10:37
最详细的方法教你如何将pdf转换成word格式
本帖最后由 1714472470 于 2016-11-18 11:51 编辑
在说过了那么多文件格式的转换方法后,发现大家最常用到的还是pdf转换成word格式,但是很多朋友
发表于 11-18 11:03
将pdf转换成可编辑的ppt转换器
为了完成教学的目的,有时需要把拷贝出来的PDF文件转换成可以编辑的PPT格式幻灯片,然后在PPT文档中进行修改编辑内容便可。今天就为大家介绍一款专业的PDF
发表于 03-17 15:11
迅捷CAD编辑器如何将CAD转换成PDF
,和光栅文件的导入,支持创建对dwg和dxf文件的关联。完美的支持CAD图形中文字体的显示。用最简单的操作将CAD转换成PDF。 一、软件
发表于 03-28 14:04
请问如何使用CAD手机看图软件将DWG格式图纸文件转换成PDF格式?
在使用CAD手机看图软件修改好CAD图纸后想要发送给其他人,怎么将手机中DWG格式图纸文件转换成PDF格式呢?接下来就给大家介绍一下CAD手机看图软件浩辰CAD看图王手机版中将DWG格
发表于 06-24 13:46
评论