itextpdf5操作表格
下面是一些对表格排版的常用方法,是在制作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(); }
}
itextpdf5操作表格的更多相关文章
- jquery操作表格 合并单元格
jquery操作table,合并单元格,合并相同的行 合并的方法 $("#tableid").mergeCell({ cols:[X,X] ///参数为要合并的列}) /** * ...
- DOM操作表格
前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量 ...
- DOM系列---DOM操作表格
DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是H ...
- Jqgrid入门-操作表格的数据(二)
上一篇中,Jqgrid已经可以从服务端获得数据,并显示在Grid表格中了.下面说一下,如何操作表格及其数据. jqGrid有很多方法函数,用来操作数据或者操作Grid表格本身.jq ...
- 第一百一十五节,JavaScript,DOM操作表格
JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...
- JavaScript(第二十天)【DOM操作表格及样式】
DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table& ...
- Javascript高级编程学习笔记(45)——DOM 操作表格及DOM动态集合
操作DOM表格 早些时候,HTML 还是以表格布局为主, 所以DOM操作表格是比较重要的一点 但是现如今 有其它的选择,所以表格的操作也就慢慢地淡出了人们的视线 所以这里也就不过多去详细展开,这里也就 ...
- JavaScript--DOM操作表格及样式(21)
一 操作表格 // <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTMLDOM来操作它; // 使用DOM来创建表格; var table = d ...
- 超级简单的jquery操作表格(添加/删除行、添加/删除列)
利用jquery给指定的table添加一行.删除一行 <script language="javascript" src="./jquery.js"> ...
随机推荐
- [日常] 神奇的引导问题deepin与win10
经过昨天的一番折腾,我的电脑一开机就可以进入deepin的引导界面,也可以登录到deepin,但是访问windows直接报错.我的windows已经使用PE安装完了win10,还是打不开. 当我在研究 ...
- Python股票历史数据的获取
获取股票数据的接口很多,免费的接口有新浪.网易.雅虎的API接口,收费的就是证券公司及相应的公司提供的接口.收费试用的接口一般提供的数据只是最近一年或三年的,限制比较多,除非money足够多.所以本文 ...
- axios+vue实现动态渲染员工数据+数据是对象
<style> table{ width: 600px; margin: 0 auto; text-align: center; border-collapse: collapse; /* ...
- 【cf600】E. Lomsat gelral(dsu on tree)
传送门 题意: 求子树众数. 思路: \(dsu\ on\ tree\)模板题,用一个桶记录即可. 感觉\(dsu\ on\ tree\)这个算法的涉及真是巧妙呀,保留重链的信息,不断暴力轻边,并且不 ...
- CentOs篇
Advanced-高级配置.Security-安全.Boot-启动引导: 1.Removable Devices-移动设备 2.Hard Drive-本地硬盘 3.CD-ROM- Drive-光盘 4 ...
- Vue入门案例(二)
创建一个 .html 文件,然后通过如下方式引入 Vue: <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.js ...
- 剑指Offer-9.变态跳台阶(C++/Java)
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设我们要求跳上第3级的跳法,可以从第0级跳3级台阶到达,也可以从第1级 ...
- x2
#include<stdio.h> int main () { int days; printf("输入一个整数:\n"); scanf("%d", ...
- [LOJ 2718][UOJ 393][BZOJ 5415][NOI 2018]归程
[LOJ 2718][UOJ 393][BZOJ 5415][NOI 2018]归程 题意 给定一张无向图, 每条边有一个距离和一个高度. 再给定 \(q\) 组可能在线的询问, 每组询问给定一个点 ...
- Django-compressor压缩静态文件,逆天!!!!!
使用django-compressor压缩混淆静态文件 使用django-compressor压缩混淆静态文件 使用django-compressor压缩混淆静态文件 django-compresso ...