所需依赖:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.offcn</groupId>
<artifactId>iText</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.3</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.0.3</version>
</dependency>
</dependencies>
</project>
所需代码:
import com.itextpdf.io.font.FontConstants;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfDocumentInfo;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.property.TextAlignment;
import org.junit.Test;
import java.io.FileNotFoundException;
import java.io.IOException;
public class HelloPdf {
/**
* 普通pdf文档
* @throws IOException
*/
@Test
public void test1() throws IOException {
//1.创建pdfWrite
PdfWriter writer = new PdfWriter("D:\\javaphoto\\PDF\\1.pdf");
//2.创建PDFDocement对象
PdfDocument pdfdocument = new PdfDocument(writer);
//3.创建Document对象
Document document = new Document(pdfdocument);
//向Document对象写入内容
document.add(new Paragraph("ABCDEFGHIJKLMN!!!"));
document.close();
}
运行结果:
/**
* 通过Document构造器pdf设置文档属性
* @throws FileNotFoundException
*/
@Test
public void test2() throws FileNotFoundException {
//1.创建pdfWrite
PdfWriter pdfwriter = new PdfWriter("D:\\javaphoto\\PDF\\2.pdf");
//2.创建PDFDocement对象
PdfDocument pdfdocument = new PdfDocument(pdfwriter);
//3.通过pdfdocument对象获取到pdfdocumentInfo
PdfDocumentInfo info = pdfdocument.getDocumentInfo();
//设置文档作者
info.setAuthor("王辉");
//设置文档创建人
info.setCreator("小辉辉");
//设置文档关键字,多个关键字用逗号隔开
info.setKeywords("java语言,c#语言,PHP语言");
//设置文档主题
info.setSubject("文档主题");
//设置文档标题
info.setTitle("文档标题");
Document doc = new Document(pdfdocument, PageSize.A4);
System.out.println("生成成功!!!!");
doc.add(new Paragraph("document info"));
doc.close();
}
运行结果:
/**
* 向pdf文档添加文件
* @throws IOException
*/
@Test
public void test3() throws IOException {
//1.创建pdfWrite
PdfWriter writer = new PdfWriter("D:\\javaphoto\\PDF\\3.pdf");
//2.创建PDFDocement对象
PdfDocument pdfdocument = new PdfDocument(writer);
Document doc = new Document(pdfdocument);
//3.创建段落对象
Paragraph pa = new Paragraph("java1223!!!!!!!!");
//设置文字对齐方式居中
pa.setTextAlignment(TextAlignment.CENTER);
//创建pdf字体
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
//为段落对象指定字体
pa.setFont(font);
//设置字体颜色
pa.setFontColor(Color.RED);
//设置字体大小
pa.setFontSize(50);
//把段落对象添加到Document对象
doc.add(pa);
doc.close();
System.out.println("添加成功!!!!!");
}
/**
* PDF解决乱码问题
* @throws IOException
*/
@Test
public void test4() throws IOException {
//1.创建pdfWrite
PdfWriter writer = new PdfWriter("D:\\javaphoto\\PDF\\4.pdf");
//2.创建PDFDocement对象
PdfDocument pdfdocument = new PdfDocument(writer);
Document doc = new Document(pdfdocument);
//创建支持中文字体
PdfFont font= PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H",false);
doc.setFont(font);
doc.add(new Paragraph("我爱你java语言!!!!!"));
doc.close();
System.out.println("生成成功!!!!!!");
}
}