下面是一些对表格排版的常用方法,是在制作pdf的时候通过查看ipa和一些博客积累下来的。

包括,表格的宽度,对齐方式,表的页眉页脚,前后间距,padding;

单元格对齐方式,线条设置,段落于单元格之间的间距,单元格里面的文本的行间距设置。

这些是通过查看ipa记录其中的一部份,还有很多已于理解的ipa没有记录。

package dbzx.pdf;

import java.io.FileNotFoundException;
import java.io.FileOutputStream; import org.junit.Test; import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter; public class AllTableMethod { @Test
public void createTable() throws FileNotFoundException, DocumentException {
String FONT = "C:/WINDOWS/Fonts/simsun.ttc,0";
Font textFont = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED,10,Font.NORMAL,BaseColor.BLACK);
String path = "E:/demo/pdfCreat/"+System.currentTimeMillis()+".pdf";//输出pdf的路径
Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(path));
doc.open();
PdfPTable table = new PdfPTable(4);
//设置控制
table.setSpacingBefore(40);//表格前间距
table.setSpacingAfter(100);//表格后间距
table.setWidthPercentage(80);//表格宽占page比例
table.setHorizontalAlignment(Element.ALIGN_LEFT);//表格水平对齐方式
/*
* 设置构成标题的顶部行数。只有当表被添加到文档并且表跨页时,这个header才有意义。
*/ table.setHeaderRows(2);
/*
* 设置页脚要使用的行数。页脚的数量从页眉行中减去。例如,对于一个有两个页眉行和一个页脚行的表,代码应该是:
* table.setHeaderRows (3);
* table.setFooterRows (1);
* 第0行和第1行是页眉行,第2行是页脚行。
*/
table.setFooterRows(1);
table.setPaddingTop(10f);//设置表格顶部padding
//设置单元格
/**
* getDefaultCell()得到的Cell代表所有不是table.add(PdfPCell)的Cell。例:table.add(new Paragraph("test")).
*/
table.getDefaultCell().setVerticalAlignment(Element.ALIGN_TOP);//单元格中文字垂直对齐方式
table.getDefaultCell().setBorderColor(BaseColor.WHITE);//单元格线条颜色
table.getDefaultCell().setMinimumHeight(30);//单元格最小高度
table.getDefaultCell().setExtraParagraphSpace(5);//段落文字与表格之间的距离,底部距离
table.getDefaultCell().setLeading(15, 0);//设置行间距
// table.getDefaultCell().setFixedHeight(20f);//表格固定高度
for(int i=0;i<16;i++) {
table.addCell(new Paragraph("test"));
}
doc.add(table);
doc.close(); }
}

最新文章

  1. STL之deque
  2. Only Link: Inheritance and the prototype chain
  3. VB CreateObject转C#
  4. if you end up with a boring miserable life
  5. BZOJ2159 : Crash 的文明世界
  6. Ubuntu下装QQ2014
  7. 解决SecureCRT连接linux超时后断开
  8. 如何获取web中某个元素的id
  9. ubuntu 安装配置JDK
  10. Git存储用户名和密码(明文需谨慎)
  11. .net中的设计模式---单例模式,涉及lock的用法
  12. MyBatis-Generator 逆向工程(生成异常缺少部分的方法)
  13. jenkins部署
  14. vue基础01
  15. Ansible(三) - playbook简介
  16. 从JVM角度看i++ 与++i
  17. kmeans算法思想及其python实现
  18. 最详细的Windows平台安装MongoDB教程
  19. Python数据处理与计算——概述
  20. pywin32安装教程

热门文章

  1. C++ 基础语法 快速复习笔记(3)---重载函数,多态,虚函数
  2. 5.Python网络编程_通过继承实现多线程
  3. C++学习四 冒泡排序法的一些改进
  4. Vue生命周期钩子---3
  5. python 给多人发送邮件,且将结果添加为附件
  6. luoguP3071 [USACO13JAN]座位Seating
  7. jacoco统计自动化代码覆盖率
  8. 3.jenkins--- 配置
  9. ADB端口5037被占用 导致adb 停止工作
  10. zz《分布式服务架构 原理、设计与实战》综合