可以通过使用Spire.Doc for Java进行转换。
首先需要安装Spire.Doc for Java。可在 Java 程序中添加 Spire.Doc for Java 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository></repositories><dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>5.2.3</version>
</dependency></dependencies>
具体分为以下两种情况:
HTML String另存为PDF格式
Java代码如下:
import com.spire.doc.*import java.io.*public class htmlStringToWord {
public static void main(String[] args) throws Exception {
String inputHtml = "InputHtml.txt"
//新建Document对象
Document document = new Document()
//添加section
Section sec = document.addSection()
String htmlText = readTextFromFile(inputHtml)
//添加段落并写入HTML文本
sec.addParagraph().appendHTML(htmlText)
//文档另存为PDF
document.saveToFile("HTMLstringToPDF.pdf", FileFormat.PDF)
}
public static String readTextFromFile(String fileName) throws IOException{
StringBuffer sb = new StringBuffer()
BufferedReader br = new BufferedReader(new FileReader(fileName))
String content = null
while ((content = br.readLine()) != null) {
sb.append(content)
}
return sb.toString()
}
}
2.HTML file另存为PDF格式
import com.spire.doc.*import com.spire.doc.documents.XHTMLValidationTypepublic class htmlFileToWord {
public static void main(String[] args) throws Exception {
//加载HTML文档
Document document = new Document()
document.loadFromFile("InputHtmlFile.html", FileFormat.Html, XHTMLValidationType.None)
//文档另存为PDF
document.saveToFile("Result.pdf",FileFormat.PDF)
}
}
希望对您有帮助。
java中利用第三方jar包iText 5.4.2就可以实现html转为pdf。
比如有如下index.html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span>5.4.2 <span class="description">converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
样式文件:
h1 {
color:#ccc
}
table tr td{
text-align:center
border:1px solid gray
padding:4px
}
table tr th{
background-color:#84C7FD
color:#fff
width: 100px
}
.itext{
color:#84C7FD
font-weight:bold
}
.description{
color:gray
}
后台转换的接口:
package com.hmkcode
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
import com.itextpdf.text.Document
import com.itextpdf.text.DocumentException
import com.itextpdf.text.pdf.PdfWriter
import com.itextpdf.tool.xml.XMLWorkerHelper
public class App
{
public static void main( String[] args ) throws DocumentException, IOException
{
// step 1
Document document = new Document()
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf"))
// step 3
document.open()
// step 4
XMLWorkerHelper.getInstance().parseXHtml(writer, document,
new FileInputStream("index.html"))
//step 5
document.close()
System.out.println( "PDF Created!" )
}
}
转换结果: