IText 生成简单表格(报表)doc文档 单元居中
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar
亲测无误,代码如下所示:
import com.lowagie.text.*;
import com.lowagie.text.Font;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.rtf.RtfWriter2; import java.awt.*;
import java.io.FileOutputStream; /**
* 生成报修系统的报表doc文档
* User: HYY
* Date: 13-8-1
* Time: 下午9:54
* To change this template use File | Settings | File Templates.
*/
public class GenerateBaoxiu {
public static void main(String[] args) throws Exception {
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置纸张的大小对象
Rectangle rectangle = new Rectangle(PageSize.A4);
// 创建word文档,并旋转,使其横向
Document document = new Document(rectangle.rotate());
RtfWriter2.getInstance(document, new FileOutputStream("C:/無幽之路IText教程.doc"));
document.open();
//报表标题
Paragraph headTitle = new Paragraph("学期报修报表");
Font headFont = new Font(bfChinese);
headFont.setSize(22);
headFont.setStyle(Font.BOLD);
headTitle.setFont(headFont);
headTitle.setAlignment(1);//居中
document.add(headTitle); //正文表格
PdfPTable table = new PdfPTable(10);
table.setWidths(new float[]{15f,9f,9f,9f,11f,8f,20f,15f,9f,9f});
table.setTotalWidth(114); //设置表头字体样式
Font tableHeadFont = new Font(bfChinese);//表头字体样式
tableHeadFont.setSize(10.5f);//设置表头字体为五号字体
tableHeadFont.setStyle(Font.BOLD);//加粗 //表头第一列:表单申请时间
PdfPCell headCell1 = new PdfPCell();
Paragraph headCell1Phrase = new Paragraph("表单申请时间");
headCell1Phrase.setFont(tableHeadFont);
headCell1.setPhrase(headCell1Phrase);
headCell1Phrase.setAlignment(1);
headCell1.setHorizontalAlignment(1); //表头第二列:申请人
PdfPCell headCell2 = new PdfPCell();
Paragraph headCell2Phrase = new Paragraph("申请人");
headCell2Phrase.setFont(tableHeadFont);
headCell2.setPhrase(headCell2Phrase);
headCell2Phrase.setAlignment(1);
headCell2.setHorizontalAlignment(1); //表头第三列:维修人
PdfPCell headCell3 = new PdfPCell();
Paragraph headCell3Phrase = new Paragraph("维修人");
headCell3Phrase.setFont(tableHeadFont);
headCell3.setPhrase(headCell3Phrase);
headCell3Phrase.setAlignment(1);
headCell3.setHorizontalAlignment(1); //表头第四列:后勤人
PdfPCell headCell4 = new PdfPCell();
Paragraph headCell4Phrase = new Paragraph("后勤人");
headCell4Phrase.setFont(tableHeadFont);
headCell4.setPhrase(headCell4Phrase);
headCell4Phrase.setAlignment(1);
headCell4.setHorizontalAlignment(1); //表头第五列:设备类型
PdfPCell headCell5 = new PdfPCell();
Paragraph headCell5Phrase = new Paragraph("设备类型");
headCell5Phrase.setFont(tableHeadFont);
headCell5.setPhrase(headCell5Phrase);
headCell5Phrase.setAlignment(1);
headCell5.setHorizontalAlignment(1); //表头第六列:维修设备
PdfPCell headCell6 = new PdfPCell();
Paragraph headCell6Phrase = new Paragraph("维修设备");
headCell6Phrase.setFont(tableHeadFont);
headCell6.setPhrase(headCell6Phrase);
headCell6Phrase.setAlignment(1);
headCell6.setHorizontalAlignment(1); //表头第七列:维修地点
PdfPCell headCell7 = new PdfPCell();
Paragraph headCell7Phrase = new Paragraph("维修地点");
headCell7Phrase.setFont(tableHeadFont);
headCell7.setPhrase(headCell7Phrase);
headCell7Phrase.setAlignment(1);
headCell7.setHorizontalAlignment(1); //表头第八列:维修完成时间
PdfPCell headCell8 = new PdfPCell();
Paragraph headCell8Phrase = new Paragraph("维修完成时间");
headCell8Phrase.setFont(tableHeadFont);
headCell8.setPhrase(headCell8Phrase);
headCell8Phrase.setAlignment(1);
headCell8.setHorizontalAlignment(1); //表头第九列:维修评价
PdfPCell headCell9 = new PdfPCell();
Paragraph headCell9Phrase = new Paragraph("维修评价");
headCell9Phrase.setFont(tableHeadFont);
headCell9.setPhrase(headCell9Phrase);
headCell9Phrase.setAlignment(1);
headCell9.setHorizontalAlignment(1); //表头第十列:维修费用
PdfPCell headCell10 = new PdfPCell();
Paragraph headCell10Phrase = new Paragraph("维修费用");
headCell10Phrase.setFont(tableHeadFont);
headCell10.setPhrase(headCell10Phrase);
headCell10Phrase.setAlignment(1);
headCell10.setHorizontalAlignment(1); table.addCell(headCell1);
table.addCell(headCell2);
table.addCell(headCell3);
table.addCell(headCell4);
table.addCell(headCell5);
table.addCell(headCell6);
table.addCell(headCell7);
table.addCell(headCell8);
table.addCell(headCell9);
table.addCell(headCell10);
//表头添加完毕 //添加表格体
for(int i=0; i<1000; i++) {
table.addCell("");
}
document.add(table); //页脚段落
Paragraph paraFooter = new Paragraph();
Font font = new Font();
//页脚的字体大小
font.setSize(12f);
font.setColor(new Color(0, 0, 0));
paraFooter.setFont(font);
paraFooter.setAlignment("center");
//页脚的段落和是否有页码
HeaderFooter footer = new HeaderFooter(paraFooter, true);
//页脚的对齐方式(应该在footer设置而不是段落中设置)
footer.setAlignment(1);
document.setFooter(footer); document.close();
} }
IText 生成简单表格(报表)doc文档 单元居中的更多相关文章
- itext 生成doc文档 小结(自己备忘)
1.引入maven <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</ ...
- IText 生成横向的doc文档
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar 亲测无误,代码如下: import com.lowagie.t ...
- IText 中文字体解决方案 生成doc文档
IText生成doc文档需要三个包:iTextAsian.jar,iText-rtf-2.1.4.jar,iText-2.1.4.jar 亲测无误,代码如下: import com.lowagie.t ...
- 使用FastReport报表工具生成报表PDF文档
在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...
- Java中常用到的文件操作那些事(一)——替换doc文档模板,生成真实合同案例
工作中,我们时常会遇到一些操作文件的操作,比如在线生成合同模板,上传/下载/解析Excel,doc文档转为pdf等操作.本文就已工作中遇到的在线生成合同为例,简要地介绍一种文档替换写法. 本文目的:给 ...
- doc文档生成带目录的pdf文件方法
准备软件: 福昕PDF阅读器 下载地址:http://rj.baidu.com/soft/detail/12882.html?ald 安装福昕PDF阅读器,会自动安装pdf打印机. 准备好设置好各级标 ...
- poi读取word2003(.doc文档)中的表格
poi读取word2003(.doc文档)中的表格 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API.在网上见到好多通过po ...
- java标识符,关键字,注释及生成Doc文档
# java语法基础 ## 标识符,关键字与注释 ### 标识符 1.类名,变量名,方法名都称为标识符. 2.命名规则:(1):所有的标识符都应该以字母(AZ,或者az)美元符($)或者下划线(_)开 ...
- Java eclipse生成doc文档
这里讲解下eclipse成为doc文档,首先代码: /** * @author szy * @version 1.0 */ package com.founder.sun; class Cat{ pu ...
随机推荐
- 【转】C# 后台开启 cmd执行命令
private void RunCmd(string cmd) { System.Diagnostics.Process p = new System.Diagnostics. ...
- 定制的Server-Sent Events 聊天服务器
//匿名聊天服务器 //将新的消息POST到/chat地址,或者以GET形式从通一个URL获取文本或事件流 //创建一个GET请求到"/"来返回一个简单的HTML文件,这个文件包括 ...
- 实现android支持多线程断点续传下载器功能
多线程断点下载流程图: 多线程断点续传下载原理介绍: 在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度手机端下载数据时难免会出现无信号断线.电量不足等情况,所以需要断点续传功能根据下 ...
- 如何在IOS开发中在自己的framework中添加.bunble文件
今天就跟大家介绍一下有关,如何在IOS开发中在自己的framework中添加.bunble文件,该文章我已经在IOS教程网(http://ios.662p.com)发布过来,个人觉得还是对大家有帮助的 ...
- linux find 反转 查找没有被找到的结果
在linux下,有时候需要找一些文件,还有时候这些文件格式不够统一和规范,但是需要排除的那些文件却格式统一,就可以使用find命令的反转功能 一般用find查找文件的命令是: find . -name ...
- 深入mongoDB(1)--mongod的线程模型与网络框架
最近工作需要开始研究mongoDB,我准备从其源代码角度,对于mongod和mongos服务的架构.sharding策略. replicaset策略.数据同步容灾.索引等机制做一个本质性的了解.其代码 ...
- 基于api安全性的解决处理方案
api解决用户安全主要采用两种方案: 一.使用token识别用户信息,作为识别用户的凭证 1.为什么使用token? 常规性的pc站点,使用session存储用户登录状态. 即用户登录之后,服务端会生 ...
- jdbc学习(一)——SqlServer、Oracle和MySQL
一.jdbc介绍 jdbc全称:java数据库连接(Java Database Connectivity),是sun公司定义的一套访问数据库的规范(接口和类,由各种数据库公司进行实现),主要放在jav ...
- JSP 隐藏对象
[摘要] 隐藏对象用在jsp表达式和脚本中,不能直接用在jsp声明中,因为这些隐藏对象是容器在jspservice方法中定义的,在这个方法中定义的变量不能在jsp声明中使用.可以通过参数方法将 ...
- There is a legend about a bird
There is a legend about a bird which sings just once in its life, more sweetly than any other ...