iText 中文无法显示
/**
* 导出PDF工具com.lowagie.itext测试
*
* @param response
* @throws IOException
* @throws DocumentException
*/
@RequestMapping(value = "/emp/download/pdf", method = RequestMethod.GET)
public void downloadPdf(HttpServletResponse response) throws IOException, DocumentException {
// 设置编码
response.setCharacterEncoding("utf-8"); //设置响头部
response.setHeader("Content-Type","application/pdf");
//设置文件下载的默认名称
StringBuilder filename = new StringBuilder("attachment;filename=");
filename.append("employee["+new SimpleDateFormat("yyyyMMdd").format(new Date())+"].pdf");
response.setHeader("Content-Disposition", String.valueOf(filename)); //相关中文字体显示配置
//第一种:使用iTextAsian.jar包中的字体
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont); //第二种:使用Windows系统字体
BaseFont baseFont_zh = BaseFont.createFont("C:\\Windows\\Fonts\\STFANGSO.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font_zh = new Font(baseFont_zh); //第三种:使用资源字体,也就是自己下载的字体
BaseFont baseFont_resources = BaseFont.createFont("\\SIMYOU.TIF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
Font font_resources = new Font(baseFont_resources); Document document = new Document();
PdfWriter.getInstance(document, response.getOutputStream()); document.open(); List<Emp> all = empService.findAll(); for (Emp emp : all) {
PdfPTable pdfPTable = new PdfPTable(5); PdfPCell pdfPCell = new PdfPCell(); //注意这里 new Paragraph()
//第一个参数是内容,第二个参数是字体,这里font_zh对应的是Windows下的字体库的某种字体
//下同
pdfPCell.setPhrase(new Paragraph(String.valueOf(emp.getEmpId()),font_zh));
pdfPTable.addCell(pdfPCell);
document.add(pdfPTable); pdfPCell = new PdfPCell();
pdfPCell.setPhrase(new Paragraph(emp.getEmpName(),font_zh));
pdfPTable.addCell(pdfPCell);
document.add(pdfPTable); pdfPCell = new PdfPCell();
pdfPCell.setPhrase(new Paragraph(emp.getEmpGender(),font_zh));
pdfPTable.addCell(pdfPCell);
document.add(pdfPTable); pdfPCell = new PdfPCell();
pdfPCell.setPhrase(new Paragraph(emp.getEmail(),font_zh));
pdfPTable.addCell(pdfPCell);
document.add(pdfPTable); pdfPCell = new PdfPCell();
pdfPCell.setPhrase(new Paragraph(emp.getDepartment(),font_zh));
pdfPTable.addCell(pdfPCell);
document.add(pdfPTable);
} document.close(); ServletOutputStream outputStream = response.getOutputStream();
outputStream.flush();
outputStream.close(); }
LiveGreen(LC)
iText 中文无法显示的更多相关文章
- Firebug中调试中的js脚本中中文内容显示为乱码
Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...
- 解决 git 中文路径显示 unicode 代码的问题
解决 git 中文路径显示 unicode 代码的问题 当被修改的文件中带有中文字符时,中文字符会被转换为 unicode 代码,看不出原来的文件名. 这时,只要配置 :: git config -- ...
- plsql中文乱码显示问号的解决办法
问题现象: PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号????. 解决办法: 1. 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出: ...
- JSP 中文乱码显示处理解决方案
来源: <http://blog.csdn.net/joyous/article/details/1504274> JSP 中文乱码显示处理解决方案 分类: 所有 Web前端 J2EE20 ...
- 关于JAVA应用中文字体显示小方框的问题解决
最近碰到linux下jboss应用中中文字体显示为小方框: “在JRE 5以上的java环境中,java会自动加载$JAVA_HOME/jre/lib/fonts目录下的字体.链接或复制宋体或微软雅黑 ...
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
在加入 发布招聘功能的时候,出现问题了,就是修改招聘信息的时候.编辑器内容不显示,只显示英文,中文不显示,以前记得开发此功能没这问题啊!然后各种原因找不出,没办法,从编辑器函数入手,一步一步查,查到 ...
- jmeter随笔(5)--断言中正则表达式的特殊字符问题和中文乱码显示问号的问题
最近在工作中,对jmeter实践的点滴的记录,这里分享交流,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论,手机上图片如果不清晰,请点击[阅读原文]查看. 问题:今天QQ群一朋友遇到jmeter的 ...
- PLSQL:plsql中文乱码,显示问号
PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号???? 1. 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出
- IText 中文字体解决方案 生成doc文档
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar 亲测无误,代码如下: import com.lowagie.t ...
随机推荐
- python爬虫--cookie反爬处理
Cookies的处理 作用 保存客户端的相关状态 在爬虫中如果遇到了cookie的反爬如何处理? 手动处理 在抓包工具中捕获cookie,将其封装在headers中 应用场景:cookie没有有效时长 ...
- liunx搭建配置
预安装准备工具 yum -y install gcc gcc-c++ wget cmake 安装 软件存放目录: /lnmp/ 软件安装目录: /usr/local/ 1.下载安装PCRE wget ...
- Linux中的错误重定向你真的懂吗
在很多定时任务里.shell里我们往往能看到 "2>&1",却不知道这背后的原理. 举个例子: * 1 * * * test.sh > /dev/null 2& ...
- quartz定时定时任务执行两次
quartz框架没问题. 流程: sping-quartz配置 <?xml version="1.0" encoding="UTF-8"?> < ...
- 批量刷数据sql
update t_free_m** m set m.plate_no = ( select v.plate_num from t_wh_vehi*** v where v.vin = m.car_v ...
- LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现
首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点. 换句话说,就是两个点在这棵 ...
- Java创建文件夹、创建文件、上传文件,下载文件
1.创建文件夹 /** * 判断文件夹是否存在 * @param myPath */ public static void judeDirExists(File myPath) { if (!myPa ...
- java.lang.SecurityException: java.lang.IllegalStateException: java.io.FileNotFoundException:XXXXXX(系统找不到指定文件)
项目启动成功过,但访问页面抛出异常. 在Maven项目启动的时候,tomcat缓存机制没有吧maven jar除外的jar执行到项目里面,所有不要慌,项目重新启动就OK了, 如果这样还是不行的话就找到 ...
- Escape from the Hell
Escape from the Hell [JAG Asia 2016] 容易证明优先选择差值大的更优 对于最后一瓶我们可以枚举 枚举最后一瓶,然后在树状数组上消去它的影响,然后线段树check是否出 ...
- kubernets基于容器日志的报警和服务自动恢复
demo地址 https://github.com/cclient/kubernetes-filebeat-collector 高可用还谈不上,是对kubernete一种服务异常重启恢复的补充方案 之 ...