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 ...
随机推荐
- javascript中的location的用法
javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面 location.href= ...
- zookeeper以及集群的搭建
今天我来写一写zookeeper集群的搭建流程 1.zookeeper的搭建不难,难的是对他的理解以及良好的使用.单机版的zookeeper只需要解压后直接命令 启动即可 解压zookeeper,ta ...
- @Component, @Repository, @Service,@Controller的区别
@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理 @Componen ...
- vscode Cannot edit in read-only editor.
原因 使用了runcode插件 这个错误一般出现在使用命令行输入的时候出现. 但是output页面是只读的,只能输出,不能用来输入. 解决 解放方法是,将run code设置为在Teminal中运行: ...
- 参考JDK1.8源码,自己写一个类似于ArrayList的动态数组
1. ArrayList的基本实现原理 ArrayLiST其内部用一个普通数组来存储数据,当此数组不够容纳新添加的元素的时候,则创建一个更大长度的新数组,并将原来数组中的元素复制到新数组中. 2.Ar ...
- css 传数据套路
<input type=hidden> 那么该标签就不会显示 但是我们可以用这个标签储存数据 这是一个利用标签元素隐藏
- 【转】我们为什么要使用 Markdown
目录 从前码字时我们面临着什么困境 标记语言显神威 到底什么是 Markdown 所以为什么我们要使用 Markdown Markdown 简明语法 段落和换行 标题 区块引用 列表 强调 代码标识和 ...
- ant design vue 时间选择器只能到最大日期
<a-date-picker :disabledDate="disabledEndDate" style="width: 100%" placehold ...
- js变量的相关要点
如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量. JavaScript 变量生命周期在它声明时初始化. 局部变量在函数执行完毕后销毁. 全局变量在页面关闭后销毁.
- centos7 安装gdb (调试nginx)
首先卸载原有的gdb,sudo yum remove gdb 从gnu官网下载最新的gdb源文件,wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.1.t ...