在项目中遇到的需求,要求生成动态PDF表格文件,有标题 表格 注释 下面数步骤及代码,还没有完全完善,多行的合并,一直没有找到合适的方法去实现,如果有方法欢迎交流:
在eclipse 中的代码编写
分布式,后端代码的实现:
在maven 下导入依赖
导入依赖:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<!--输出中文,还要引入下面itext-asian.jar包 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
一个 main方法 实现表格的生成:
package pdfTest;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
/**
*
- Description :
- Author:xiaokeai
- Create Date: 2019年8月8日 下午2:30:57
*/
public class printPdfTest {
@SuppressWarnings("static-access")//抑制警告
public static void main(String[] args) throws Exception {
PdfUtil pdfutil=new PdfUtil();
// 创建文本
// Document document = new Document(PageSize.A3, 50, 50, 50, 50);// 上下左右页边距
Document document = new Document(PageSize.A3, 70,70, 60, 60);
try {
// 写入文本到文件中 文件生成地址:D盘
PdfWriter.getInstance(document, new FileOutputStream(
"D:\\测试PDF.pdf"));
//打开文本
document.open();
//字体类型 编码方式(horizontal H水平方向 vertical V垂直方向) 是否支持pdf
BaseFont baseFont = BaseFont.createFont("C:\\Windows\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
BaseFont baseFontHei = BaseFont.createFont("C:\\Windows\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
// 标题
Font font = new Font(baseFontHei,Font.BOLD,1);// 段落加粗的字体格式
Font font2 = new Font(baseFontHei);// 字体 fax使用的字体格式
Paragraph paragraph = new Paragraph(10);// 边距
// 1 2 3 中右左
paragraph.setAlignment(1); // 对齐方式
font.setSize(15);// 字体大小
paragraph.setFont(font);// 设置段落字体
Chunk chunk = new Chunk("测试PDF");
paragraph.add(chunk);
document.add(paragraph);
Paragraph paragraph1 = new P