首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#高级应用

用C#制作PDF文件全攻略

减小字体 增大字体 作者:java060515  来源:不详  发布时间:2011-02-09 10:04:49

  图形

  如果你想添加图形,如直线、圆、几何窗体,你应该阅读读十章,但如果你只需要一些有限的功能,你可以使用Graphic对象

  Graphic grx = new Graphic();

  //添加一个矩形

  grx.rectangle(100, 700, 100, 100);

  // 添加一条斜线

  grx.moveTo(100, 700);

  grx.lineTo(200, 800);

  // 将图形显示出来

  grx.stroke();

  document.Add(grx);

  完整的代码请见示例代码0404,如果想看到全部的方法,请参见PdfContentByte对象API。

  当你想给页面加一个边框或者在文本当前位置画一条水平线时,图形对象非常有用。下面的方法用指定的宽度、间距(如果需要)和颜色画一个边框。

  public void setBorder(float linewidth, float extraSpace);

  public void setBorder(float linewidth, float extraSpace, Color color);

  下面的方法用指定的宽度(如果需要)和颜色画一条水平线,线的长度是指定两边缘间可用面积的的百分比。

  public void setHorizontalLine(float linewidth, float percentage)

  public void setHorizontalLine(float linewidth, float percentage, Color color)

  示例代码5中,有一个离边界5磅,线宽3磅的边框,还有两条水平线,一条为黑色,5磅宽,可用空间的100%,另外一条为红色,线宽3磅,可用空间的80%。

  第五章 表格

  重点:如果你仅仅生成PDF文件(没有XML、HTML、RTF……),使用类pdfPTable代替类Table更好。

  一些简单的表格

  一个表格是包含单元格排列成矩阵的矩形区域。表格的距阵并不要求是m×n的,它可以有空洞或者单元格比单个的要大。

  创建一个表格最通用的办法是预先知道有几行几列:

  public Table(int columns, int rows);

  在示例代码0501中,我们构建了一个简单的表:

  Table aTable = new Table(2,2);

  aTable.addCell("0.0");

  aTable.addCell("0.1");

  aTable.addCell("1.0");

  aTable.addCell("1.1");

  该表格有两行两列,单元格被自动添加,从第一行第一列开始,然后是第二列,当一行满后,下一单元格自动添加到下一行的第一列中。

  也可以将单元格添加到表中指定的位置,如示例代码0502,别了要添加System.Drawing.dll引用,以获得Point对象,我们创建了一个4行4列的表格然后添加一些单元格到随机的位置上:

  Table aTable = new Table(4,4);

  aTable.AutoFillEmptyCells = true;

  aTable.addCell("2.2", new Point(2,2));

  aTable.addCell("3.3", new Point(3,3));

  aTable.addCell("2.1", new Point(2,1));

  aTable.addCell("1.3", new Point(1,3));

  你可以看到我们将AutoFillEmptyCells属性设置为true,这将自动、默认的单元格布局填充空的单元格,如果我们忘记了这样做(就象本例中第二个表格),将没有额外的单元格添加,不包含任何单ge的行也将被忽略,在本例中,第一行将不显示,因为该行是空行。

  经常用数据库查询结果来填充表格,大多数情况下,你预先并不知道到底需要多少行,这就是为什么还有第二个构造函数的原因:

  public Table(int columns);

  iText根据需要自动添加行,在示例代码0503中,初始化了4行4列,当我们添加第6行和第7行的单元格时,iText自动增加行数到7。

  增加列数也是可能的,但是有点麻烦,它不能自动生成,你必须使用addColumns方法并设置列宽,详见示例代码0504。

  一些表格参数

  前面例子中的表格并不美观,我们可以设置大量的参数来改变表格外观。类Table和类Cell派生于类Rectangle,我们可以用大量典型的Rectangle方法,让我们来看看示例代码0505。

  Table table = new Table(3);

  table.BorderWidth = 1;

  table.BorderColor = new Color(0, 0, 255);

  table.Cellpadding = 5;

  5. table.Cellspacing = 5;

  Cell cell = new Cell("header");

  cell.Header = true;

  cell.Colspan = 3;

  table.addCell(cell);

  10. cell = new Cell("example cell with colspan 1 and rowspan 2");

  cell.Rowspan = 2;

  cell.BorderColor = new Color(255, 0, 0);

  table.addCell(cell);

  table.addCell("1.1");

  15. table.addCell("2.1");

  table.addCell("1.2");

  table.addCell("2.2");

  table.addCell("cell test1");

  cell = new Cell("big cell");

  20. cell.Rowspan = 2;

  cell.Colspan = 2;

  cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

  table.addCell(cell);

  table.addCell("cell test2");

  25. document.Add(table);

  u 单元格间距和填距

  在第4行中,我们设置了表格的填距,就是单元格边界和内容间一定数量的空间,在前面的示例中,我们看到文本紧贴边界,通过使用用特定的填距,就可以避免。

  在第5行中,我们设置了表格的间距,就是单元格和表格边界间的一定数量的空间,不同的单元格间使用了半数空间,具体代码见示例代码0506。


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

上一页  [1] [2] [3] 

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:PDF C# 插件

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.