java中html字符串如何完美转换成pdf文件

java中html字符串如何完美转换成pdf文件,第1张

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)

ArrayList<ArrayList>p = HTMLWorker.parseToList(dome_2(htmlCode), st)

for(int k=0k<p.size()k++){

for(int m=0m<p.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

}

其实此处和别人的最大的不一样的是,

ArrayList<ArrayList>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)这样就能解决中文问题了

document.getElementById("你想修改的标签的ID").innerHTML

这是换里面的HTML代码

document.getElementById("你想修改的标签的ID").text

可以换里面的text

document.getElementById("你想修改的标签的ID").value

可以换里面的值


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5942596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-09
下一篇 2023-03-09

发表评论

登录后才能评论

评论列表(0条)

保存