java-pdf-itext 生成pdf 文档(支持中文字体)

itext 版本:2.1.7

package com.demo.preview;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import org.junit.Test;

import org.springframework.format.annotation.DateTimeFormat;

import com.lowagie.text.Document;

import com.lowagie.text.DocumentException;

import com.lowagie.text.Font;

import com.lowagie.text.Paragraph;

import com.lowagie.text.pdf.AcroFields;

import com.lowagie.text.pdf.BaseFont;

import com.lowagie.text.pdf.PdfCopy;

import com.lowagie.text.pdf.PdfImportedPage;

import com.lowagie.text.pdf.PdfReader;

import com.lowagie.text.pdf.PdfStamper;

import com.lowagie.text.pdf.PdfWriter;

import com.sun.tools.corba.se.idl.StringEntry;

import me.grass.extend.DateExtend;

import me.grass.extend.PathExtend;

import me.grass.extend.StringExtend;

/**

*

* @author xxj

* @version 创建时间:2017年4月28日 上午9:47:30

*/

public class ITextPdfTest {

@Test

public void createPdf() {

// 生成的新文件路径

String fileName = StringExtend.format("itext-pdf-{0}.pdf", DateExtend.getDate("yyyyMMddHHmmss"));

String newPDFPath = PathExtend.Combine("D:/Temp/pdf/", fileName);

BaseFont bf;

Font font = null;

Document document = new Document();

try {

//字体

String font_cn = getChineseFont();

bf = BaseFont.createFont(font_cn+",1", //注意这里有一个,1

BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

font = new Font(bf,12);

//生成

PdfWriter.getInstance(document, new FileOutputStream(newPDFPath));

document.open();

document.add(new Paragraph("hello word"));

document.add(new Paragraph("你好,世界!",font));

document.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 获取中文字体位置

* @return

* @author xxj 2017年4月28日

*/

private String getChineseFont(){

//宋体(对应css中的 属性 font-family: SimSun; /*宋体*/)

String font1 ="C:/Windows/Fonts/simsun.ttc";

//判断系统类型,加载字体文件

java.util.Properties prop = System.getProperties();

String osName = prop.getProperty("os.name").toLowerCase();

System.out.println(osName);

if (osName.indexOf("linux")>-1) {

font1="/usr/share/fonts/simsun.ttc";

}

if(!new File(font1).exists()){

throw new RuntimeException("字体文件不存在,影响导出pdf中文显示!"+font1);

}

return font1;

}

}

java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)相关推荐

  1. java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)

    java使用iText 生成PDF全攻略,包括创建文档,设置字体,添加表格(PdfPTable),创建新页(newPage),设置布局,加密 主要使用的jar包: itextpdf-5.4.2.jar ...

  2. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  3. java pdf 首行缩进_java使用iText生成pdf文档的对齐方式

    一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...

  4. java跳出pages为空,itext生成PDF出错java.io.IOException: The document has no pages

    itext生成PDF报错java.io.IOException: The document has no pages. 其他的当获取到的list不为空是,不会报错,当获取到的list为空时,直接到cl ...

  5. itext生成pdf间距_使用itext生成pdf

    在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过 在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到 ...

  6. java itext 生成word文档

    /**       *  创建word文档 步骤:          * 1,建立文档          * 2,创建一个书写器          * 3,打开文档          * 4,向文档中 ...

  7. Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

  8. java如何根据模板填充数据生成word文档

    java根据模板填充数据生成word文档 这篇文章干什么? 思路总览 1.准备word模板 2.转换文件格式 3.编写代码 补充--下载流 这篇文章干什么?   使用代码将word模板内容进行替换,并 ...

  9. java接口注释_Java的注释和API文档

    Java 语言的注释一共有三种类型: 单行注释 多行注释 文档注释 一.单行注释和多行注释 单行注释就是在程序中注释一行代码,在 Java 语言中,将双斜线(//)放在需要注释的内容之前就可以了 : ...

最新文章

  1. 作为西二旗程序员,我是这样学习的.........
  2. JZOJ 5466. 【NOIP2017提高A组冲刺11.9】玩游戏
  3. 【APICloud系列|4】APP设计统一图标大小的方法
  4. python创建只包含一个元素的元组时_Python中声明只包含一个元素的元组数据方法...
  5. ios kvo 要引入_腾讯社招iOS面试记录
  6. 常见的软件测试缺陷分类:遇到测试缺陷怎么处理?
  7. 中文字体字号和磅数的转化
  8. 在板子上电后自动运行程序
  9. snprintf与sprintf的区别
  10. 淄博联海城企业文件图纸数据信息透明加密系统
  11. 10 GridView 样式属性
  12. spss和python财务数据分析_用SPSS做数据分析?先弄懂SPSS的基础知识吧
  13. 银行代收代付代扣业务
  14. Linux下常用的串口助手 —— minicom、putty、cutecom
  15. BestCoder Round #16
  16. SaltStack组件return和job cache以及salt-ssh
  17. IIS启动就报错:发生意外错误0x8ffe2740
  18. RPG手机游戏道具、物品、装备表设计
  19. 从语音通话和视频通话两个方面搭建专属于自己的私有化部署的视频会议通话系统
  20. 残差连接(skip connect)/(residual connections)

热门文章

  1. R语言使用magick包的image_write函数将已有图像以任何指定的格式导出保存到磁盘上(例如将原文将从png转化为jpeg)
  2. R语言构建xgboost模型:使用xgboost构建泊松回归(poisson regression)模型
  3. R绘制直方图(Histogram)
  4. TED+如何让压力成为朋友+如何面对压力决定你的未来
  5. 奇异值分解SVD和偏最小二乘奇异值分解PLSSVD
  6. vim+快捷键+常用+命令
  7. 编译+构建+链接+运行之间的关系分析
  8. 中国科学技术大学研究生基因组学考试复习提要
  9. 基因组关联分析中的交互作用研究
  10. DNA测序,第一代DNA测序,第二代DNA测序,第三代DNA测序,sanger法