zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    HDU 4462 DFS
    HorizontalScrollView的使用演示样例
    编程之美读书笔记1.1——让CPU占用率曲线听你的指挥
    flume 日志导入elasticsearch
    2、COCOS2D-X内存管理机制
    cocos2d js ScrollView的使用方法
    程序中涉及到时间的相关问题
    【转】Android的onCreateOptionsMenu()创建菜单Menu详解
    【转】Android 菜单(OptionMenu)大全 建立你自己的菜单--不错
    【转】onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
  • 原文地址:https://www.cnblogs.com/ldl326308/p/10961616.html
Copyright © 2011-2022 走看看