使用itextsharp生成PDF时如何合并行、列 在生成Pdf时如何去合并行、列 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /// <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; } 我现在想实现生成后的PDF的格式类似与这个table的效果:<table> <tr> <td rowspan="3"> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr></table> 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);这样不对么 http://stackoverflow.com/questions/2675895/itextsharp-text-field-in-pdfpcell 如何设置PDFCell的宽度和高度呢 titleCell .width=20f; 这样设置 编译都不能通过 web项目打包 SQL Server 不存在或访问被拒绝 asp 脚本转到其他页面 Wizard空间问题不少啊~微软没想到? 怎么样用javascript脚本在加载页面后初始化控件属性,但回发时不执行该初始化脚本。 深夜急救关于datalist里面嵌datagrid问题 关于this的用法肯请指点 怎样将前台的数值传递到后台??? 请问!在ASP.NET中,如何将一个字符串中的小写字母转换为大写字母! 在access中带两个参数的查询怎么没法调用?提示:“至少有一个参数没指定”,急,在线等待!! 修改web.config UpdatePanel alert问题
/// <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;
}
<table>
<tr>
<td rowspan="3"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
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);
这样不对么
titleCell .width=20f;
这样设置 编译都不能通过