首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

pdf开发偏题

2012-12-21 
pdf开发难点1.生成PDF的5个步骤a.创建一个Document实例  Document document new Document()b.将Documen

pdf开发难点

1.生成PDF的5个步骤
a.创建一个Document实例
  Document document = new Document();
b.将Document实例和文件输出流用PdfWriter类绑定在一起
  PdfWriter.getInstance(document,new FileOutputStream("HelloWorld.pdf"));
c.打开文档
  document.open();
d.在文档中添加文字
  document.add(new Paragraph("Hello World"));
e.关闭文档
  document.close();
这样5个步骤,就可以生成一个PDF文档了

?

2.输出中文

? 首先需要下载iTextAsian.jar包,可以到iText的主站上下,ireport也是需要这个包的。然后定义中文字体:

? BaseFont?bfChinese?=?BaseFont.createFont("STSong-Light",
??????????????????"UniGB-UCS2-H",?BaseFont.NOT_EMBEDDED);
??FontChinese?=?new?Font(bfChinese,?12,?Font.NORMAL);
?

3.设置PDF横向显示和打印

Rectangle?rectPageSize?=?new?Rectangle(PageSize.A4);//?定义A4页面大小
rectPageSize?=?rectPageSize.rotate();//?加上这句可以实现A4页面的横置
Document?doc?=?new?Document(rectPageSize,50,50,50,50);//4个参数,设置了页面的4个边距?????????????????????

?

4.显示页码

? 复杂的页码显示和水印添加,需要使用到PdfPageEventHelper、PdfTemplate等辅助类,具体的例子参见iText的文档,如果只是为了简单的显示页数,可以使用下面的代码:

???????HeaderFooter?footer?=?new?HeaderFooter(new?Phrase("页码:",getChineseFont()),?true);
???????footer.setBorder(Rectangle.NO_BORDER);
???????document.setFooter(footer);
???????document.open();

你可能注意到了,添加footer需要在document.open之前。

?

5.单元格的内容换行

?????? 转义符\n实现

6.设置表头

?希望每一页都有表头,可以通过设置表头来实现。对于PdfPTable类来说,可以这样设置:

? PdfPTable?table?=?new?PdfPTable(3);
? table.setHeaderRows(2); //?设置了头两行为表格头

? 而对于om.lowagie.text.Table类,需要在添加完所有表头的单元格后加上一句代码:

? table.endHeaders();

?

7.设置列宽

? Table?table?=?new?Table(8);
? float[]?widths?=?{?0.10f,?0.15f,?0.21f,?0.22f,?0.08f,?0.08f,?0.10f,
????????????????????0.06f?};
? table.setWidths(widths);

热点排行