- 浏览: 100962 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
kingcs:
IndexSearcher 没有关闭。 searcher.cl ...
lucene第一步---6.分页 -
xyheritrix:
看了后我没一点点刺激,你的3个例子对我根本说明不了问题,在我看 ...
从优秀迈向卓越 -- 我的设计模式学习感悟 -
zl0828:
这个小知识值得分享,我支持lz分享
jquery ui 1.7版中的datepicker大小問題
iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将 XML、Html文件转化为PDF文件。 iText的安装非常方便,在http://www.lowagie.com/iText/download.html - download 网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。
网站 :
官方网站 : http://www.lowagie.com/iText/
api : http://www.1t3xt.info/api/
步骤 : 首先下载需要的 jar 包 , 主要有三个 , 将这 3 个包导入到我们的 web 项目的 lib 目录下 , 就可以使用 itext 生成 标准的 pdf 文档了
iText.jar : 必须的 jar 包
iTextAsian.jar : 支持中文的 jar 包
bcprov-jdk15-140.jar : pdf 文档加密所要使用的一个包
例子 : 生成一个 HelloWord !:
用iText生成PDF文档需要5个步骤:
①建立com.lowagie.text.Document对象的实例。 Document document = new Document();
②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));
③打开文档。 document.open();
④向文档中添加内容。 document.add(new Paragraph("Hello World"));
⑤关闭文档。 document.close();
通过上面的5个步骤,就能产生一个Helloworld.PDF的文件,文件内容为"Hello World"。
如何支持中文 :
在这里我们的的解决思路是将字体构造成中文的 , 然后在需要中文的时候 , 使用该字体完成对中文的支持
BaseFont bf=null;
//定义标题中文标题字体
Font fontTopic = null;
//定义黑色字体
Font fontBlack=null;
bf = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
fontTopic = new Font(bf, 14, Font.NORMAL,Color.BLUE);
fontBlack = new Font(bf, 6, Font.NORMAL,Color.BLACK);
首先要定义一个基础字体BaseFont bf , 用他构建一个可以书写中文的字体 , 其他字体如fontTopic , fontBlack 可以在这个字体上构建 , 给他加入一些新的特性 , 比如字体大小 , 颜色 , 在构建好以后 , 就可以使用这些字体了 , 用他们来书写中文
设置文档页面大小 , 页面布局
// 在 new 文档的时候 , 可以使用下面的构造方法 , 传递纸的大小 , 左边距 , 右边距 , 上边距 , 下边距
Document document = new Document(PageSize.A4,60,60,50,50);
添加段落 :
// 使用字体fontTopic
1. Paragraph p= new Paragraph("套餐论证指标",fontTopic);
//设置段落对其方式为居中,1-居中,2-具右,默认具左
2. p.setAlignment( 1 );
3. document.add(p);
如果我们需要页面布局 , 比如在标题下面和表格上面有一些空白 , 我门可以用几个空段落来实现这个目标 , 也是 3 步
Paragraph p1= new Paragraph(" ",fontTopic);
p1.setAlignment(1);
document.add(p1);
添加表格 :
1.Tab le table = new Table(8); // 构造一个有 8 列的表格
//设置列宽
1.int headerwidths[] = {20, 22, 22, 10, 11, 11, 11, 10};
2.tab le.setWidths(headerwidths);
3.tab le.setWidth(110);
4.tab le.setPadding(3); / /设置表格中cell相对表格的大小,值越大生成表格的cell越大
5.Cel l cell=new Cell(new Paragraph("商品名称", fontRed)); // 给表格里添加一个 cell
table.addCell(cell);
1.// 如果要设置下一个 cell 占 3 列 则可以
2.cel l= new Cell(new Paragraph(""));
cell.setColspan(2);
table.addCell(cell);
1.// 最后记得 2.document.add (table);
3.document .close();
在我们构造我们需要的表格的样子时候 , 我们最好一行一行构造 , 在有行跨多列的时候 , 我们可以使用setColspan (?), 这样我们就可以清晰的构造出我们想要的表格的样式了 , 不要一会构造行 , 一会构造列 , 到最后就乱了
设置图片 :
1.Ima ge jpgBack = Image.getInstance("logo.gif");
2.jpg Back.setAbsolutePosition(3, 768); // 设置图片的左上角的坐标为 ( 3, 768 ), 注意屏幕左下脚的坐标为 (0,0)
3.pgB ack.setAlignment(Image.UNDERLYING);
4.doc ument.add(jpgBack);
设置水印图片和水印文字
水印图片和水印文字主要是给已经存在的 pdf 文档中添加的 , 假设我们的目录下有Chap010 1 .pdf 文档 , 现在我们要给这个文档添加水印图片和水印文字
PdfReader reader = new PdfReader("Chap0101.pdf ");
PdfContentByte under; // 文档起始页
PdfContentByte over; // 文档结束页
Image img = Image.getInstance("watermark.jpg");
// 设置图片显示的位置
img.setAbsolutePosition(200, 500);
//水印效果一定是给一个已经存在的文档加的,加好以后要另起一个名字
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("Chap0102.pdf "));
under = stamp.getUnderContent(1);
under.addImage(img);
over = stamp.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 30);
over.showTextAligned(Element.ALIGN_LEFT, " 套
餐
分
析", 220, 500, 45);
over.endText();
stamp.close();
//删除以前没有水印文件
File file =new File("Chap0101.pdf");
if(file.exists())
{
file.delete();
}
设置密码 :
设置密码也是在写之前就要先设置密码 , 主要是在得到PdfWriter 对象后 , 就开始对文档加密
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("Chap0102.pdf "));
writer.setEncryption(PdfWriter.STRENGTH128BITS, " user ", " 8366 ", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
然后进行其他操作
完整的在套餐分析中使用 itext 的代码以及显示效果 :
public class NewPDF
{
public static void main(String[] args)
{
BaseFont bf=null;
//定义标题中文标题字体
Font fontTopic = null;
//定义黑色字体
Font fontBlack=null;
//定义红色字体
Font fontRed=null;
try
{
bf = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
fontTopic = new Font(bf, 14, Font.NORMAL,Color.BLUE);
fontBlack = new Font(bf, 6, Font.NORMAL,Color.BLACK);
fontRed = new Font(bf, 6, Font.NORMAL,Color.RED);
Document document = new Document(PageSize.A4,60,60,60,50);
PdfWriter.getInstance(document, new FileOutputStream ("Chap0101.pdf"));
document.open();
//使用自定义的中文段落字体
Paragraph p= new Paragraph("套餐论证指标",fontTopic);
//添加两行空行
Paragraph p1= new Paragraph(" ",fontTopic);
Paragraph p2= new Paragraph(" ",fontTopic);
//设置段落对其方式为居中,1-居中,2-具右,默认具左
p.setAlignment(1);
p1.setAlignment(1);
p2.setAlignment(1);
document.add(p);
document.add(p1);
document.add(p2);
//设置图片
Image jpgBack = Image.getInstance("logo.gif");
jpgBack.setAbsolutePosition(3, 768);
jpgBack.setAlignment(Image.UNDERLYING);
document.add(jpgBack);
//设置表格为8行
Table table = new Table(8);
//设置列宽
int headerwidths[] = {20, 22, 22, 10, 11, 11, 11, 10};
table.setWidths(headerwidths);
table.setWidth(110);
//设置表格中cell相对表格的大小,值越大生成表格的cell越大
table.setPadding(2);
Cell cell=new Cell(new Paragraph("商品名称", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("商称的值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph(""));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("宽表", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("时间", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新客数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("纯理性条件下本网预计目标客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("纯数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("合理性条件下本网预计目标客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("合数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("最大可能损失指标", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("最标值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("本网客户收益", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("收益值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户收益", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("信益值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("挽留客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("挽值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("发展预计", fontRed));
cell.setColspan(8);
table.addCell(cell);
cell= new Cell(new Paragraph("", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("纯理性条件下本网预计目标客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("合理性条件下本网预计目标客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("最大可能损失(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("本网客户收益(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户收益(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("挽留客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("第一月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("第二月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("第三月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
document.add(table);
document.close();
PdfReader reader = new PdfReader("Chap0101.pdf");
PdfContentByte under;
PdfContentByte over;
Image img = Image.getInstance("watermark.jpg");
img.setAbsolutePosition(200, 500);
//水印效果一定是给一个已经存在的文档加的,加好以后要另起一个名字
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("Chap0102.pdf"));
//设置密码,给文档写之前就要先设定密码,并且设置为可拷贝,可打印
stamp.setEncryption(PdfWriter.STRENGTH128BITS, "userpass", "8366", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
under = stamp.getUnderContent(1);
under.addImage(img);
over = stamp.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 30);
over.showTextAligned(Element.ALIGN_LEFT, " 套
餐
分
析", 220, 500, 45);
over.endText();
stamp.close();
//删除以前没有水印文件
File file =new File("Chap0101.pdf");
if(file.exists())
{
file.delete();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/virus026/archive/2010/09/13/5881075.aspx
网站 :
官方网站 : http://www.lowagie.com/iText/
api : http://www.1t3xt.info/api/
步骤 : 首先下载需要的 jar 包 , 主要有三个 , 将这 3 个包导入到我们的 web 项目的 lib 目录下 , 就可以使用 itext 生成 标准的 pdf 文档了
iText.jar : 必须的 jar 包
iTextAsian.jar : 支持中文的 jar 包
bcprov-jdk15-140.jar : pdf 文档加密所要使用的一个包
例子 : 生成一个 HelloWord !:
用iText生成PDF文档需要5个步骤:
①建立com.lowagie.text.Document对象的实例。 Document document = new Document();
②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));
③打开文档。 document.open();
④向文档中添加内容。 document.add(new Paragraph("Hello World"));
⑤关闭文档。 document.close();
通过上面的5个步骤,就能产生一个Helloworld.PDF的文件,文件内容为"Hello World"。
如何支持中文 :
在这里我们的的解决思路是将字体构造成中文的 , 然后在需要中文的时候 , 使用该字体完成对中文的支持
BaseFont bf=null;
//定义标题中文标题字体
Font fontTopic = null;
//定义黑色字体
Font fontBlack=null;
bf = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
fontTopic = new Font(bf, 14, Font.NORMAL,Color.BLUE);
fontBlack = new Font(bf, 6, Font.NORMAL,Color.BLACK);
首先要定义一个基础字体BaseFont bf , 用他构建一个可以书写中文的字体 , 其他字体如fontTopic , fontBlack 可以在这个字体上构建 , 给他加入一些新的特性 , 比如字体大小 , 颜色 , 在构建好以后 , 就可以使用这些字体了 , 用他们来书写中文
设置文档页面大小 , 页面布局
// 在 new 文档的时候 , 可以使用下面的构造方法 , 传递纸的大小 , 左边距 , 右边距 , 上边距 , 下边距
Document document = new Document(PageSize.A4,60,60,50,50);
添加段落 :
// 使用字体fontTopic
1. Paragraph p= new Paragraph("套餐论证指标",fontTopic);
//设置段落对其方式为居中,1-居中,2-具右,默认具左
2. p.setAlignment( 1 );
3. document.add(p);
如果我们需要页面布局 , 比如在标题下面和表格上面有一些空白 , 我门可以用几个空段落来实现这个目标 , 也是 3 步
Paragraph p1= new Paragraph(" ",fontTopic);
p1.setAlignment(1);
document.add(p1);
添加表格 :
1.Tab le table = new Table(8); // 构造一个有 8 列的表格
//设置列宽
1.int headerwidths[] = {20, 22, 22, 10, 11, 11, 11, 10};
2.tab le.setWidths(headerwidths);
3.tab le.setWidth(110);
4.tab le.setPadding(3); / /设置表格中cell相对表格的大小,值越大生成表格的cell越大
5.Cel l cell=new Cell(new Paragraph("商品名称", fontRed)); // 给表格里添加一个 cell
table.addCell(cell);
1.// 如果要设置下一个 cell 占 3 列 则可以
2.cel l= new Cell(new Paragraph(""));
cell.setColspan(2);
table.addCell(cell);
1.// 最后记得 2.document.add (table);
3.document .close();
在我们构造我们需要的表格的样子时候 , 我们最好一行一行构造 , 在有行跨多列的时候 , 我们可以使用setColspan (?), 这样我们就可以清晰的构造出我们想要的表格的样式了 , 不要一会构造行 , 一会构造列 , 到最后就乱了
设置图片 :
1.Ima ge jpgBack = Image.getInstance("logo.gif");
2.jpg Back.setAbsolutePosition(3, 768); // 设置图片的左上角的坐标为 ( 3, 768 ), 注意屏幕左下脚的坐标为 (0,0)
3.pgB ack.setAlignment(Image.UNDERLYING);
4.doc ument.add(jpgBack);
设置水印图片和水印文字
水印图片和水印文字主要是给已经存在的 pdf 文档中添加的 , 假设我们的目录下有Chap010 1 .pdf 文档 , 现在我们要给这个文档添加水印图片和水印文字
PdfReader reader = new PdfReader("Chap0101.pdf ");
PdfContentByte under; // 文档起始页
PdfContentByte over; // 文档结束页
Image img = Image.getInstance("watermark.jpg");
// 设置图片显示的位置
img.setAbsolutePosition(200, 500);
//水印效果一定是给一个已经存在的文档加的,加好以后要另起一个名字
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("Chap0102.pdf "));
under = stamp.getUnderContent(1);
under.addImage(img);
over = stamp.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 30);
over.showTextAligned(Element.ALIGN_LEFT, " 套
餐
分
析", 220, 500, 45);
over.endText();
stamp.close();
//删除以前没有水印文件
File file =new File("Chap0101.pdf");
if(file.exists())
{
file.delete();
}
设置密码 :
设置密码也是在写之前就要先设置密码 , 主要是在得到PdfWriter 对象后 , 就开始对文档加密
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("Chap0102.pdf "));
writer.setEncryption(PdfWriter.STRENGTH128BITS, " user ", " 8366 ", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
然后进行其他操作
完整的在套餐分析中使用 itext 的代码以及显示效果 :
public class NewPDF
{
public static void main(String[] args)
{
BaseFont bf=null;
//定义标题中文标题字体
Font fontTopic = null;
//定义黑色字体
Font fontBlack=null;
//定义红色字体
Font fontRed=null;
try
{
bf = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
fontTopic = new Font(bf, 14, Font.NORMAL,Color.BLUE);
fontBlack = new Font(bf, 6, Font.NORMAL,Color.BLACK);
fontRed = new Font(bf, 6, Font.NORMAL,Color.RED);
Document document = new Document(PageSize.A4,60,60,60,50);
PdfWriter.getInstance(document, new FileOutputStream ("Chap0101.pdf"));
document.open();
//使用自定义的中文段落字体
Paragraph p= new Paragraph("套餐论证指标",fontTopic);
//添加两行空行
Paragraph p1= new Paragraph(" ",fontTopic);
Paragraph p2= new Paragraph(" ",fontTopic);
//设置段落对其方式为居中,1-居中,2-具右,默认具左
p.setAlignment(1);
p1.setAlignment(1);
p2.setAlignment(1);
document.add(p);
document.add(p1);
document.add(p2);
//设置图片
Image jpgBack = Image.getInstance("logo.gif");
jpgBack.setAbsolutePosition(3, 768);
jpgBack.setAlignment(Image.UNDERLYING);
document.add(jpgBack);
//设置表格为8行
Table table = new Table(8);
//设置列宽
int headerwidths[] = {20, 22, 22, 10, 11, 11, 11, 10};
table.setWidths(headerwidths);
table.setWidth(110);
//设置表格中cell相对表格的大小,值越大生成表格的cell越大
table.setPadding(2);
Cell cell=new Cell(new Paragraph("商品名称", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("商称的值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph(""));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("宽表", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("时间", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新客数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("纯理性条件下本网预计目标客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("纯数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("合理性条件下本网预计目标客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("合数值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("最大可能损失指标", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("最标值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(6);
table.addCell(cell);
cell= new Cell(new Paragraph("本网客户收益", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("收益值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户收益", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("信益值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("挽留客户数", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("挽值", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("", fontBlack));
cell.setColspan(2);
table.addCell(cell);
cell= new Cell(new Paragraph("发展预计", fontRed));
cell.setColspan(8);
table.addCell(cell);
cell= new Cell(new Paragraph("", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("纯理性条件下本网预计目标客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("合理性条件下本网预计目标客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("最大可能损失(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("本网客户收益(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("新增客户收益(元)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("挽留客户数(个)", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("第一月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("第二月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("第三月", fontRed));
table.addCell(cell);
cell= new Cell(new Paragraph("值1", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值2", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值3", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值4", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值5", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
cell= new Cell(new Paragraph("值7", fontBlack));
table.addCell(cell);
document.add(table);
document.close();
PdfReader reader = new PdfReader("Chap0101.pdf");
PdfContentByte under;
PdfContentByte over;
Image img = Image.getInstance("watermark.jpg");
img.setAbsolutePosition(200, 500);
//水印效果一定是给一个已经存在的文档加的,加好以后要另起一个名字
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("Chap0102.pdf"));
//设置密码,给文档写之前就要先设定密码,并且设置为可拷贝,可打印
stamp.setEncryption(PdfWriter.STRENGTH128BITS, "userpass", "8366", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
under = stamp.getUnderContent(1);
under.addImage(img);
over = stamp.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 30);
over.showTextAligned(Element.ALIGN_LEFT, " 套
餐
分
析", 220, 500, 45);
over.endText();
stamp.close();
//删除以前没有水印文件
File file =new File("Chap0101.pdf");
if(file.exists())
{
file.delete();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/virus026/archive/2010/09/13/5881075.aspx
发表评论
-
DynaClass,DynaBean使用 .
2011-07-26 11:35 1060DynaClass/DynaBean 这似乎是BeanUti ... -
利用Javascript 得到客户端的浏览器版本、操作系统等信息
2011-03-29 12:46 988<!----------javascript获取客户端i ... -
JS的正则表达式
2011-02-23 13:31 617JS的正则表达式 //校验是否全由数字组成 funct ... -
通过el表达式和jstl格式化当前时间
2011-01-25 10:50 1623通过el表达式和jstl格式化当前时间 可以用jstl里面的f ... -
POI 打印设置
2011-01-17 13:03 1723# 关于POI的打印设置: # # 转自http:/ ... -
tomcat servlet与web.xml的配置说明
2011-01-07 09:42 3084tomcat servlet与web.xml的配置说明 先总 ... -
HashMap & List 排序
2011-01-06 16:52 900首先是HashMap: HashMap map = ... -
Java获取各种常用时间方法
2010-12-24 12:29 565package com.hefeng.test; i ... -
freemarker 入门学习手册
2010-11-02 00:39 785freemarker 官方文档 http://freemark ... -
commons.dbutils1.2介绍及使用
2010-11-02 00:24 1205一、结构介绍 高层结构图: wrappers包: ... -
如何用ResourceBundle来读取配置文件
2010-10-12 11:28 737对于java基础很好的人来说,这个应该是简单的不能再简单的了。 ... -
Beginning lucene
2010-10-11 14:18 718Beginning lucene 关键字: lu ... -
apache commons DbUtils
2010-10-11 13:27 811apache commons DbUtils 关键字: apa ... -
Apache Commons Configuration/FileUpload
2010-10-11 13:24 7832008-07-04 Apache Commons Confi ...
相关推荐
在使用iText生成PDF目录时,要注意几点: - 确保每个书签都有一个对应的目标位置,否则在PDF中点击书签可能无法正确跳转。 - 避免内存泄漏,尤其是在处理大量书签时,要及时释放资源。 - 书签层次不宜过深,以免影响...
为了解决"Java使用Itext生成PDF中文不换行"的问题,我们可以采取以下几种策略: 1. **设置字体和编码**:确保使用支持中文的字体,如SimSun、Arial Unicode MS等,并正确设置PDF的编码为UTF-8。Itext中的`Font`类...
这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的场景中非常有用。 首先,让我们了解FreeMarker。FreeMarker是一个基于模板的语言,...
在这个场景中,我们将探讨如何利用iText在Android应用中生成PDF以及读取PDF的内容。 首先,我们需要在Android项目中引入iText库。由于Android Studio默认使用Gradle作为构建工具,我们可以在`build.gradle`文件的...
以下是一些关于如何使用iText生成PDF的关键知识点: 1. **安装与获取iText**: 要使用iText,首先需要从其官方源代码托管平台SourceForge下载相应的.jar文件。基础的iText.jar提供了基本的PDF生成功能,但如果你...
"itext-2.1.7源码包以及 解决iText生成pdf时中文标点存在行首问题的修改class" 这个标题提到了两个关键点。首先,`itext-2.1.7`是开源Java库iText的一个版本,用于创建、修改和操作PDF文档。这个版本的源码包提供了...
**iText生成PDF实例详解** 在信息技术领域,PDF(Portable Document Format)文件因其跨平台、易阅读和保真性等特点,被广泛应用于文档共享和交流。而iText是一款开源的Java库,它允许开发者轻松地创建、修改和操作...
2. **创建PDF文档**:使用iText生成PDF的第一步是创建一个PdfWriter实例,然后基于该实例创建一个Document对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new ...
iText生成pdf解决中文不显示字库,pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一...
用itext方法生成 与Word一样的目录
iText生成PDF图片文档 iText是一个功能强大的Java类库,用于生成PDF文档。通过使用iText,我们可以轻松地生成PDF文档,包括图片、文字、表格等多种元素。本文将详细介绍如何使用iText生成PDF图片文档。 iText基本...
对于初学者来说,掌握使用iText生成PDF文档中的表格、一维条形码和图片是一项基本技能。此外,需要注重代码中字符串的准确性,避免由于扫描或输入错误导致的问题。熟练掌握iText库的使用,可以使开发者在处理PDF文件...
【Itext生成PDF详解】 Itext是一个用于生成PDF文档的Java库,对于.NET环境,有对应的iTextSharp库。在创建PDF文档时,通常需要经过五个步骤,这在描述中已有详细阐述。以下是对这些步骤的详细解释: 1. **创建...
本篇将详细介绍如何使用iText生成PDF,以及所需的jar包。 首先,我们需要理解iText库的核心功能。iText允许开发者通过编程方式创建PDF文档,支持添加文本、图像、表格、链接、样式和布局等多种元素。它还提供了高级...
这个压缩包提供了使用Itext生成PDF所需的全部Jar包,确保你可以一次性导入所有必要的依赖。 1. **Itext核心组件**: - `kernel`:这是Itext的核心模块,提供了基本的PDF文档操作功能,如创建、打开、修改PDF文档,...
里面包含两个demo实例,分别是itext-pdf生成pdf的,一个是itext-rtf生成word的。其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table...
document.add(new Paragraph("这是使用IText生成的PDF文档!")); document.close(); } catch (DocumentException | IOException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Document`对象...
接下来,我们来看看如何生成PDF报表。首先,创建一个新的PDF文档需要一个`Document`对象,这将作为整个PDF的容器: ```java Document document = new Document(); ``` 然后,我们需要一个`PdfWriter`实例,它负责将...
用itext生成pdf文档,生成的内容有表格形式,文本形式,设置字体样式,文档页边距。
总结一下,要实现在Spring Boot应用中使用iText生成带有页眉、页码、水印、目录和二维码的PDF,你需要: 1. 引入iText及相关库。 2. 创建HTML页面并将其转换为PDF。 3. 定制PDF内容,包括添加页眉、页码和水印。 4. ...