java中将含有html标签的字符串转成pdf并解决中文问题

在网上看到了很多类似的转pdf文件,但大多都是直接将整个html转成pdf,经过自己的整理,终于实现了用自己的方法将含有pdf标签的字符串转成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); 
            ArrayList<ArrayList> p = HTMLWorker.parseToList(dome_2(htmlCode), st);            
            for(int k=0;k<p.size();k++){
            for(int m=0;m<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);这样就能解决中文问题了

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值