因为是普通javaweb项目里面想要实现这个功能,所以我选择本地下载jar包以后添加到项目库。
在这一步骤里面,因为网上好多都是maven项目来导入依赖,所以我只能是按名字去官网下载相关jar包,英文不佳还是费了不少事儿。
以下是需要导入的包,必需的是圈起来的三个。
导入包之后,就可以写个测试类来实现一个简单的测试。
import com.itextpdf.io.font.PdfEncodings;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import org.junit.jupiter.api.Test;
import java.io.File;
public class test2 {
public static final String DEST="C:/Users/mi/Desktop/csdn/result/pdf/pdf1.pdf";
public static void main(String[] args) throws Exception {
File file =new File(DEST);
file.getParentFile().mkdirs();
createPdf(DEST);
}
public static void createPdf(String dest) throws Exception{
//Initialize PDF writer
PdfWriter writer=new PdfWriter(dest);
//Initialize PDF document
PdfDocument pdf=new PdfDocument(writer);
// Initialize document
Document document=new Document(pdf);
//Add paragraph to the document
Paragraph paragraph = new Paragraph("我是一个PDF22");
document.add(paragraph);
//Close document
document.close();
}
}
在这中间还涉及到了,一个中文不显示的问题,后面发现是中文字体它不会显示,会显示为空白,导致写出的的PDF文件只留下了英文。
需要手动添加一个中文字体。这里我选择的是添加Windows系统自带的一个宋体。
获取字体路径的方法如下: 右键->属性->复制就行
然后在测试代码中添加两句
PdfFont documentFont=PdfFontFactory.createFont("C:/Windows/Fonts/simsun.ttc,1", PdfEncodings.IDENTITY_H,true);
//在创建paragraph 之后添加
paragraph.setFont(documentFont).setFontSize(12);
网上很多都没有提起第一个添加字体的方法需要设置一个“,1”,不设置这个他也不起作用。