zoukankan      html  css  js  c++  java
  • 一步一步 ITextSharp Table使用

    表格是我们在制作文档时,经常使用的一个元素。对布局的控制非常精确。在ITextSharp中表格对象是下面两个元素:

    PdfTable,PdfCell

    下面从ITextSharp In Action截取一段代码:

    image

    从代码中,可以看出,PdfTable的构造函数,传入一个列数为参数,表示这个表格有多少列,往表格中加入PdfCell,如果加入的单元格超过一行,自动会进行换行。单元格中有一个setColspan函数(注:C#版本中,是属性Colspan),用于设置一个单元格跨多列。同样,如果要跨越多行,也有一个属性(C#)RolSpan,上面的演示代码执行结果如下:

    image

    PdfTable对象有一个设置表格区域和每列宽度的函数,如下:

    public void SetTotalWidth(float[] columnWidth);
            public void SetWidthPercentage(float[] columnWidth, Rectangle pageSize);

    属性:HorizontalAlignment 设置表格的对齐方式

    HeaderRows 表示第几行作为表格头

    FooterRows  表示第几行作为表格尾

    SplitLate      表示单元格是否跨页显示

    SplitRows     表示行是否跨页显示

    image

    image

    示例代码如下:

       1: public class PdfPTableDemo : TestBase 
       2:     { 
       3:         protected override void Opening(Document document, PdfWriter writer) 
       4:         { 
       5:             document.SetPageSize(PageSize.A4.Rotate()); 
       6:             base.Opening(document, writer); 
       7:         } 
       8:         protected override void WriteDocument(Document document, PdfWriter writer) 
       9:         { 
      10:             PdfPTable table = CreateTable(); 
      11:             //table.WidthPercentage = 80;//设置表格占的宽度,百分比 
      12:             //table.TotalWidth = 200;//设置表格占的宽度,单位点数 
      13:             //table.SetTotalWidth(); 
      14:             //table.SetWidthPercentage(); 
      15:             table.HorizontalAlignment = Element.ALIGN_LEFT; 
      16:             document.Add(table);
      17:  
      18:             table = CreateTable(); 
      19:             table.HorizontalAlignment = Element.ALIGN_RIGHT; 
      20:             table.SpacingBefore = (5); 
      21:             table.SpacingAfter = (5); 
      22:             Rectangle rect = new Rectangle(523, 770); 
      23:             table.SetWidthPercentage( 
      24:               new float[] { 50, 25, 25 }, rect); 
      25:             document.Add(table); 
      26:             table = CreateTable(); 
      27:             table.HorizontalAlignment = Element.ALIGN_CENTER; 
      28:             table.SetTotalWidth(new float[] { 144, 72, 72 }); 
      29:             table.LockedWidth = (true); 
      30:             document.Add(table); 
      31:             table = CreateTable(); 
      32:             table.SpacingBefore = (15); 
      33:             table.SpacingAfter = (15); 
      34:             document.Add(table);
      35:  
      36:             table = new PdfPTable(3); 
      37:             PdfPCell cell 
      38:   = new PdfPCell(new Phrase("表头测试", Normal)); 
      39:             cell.BackgroundColor = (BaseColor.YELLOW); 
      40:             cell.HorizontalAlignment = (Element.ALIGN_CENTER); 
      41:             cell.Colspan = (7); 
      42:             table.AddCell(cell);
      43:  
      44:             cell 
      45:   = new PdfPCell(new Phrase("表尾测试", Normal)); 
      46:             cell.BackgroundColor = (BaseColor.YELLOW); 
      47:             cell.HorizontalAlignment = (Element.ALIGN_CENTER); 
      48:             cell.Colspan = (7); 
      49:             table.AddCell(cell);
      50:  
      51:             table.DefaultCell.BackgroundColor = (BaseColor.LIGHT_GRAY); 
      52:             for (int i = 0; i < 100; i++) 
      53:             { 
      54:                 table.AddCell("Location"); 
      55:                 table.AddCell("Time"); 
      56:                 table.AddCell("Run Length"); 
      57:                 table.AddCell("Title"); 
      58:                 table.AddCell("Year"); 
      59:                 table.AddCell("Directors"); 
      60:                 table.AddCell("Countries"); 
      61:             } 
      62:             table.DefaultCell.BackgroundColor = (null); 
      63:             table.HeaderRows = (2); 
      64:             table.FooterRows = (1); 
      65:             document.Add(table);
      66:  
      67:         }
      68:  
      69:         private PdfPTable CreateTable() 
      70:         { 
      71:             PdfPTable table = new PdfPTable(3); 
      72:             table.TableEvent = new AlternatingBackground(); 
      73:             //table.WidthPercentage = 80;//设置表格占的宽度,百分比 
      74:             //table.TotalWidth = 200;//设置表格占的宽度,单位点数 
      75:             //table.SetTotalWidth(); 
      76:             //table.SetWidthPercentage(); 
      77:             PdfPCell cell; 
      78:             cell = new PdfPCell(new Phrase("Cell with colspan 3")); 
      79:             cell.Colspan = (3); 
      80:             table.AddCell(cell); 
      81:             cell = new PdfPCell(new Phrase("Cell with rowspan 2")); 
      82:             cell.Rowspan = (2); 
      83:             table.AddCell(cell); 
      84:             table.AddCell("row 1; cell 1"); 
      85:             table.AddCell("row 1; cell 2"); 
      86:             table.AddCell("row 2; cell 1"); 
      87:             table.AddCell("row 2; cell 2");
      88:  
      89:             return table; 
      90:         } 
      91:     }
      92:  

    2011-07-14

    补充一点:在设置单元格的对齐方式时,应该选设置对齐方式,再来添加内容。

       1: cell = new PdfPCell(new Chunk("中国人民",Normal));
       2:                 cell.UseAscender = (true);
       3:                 cell.UseDescender = (true);
       4:                 cell.VerticalAlignment = Element.ALIGN_MIDDLE;
       5:                 cell.HorizontalAlignment = Element.ALIGN_CENTER;
       7:                 table.AddCell(cell);

    一步一步 IText.Sharp

  • 相关阅读:
    python动态网页爬取——四六级成绩批量爬取
    python&MongoDB爬取图书馆借阅记录(没有验证码)
    【Linux】CentOS 7安装与使用,安装jdk1.8,安装mysql
    JavaWeb项目:旅游网站【涉及各种知识】
    【SpringMVC】使用三层架构实现登录,注册。(下篇)
    【SpringMVC】使用三层架构实现登录,注册。(上篇)
    【JSP】el、jstl、MVC、三层架构
    【Tomcat】JSP使用Session、Cookie实现购物车
    HttpServletRequest对象,请求行、请求头、请求体
    【Spring】JdbcTemplate的使用,查询,增、删、改
  • 原文地址:https://www.cnblogs.com/LifelongLearning/p/2048116.html
Copyright © 2011-2022 走看看