今天给各位分享javahtml转pdf乱码的知识,其中也会对Javahtml转pdf进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java中html字符串如何完美转换成pdf文件2、怎样用Java把html转为pdf3、java将html文件转成pdf
java中html字符串如何完美转换成pdf文件
1、首先导入itext的jar包,
然后直接上代码
private static void versionsone(String htmlCode, String pdfPath){
Document document = new Document();
try{
StyleSheet st = new StyleSheet();
st.loadTagStyle(“body”, “leading”, “16,0”);
PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
document.open();
BaseFont bfChinese = BaseFont.createFont(“STSong-Light”, “UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
ArrayListArrayList p = HTMLWorker.parseToList(dome_2(htmlCode), st);
for(int k=0;kp.size();k++){
for(int m=0;mp.get(k).size();m++){
Paragraph pCode = new Paragraph(p.get(k).get(m).toString(),FontChinese);
document.add(pCode);
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
document.close();
}
}
private static Reader dome_2(String htmlCode){
if(htmlCode != null !htmlCode.trim().equals(“”)){
try{
InputStream tInputStringStream = new ByteArrayInputStream(htmlCode.getBytes());
InputStreamReader isr = new InputStreamReader(tInputStringStream,”utf-8″);
BufferedReader reader = new BufferedReader(isr);
return reader;
}catch(Exception e){
e.printStackTrace();
}
}
return null;
}
其实此处和别人的最大的不一样的是,
ArrayListArrayList p = HTMLWorker.parseToList(dome_2(htmlCode), st);
其实刚刚开始我在网上找来的代码中是这样写的“ArrayList p = HTMLWorker.parseToList(dome_2(htmlCode), st);”
但后来我通过debug发现,ArrayList 里面装的还是一个集合,然后集合中放得才是真正不含html标签的字符串。对于普通得文章,一般html标签一般都是p/p
占大多数。所以我直接用了两层for循环直接从里面取得我们想要的字符串。然后直接“Paragraph pCode = new Paragraph(p.get(k).get(m).toString(),FontChinese);”document.add(pCode);这样就能解决中文问题了
怎样用Java把html转为pdf
java中利用第三方jar包iText 5.4.2就可以实现html转为pdf。
比如有如下index.html文件:
!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”
html
head
titleHTML to PDF/title
link href=”style.css” rel=”stylesheet” type=”text/css” /
/head
body
h1HTML 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
tdiText – Java HTML to PDF/td
/tr
tr
thURL/th
td;/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!” );
}
}
转换结果:
java将html文件转成pdf
可以通过使用Spire.Doc for Java进行转换。
首先需要安装Spire.Doc for Java。可在 Java 程序中添加 Spire.Doc for Java 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件。
repositories
repository
idcom.e-iceblue/id
namee-iceblue/name
url;/url
/repository/repositoriesdependencies
dependency
groupIde-iceblue/groupId
artifactIdspire.doc/artifactId
version5.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.XHTMLValidationType;public 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);
}
}
希望对您有帮助。
关于javahtml转pdf乱码和Javahtml转pdf的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。