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.10f0.15f0.21f0.22f0.08f0.08f0.10f,
                    
0.06f };
  table.setWidths(widths);

你可能感兴趣的:(C++,c,C#)