使用itext将html生成pdf中文换行问题解决方案2
来源:互联网 发布:java多线程并发视频 编辑:程序博客网 时间:2024/05/29 17:37
前面的文章《使用itext将html生成pdf中文换行问题解决方案》是使用itext2.0.8版本实现,这里使用itext5.4.2实现,这里用到了itext-asian.jar和xmlworker-5.4.2.jar的支持,最新版的实现会比较简单:贴上代码:
import com.itextpdf.text.BaseColor;import com.itextpdf.text.Font;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.tool.xml.XMLWorkerFontProvider;public class AsianFontProvider extends XMLWorkerFontProvider { public Font getFont(final String fontname, final String encoding,final boolean embedded, final float size, final int style,final BaseColor color) { BaseFont bf = null; try { bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); } catch (Exception e) { e.printStackTrace(); } Font font = new Font(bf, size, style, color); font.setColor(color); return font; }}
建立这个Font是为了解决中文问题,下面看主类的Java代码:
import java.io.ByteArrayInputStream;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.PageSize;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.tool.xml.XMLWorkerHelper;public class HtmlToPDF { public static void main(String[] args) { try { Document document = new Document(PageSize.LETTER); PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("c://temp//testpdf.pdf")); document.open(); document.addAuthor("ysjiang"); document.addCreator("ysjiang"); document.addSubject("test"); document.addCreationDate(); document.addTitle("XHTML to PDF"); XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); String str = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" + "<html xmlns=\"http://www.w3.org/1999/xhtml\">" + "<head>" + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" + "<title>HTML 2 PDF</title>" + "<style type=\"text/css\">" + "<!--" + "body {" + "margin: 20px;" + "}" + "-->" + "</style>" + "</head>" + "<body>" + "<div style=\"width:90%; height:160px;\">多情浪漫的人,其实内心的情感是非常脆弱的,感情的末梢,有那么一点儿敏感,还有那么一点儿想入非非。所以和浪漫多情的人在一起,言语一定要斯文,说话不能像火炮,态度一定要温柔、语气也要婉转。遇到对方的一个眼神,也许有些人并没发现什么端倪,但是放在懂得浪漫的人身上,就会体会出万种滋味,百般柔情来。" + "</div>" + "<hr/>" + "<table cellspacing=\"0\" cellpadding=\"0\" style=\"width:100%; border:1px;\">" + " <tr>" + " <td style=\"width:30%\">table中的中文显示及换行" + " </td>" + " <td>多情浪漫的人,其实内心的情感是非常脆弱的,感情的末梢,有那么一点儿敏感,还有那么一点儿想入非非。所以和浪漫多情的人在一起,言语一定要斯文,说话不能像火炮,态度一定要温柔、语气也要婉转。遇到对方的一个眼神,也许有些人并没发现什么端倪,但是放在懂得浪漫的人身上,就会体会出万种滋味,百般柔情来。" + " </td>" + " </tr>" + " <tr>" + " <td colspan=\"2\">" + " <img src=\"0.jpg\" />" + " </td>" + " </tr>" + "</table>" + "</body>" + "</html>"; // worker.parseXHtml(pdfWriter, document, new FileInputStream("C:\\tmp\\a.htm"), null, new AsianFontProvider()); worker.parseXHtml(pdfWriter, document, new ByteArrayInputStream(str.getBytes()), null, new AsianFontProvider()); document.close(); } catch (Exception e) { e.printStackTrace(); } }}
这里只是举例了字符串的情况,注释的那句话可以自己验证html的方式,很简单的。。。
源码下载链接:http://download.csdn.net/detail/jys1109/5676345
- 使用itext将html生成pdf中文换行问题解决方案
- 使用itext将html生成pdf中文换行问题解决方案2
- itext将html转pdf中文支持
- itext转换html成pdf,支持中文,并且中文换行
- itext html 生成pdf
- itext使用html标签生成pdf文件
- java使用iText生成pdf:解决中文
- IText 导出PDF 中文问题解决
- PDF生成方案之iText
- 通过iText将html转换成pdf中文乱码问题
- 生成pdf,使用itext
- 使用itext生成pdf
- itext 将html转成pdf
- 利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题
- iText – 使用Java将HTML转换为PDF
- itext+flying saucer 生成PDF不换行
- 使用freemaker和itext从html模板生成pdf文件
- iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题
- WHERE 关键字无法与合计函数一起使用
- poj 1679 The Unique MST
- 流媒体开发之-服务器图片的加载
- spring jar包详解及jar包下载
- Myeclipse SVN错误:Error validating server certificate for https//
- 使用itext将html生成pdf中文换行问题解决方案2
- 微信--了解与试水与使用之间的差距是未知的
- Linux系统调用中的参数验证
- 超简单的NDK单步调试方法
- netty websocket 后台消息推送
- .net 静态化
- HTML&CSS学习笔记
- HDU 2057 A + B Again
- (数论)HDU 4596 Yet another end of the world题解