1、需要的jar
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
</dependency>
导入jar相对版本要高,最好不要使用之前老版本的jar,主要是api和之前所属公司不一样(原公司被收购),导致部分jar有问题。特别是对于中文的处理
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
代码是这句对中文处理,查看 BaseFont 源码 public static final String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"; 可以找到这句这主要就是 中文包放的地方 UniGB-UCS2-H 就是出来中文的,可以打开jar看以上文件夹中有没有 UniGB-UCS2-H 开头的文件,如果有就没有问题,没有就会报错的。
2、目前处理PDF有两种,一个是PDF全部由代码生成 这个比较灵活生成的PDF几乎没有什么局限性但是全部都是代码来写比较麻烦,另一个就是通过 Adobe Acrobat 编辑 表单 这种主要对PDF格式固定大小一样使用代码较少缺点就是要使用Adobe Acrobat来编辑表单主要还是这是一个收费软件(简单的说这个就是填空的方式,不能超出你所预留的地方)。今天主要来说第一种。
直接上代码: 不足之处还望指出。
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import co