///////////////////////////////////主类//////////////////////////////////////////

package com.iText;

import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
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.PdfPTable;
import com.itextpdf.text.pdf.PdfPTableEvent;
import com.itextpdf.text.pdf.PdfWriter;

public class test2 {
public static void main(String[] args) {

Document document = new Document(PageSize.A4);
try {
BaseFont baseFontChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font fontChinese = new Font(baseFontChinese , 16 , Font.BOLD);
Paragraph title = new Paragraph("包间设备使用情况统计报表",fontChinese);
Paragraph title2 = new Paragraph(" ");
//设置标题格式对齐方式
title.setAlignment(Element.ALIGN_CENTER);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("F:/a.pdf"));
document.open();
BaseFont _baseFont = BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

PdfPTable table = new PdfPTable(7);
table.setHeaderRows(1);
PdfPTableEvent event = new AlternatingBackground();
table.setTableEvent(event);

table.getDefaultCell().setMinimumHeight(30);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);
/*int[] a = {18,18,58,68,18,18,18};
_tabGoods.setWidths(a);*/
table.setWidthPercentage(100);
// 添加标题行
//_tabGoods.setHeaderRows(2);
table.addCell(new Paragraph("序号", new Font(_baseFont)));
table.addCell(new Paragraph("商品名称", new Font(_baseFont)));
table.addCell(new Paragraph("自定义码", new Font(_baseFont)));
table.addCell(new Paragraph("规格", new Font(_baseFont)));
table.addCell(new Paragraph("数量", new Font(_baseFont)));
table.addCell(new Paragraph("单价", new Font(_baseFont)));
table.addCell(new Paragraph("小计", new Font(_baseFont)));
String[] _outTrades = {"序号1","商品名称2","自定义码355555","规格4","数量5","单价6","小计7"};
// 将商品销售详细信息加入表格
for(int i = 0; i < 30;) {
table.addCell(String.valueOf((++i)));
table.addCell(new Paragraph(_outTrades[1]+i, new Font(_baseFont)));
table.addCell(new Paragraph(_outTrades[2]+i, new Font(_baseFont)));
table.addCell(new Paragraph(_outTrades[3]+i, new Font(_baseFont)));
table.addCell(new Paragraph(_outTrades[4]+i, new Font(_baseFont)));
table.addCell(new Paragraph(_outTrades[5]+i, new Font(_baseFont)));
table.addCell(new Paragraph(_outTrades[6]+i, new Font(_baseFont)));
}
document.add(title);
document.add(title2);
document.add(table);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

//////////////////////////////////////////////////////////////////

///////////////////////////相间背景色的事件监听//////////////////////////

package com.iText;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPTableEvent;

public class AlternatingBackground implements PdfPTableEvent {

public void tableLayout(PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart, PdfContentByte[] canvases) {

int columns;
Rectangle rect;

//合适的颜色:(235,235,235)
int footer = widths.length - table.getFooterRows();
int header = table.getHeaderRows() - table.getFooterRows();
for (int row = header; row < footer; row += 2) {
columns = widths[row].length - 1;
rect = new Rectangle(widths[row][0], heights[row], widths[row][columns], heights[row + 1]);
rect.setBackgroundColor(new BaseColor(225,225,225));
rect.setBorder(Rectangle.NO_BORDER);
canvases[PdfPTable.BASECANVAS].rectangle(rect);
}
}

}

iText实现导出pdf文件java代码实现例子的更多相关文章

  1. Java导出pdf文件数据

    提示:导出pdf文件,需要3个jar包iText-2.1.5.jar,iTextAsian.jar,iText-rtf-2.1.4.jar. public boolean outputPdfJhsy( ...

  2. 史上最全的springboot导出pdf文件

    最近项目有一个导出报表文件的需求,我脑中闪过第一念头就是导出pdf(产品经理没有硬性规定导出excel还是pdf文件),于是赶紧上网查看相关的资料,直到踩了无数的坑把功能做出来了才知道其实导出exce ...

  3. 使用iText库创建PDF文件

    前言 译文连接:http://howtodoinjava.com/apache-commons/create-pdf-files-in-java-itext-tutorial/ 对于excel文件的读 ...

  4. asp.net2.0导出pdf文件完美解决方案【转载】

    asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式.这种文件格式与操作系统 ...

  5. .Net导出pdf文件,C#实现pdf导出

    最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本, ...

  6. .Net导出pdf文件,C#实现pdf导出 转载 http://www.cnblogs.com/hmYao/p/5842958.html

    导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本,之前下了个5.4的似乎不好用. 下载之后直接添加引用. <%@ Page Lan ...

  7. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  8. 纯前端导出pdf文件

    纯前端js导出pdf,已经用于生产环境. 工具: 1.html2canvas,一种让html转换为图片的工具. 2.pdfmake或者jspdf ,一种生成.编辑pdf,并且导出pdf的工具. pdf ...

  9. C# 利用ITextSharp导出PDF文件

    最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

随机推荐

  1. thinkphp或thinkcmf 《文章编辑,文章添加》 访问另一个表的分类,添加入另一个表时将id值以(,)逗号分隔储存,编辑时以(,)逗号分隔并且相等的id值被选中

      首页 显示 的控制器//网贷评级 public function grade(){ $archives = $this->archives_model->where(array('de ...

  2. @ControllerAdvice注解的使用

    package com.vcredit.ddcash.monitor.controller; import com.vcredit.ddcash.monitor.model.dto.Response; ...

  3. Book118免费下载文档方法

    在book118上下载文件时,对于小文件可以使用冰点文库下载器来下载,而对于大文件,则可以使用下面的方法: 需要用的工具: 1.360浏览器 2.点“全屏预览”,然后把鼠标放在“下载该文档”,右键“审 ...

  4. parent对象

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...

  5. opencv中 int main(int argc,char* argv[])详解

    opencv中  int main(int argc,char* argv[])详解 argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     ...

  6. [No0000184]JAVA语言学校的危险性

    下面的文章是More Joel on Software一书的第8篇. 原文: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools ...

  7. Java 输入/输出——处理流(ObjectIO)

    Object流:直接将Object流写入或读出. TestObjectIO.java transient关键字(英文名:透明的,可以用来修饰成员变量(实例变量),transient修饰的成员变量(实例 ...

  8. [daily][qemu][libvirt] 使用libvirt管理qemu

    别人创建的虚拟机.用libvirt做的配置. 我一直是手写qemu脚本的,不会用virtsh,所以,学一下. ------------------ 先来个arch的文档: https://wiki.a ...

  9. [cloud][OVS][sdn] Open vSwitch 初步了解

    What is Open vSwitch? Open vSwitch is a production quality, multilayer virtual switch licensed under ...

  10. [development][semaphore] 信号量/信号灯/信号标/旗语

    前言: 接续前节 [development][C] 条件变量(condition variables)的应用场景是什么 之前讨论了条件变量的问题, 已经知道在逻辑上, 条件变量(管程)(moniter ...