在生成Pdf时如何去合并行、列

解决方案 »

  1.   


    /// <summary>
            /// 转换数据表为PDF文档
            /// </summary>
            /// <param name="Data">数据表数据</param>
            /// <param name="PDFFile">目标PDF文件全路径</param>
             /// <param name="FontPath">字体所在路径</param>
             /// <param name="FontSize">字体大小</param>
             /// <returns>返回调用是否成功</returns>
             public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize)
             {
                //初始化一个目标文档类
                 Document document = new Document();
                 //调用PDF的写入方法流
                 //注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
                 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));
                 //打开目标文档对象
                 document.Open();
                 //创建PDF文档中的字体
                 BaseFont baseFont = BaseFont.CreateFont(
                     FontPath,
                     BaseFont.IDENTITY_H,
                     BaseFont.NOT_EMBEDDED);
                //根据字体路径和字体大小属性创建字体
                 Font font = new Font(baseFont, FontSize);
                //根据数据表内容创建一个PDF格式的表
                PdfPTable table = new PdfPTable(datatable.Columns.Count);
               //遍历原table的内容
                 for (int i = 0; i < datatable.Rows.Count; i++)
                 {
                     for (int j = 0; j < datatable.Columns.Count; j++)
                     {
                         table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), font));
                     }
                }
                 //在目标文档中添加转化后的表数据
                 document.Add(table);
                 //关闭目标文件
                 document.Close();
                 //关闭写入流
                writer.Close();
                 return true;
             }
      

  2.   

      我现在想实现生成后的PDF的格式类似与这个table的效果:
    <table>
      <tr>
        <td rowspan="3">&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
      

  3.   

               PdfPTable workTable = new PdfPTable(6);
                PdfPCell titleCell = PdfHelper.BuildCell("A", font, 1);
                workTable .AddCell(titleCell );            PdfPCell contentCell = PdfHelper.BuildCell("", font, 5);
                workTable .AddCell(contentCell);            PdfPTable ret = new PdfPTable(5);  
                 ...........
                   //将ret插到contentCell中
                 contentCell.AddElement(ret);
                 return workTable ;         但是ret没有显示出来 这是怎么回事呢 
                contentCell.AddElement(ret);
    这样不对么
      

  4.   

    http://stackoverflow.com/questions/2675895/itextsharp-text-field-in-pdfpcell
      

  5.   

      如何设置PDFCell的宽度和高度呢 
       titleCell .width=20f;
      这样设置 编译都不能通过