1、下载iTextSharp.dll文件

下载链接:https://pan.baidu.com/s/14o-pJ-U2yU8n0EyIn249qg
提取码:tklu

2、PDF转换方法

        /// <summary>
/// datatable转PDF方法
/// </summary>
/// <param name="Data">dataTable数据</param>
/// <param name="PDFFile">PDF文件保存的路径</param>
/// <param name="FontSize">字体大小</param>
/// <returns></returns>
public bool ConvertDataTableToPDF(DataTable Data, string PDFFile, float FontSize)
{
//默认页面大小
Document document = new Document();
document.SetPageSize(PageSize.A2);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFile, FileMode.Create));
document.Open();
//设置字体
//BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
//Font font = new Font(bf, FontSize);
//设置字体,支持中文
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font fontChinese = new iTextSharp.text.Font(bfChinese, , iTextSharp.text.Font.NORMAL, new BaseColor(, , )); PdfPTable table = new PdfPTable(Data.Columns.Count);
table.WidthPercentage = ; // percentage
table.DefaultCell.Padding = ;
table.DefaultCell.BorderWidth = ;
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
//将datatable表头转换成PDFTable的表头
foreach (DataColumn dc in Data.Columns)
{
table.AddCell(new Phrase(dc.ColumnName.ToString(), fontChinese));
}
//插入数据
for (int i = ; i < Data.Rows.Count; i++)
{
for (int j = ; j < Data.Columns.Count; j++)
{
table.AddCell(new Phrase(Data.Rows[i][j].ToString(), fontChinese));
}
}
document.Add(table);
document.Close();
writer.Close();
return true;
}

3、调用代码

        private void btnCreatePDF_Click(object sender, EventArgs e)
{
//获取datatable数据
DataTable tab = GetDataTableList();
//获取保存路径
string savePath = "D://PDF//";
string saveName = "PDF文件.pdf";
CreateFileDirectory(savePath);
//文件路径:保存路径+保存名称
string path = savePath + saveName;
//调用转化PDF的方法
ConvertDataTableToPDF(tab,path,);
}

4、调用界面

5、生成结果

6、全部demo代码

using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace DataTableToPDF
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void btnCreatePDF_Click(object sender, EventArgs e)
{
//获取datatable数据
DataTable tab = GetDataTableList();
//获取保存路径
string savePath = "D://PDF//";
string saveName = "PDF文件.pdf";
CreateFileDirectory(savePath);
//文件路径:保存路径+保存名称
string path = savePath + saveName;
//调用转化PDF的方法
ConvertDataTableToPDF(tab,path,);
} /// <summary>
/// datatable转PDF方法
/// </summary>
/// <param name="Data">dataTable数据</param>
/// <param name="PDFFile">PDF文件保存的路径</param>
/// <param name="FontSize">字体大小</param>
/// <returns></returns>
public bool ConvertDataTableToPDF(DataTable Data, string PDFFile, float FontSize)
{
//默认页面大小
Document document = new Document();
document.SetPageSize(PageSize.A2);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFile, FileMode.Create));
document.Open();
//设置字体
//BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
//Font font = new Font(bf, FontSize);
//设置字体,支持中文
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font fontChinese = new iTextSharp.text.Font(bfChinese, , iTextSharp.text.Font.NORMAL, new BaseColor(, , )); PdfPTable table = new PdfPTable(Data.Columns.Count);
table.WidthPercentage = ; // percentage
table.DefaultCell.Padding = ;
table.DefaultCell.BorderWidth = ;
table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT;
//将datatable表头转换成PDFTable的表头
foreach (DataColumn dc in Data.Columns)
{
table.AddCell(new Phrase(dc.ColumnName.ToString(), fontChinese));
}
//插入数据
for (int i = ; i < Data.Rows.Count; i++)
{
for (int j = ; j < Data.Columns.Count; j++)
{
table.AddCell(new Phrase(Data.Rows[i][j].ToString(), fontChinese));
}
}
document.Add(table);
document.Close();
writer.Close();
return true;
} /// <summary>
/// 创建文件夹
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public string CreateFileDirectory(string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
return path;
} /// <summary>
/// 创建默认dataTable数据
/// </summary>
/// <returns></returns>
public DataTable GetDataTableList() {
DataTable dt = new DataTable();
dt.Columns.Add("学生编号", typeof(string));//添加列
dt.Columns.Add("学生名称", typeof(string));//添加列
dt.Columns.Add("家庭住址", typeof(string));//添加列
//循环添加行的数据
for (var i=; i < ; i++) {
DataRow dtRow = dt.NewRow();
dtRow["学生编号"] = "S10"+(i+);
dtRow["学生名称"] = "学生" + (i + );
dtRow["家庭住址"] = "地址" + (i + );
dt.Rows.Add(dtRow);
}
return dt;
}
}
}

7、demo源码下载

下载地址:https://pan.baidu.com/s/1tTG4lzzDvC8vOvEjng8N5Q

提取码:c8mc

PS

参考网址:https://blog.csdn.net/qq_40253245/article/details/87694147

C#利用iTextSharp将datatable数据转化为PDF文件的更多相关文章

  1. 将caj文件转化为pdf文件进行全文下载脚本(ubuntu下亲测有用)

    最近ubuntu下caj阅读器,突然崩掉了,而偏偏要准备开题,在网上搜索原因未果,准备放弃时候,突然在网上看到一个脚本,说是很好用,可以在指定页面将caj文件转化为pdf文件,亲测有用,这里直接给出脚 ...

  2. 利用aspose-words 实现 java中word转pdf文件

    利用aspose-words  实现 java中word转pdf文件 首先下载aspose-words-15.8.0-jdk16.jar包 引入jar包,编写Java代码 package test; ...

  3. 利用FlashPaper在web页面中显示PDF文件(兼容各浏览器)

    应项目需求要把PDF内嵌到网页中显示,其中有了很多办法,比如用<embed/>元素放入PDF文件,但是效果不理想,浏览器兼容不理想,在ie9/8(其他版本没有测试)显示会提示下载pdf文件 ...

  4. php 查询mysql数据批量转为PDF文件二(批量使用wkhtmltopdf html导出PDF)

    上节讲到配置wkhtmltopdf,这节讲下如何批量操作 首先讲下wkhtmltopdf如何使用 直接命令行输入: wkhtmltopdf http://www.baidu.com/  baidu.p ...

  5. php 查询mysql数据批量转为PDF文件一(mac使用配置wkhtmltopdf html导出PDF)

    数据转标准PDF查文档,查资料先转HTML标准格式再html转PDF 转PDF wkhtmltopdf工具是最佳选择 首先下载wkhtmltopdf https://wkhtmltopdf.org/d ...

  6. Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件【转】

    转自:http://blog.chinaunix.net/uid-29339876-id-4042245.html 利用V4L2读取UVC摄像头数据并保存成视频文件,主要参考http://linuxt ...

  7. C# 将DataTable数据写入到txt文件中

    见代码: /// <summary> /// 将DataTable里面的内容写入txt文件 /// </summary> /// <param name="dt ...

  8. 利用rsync+inotify实现数据实时同步脚本文件

    将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133. ...

  9. 关于将word转化为pdf 文件调用jacob 包

    用jacob. 先到官方网站上去下载:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=11836 ...

随机推荐

  1. 从CMS到G1:LinkedIn个人主页调优实战

    本文转载自公众号:阿飞的博客,阅读大约需要13分钟.阿飞是我认识几年的好友,对技术有很强的专研精神,跟他讨论GC问题的时候一些观点都很深刻. LinkedIn中的个人主页是访问量最多的页面之一,它允许 ...

  2. SaltStack--配置管理

    saltstack配置管理 Saltstack状态模块 远程执行模块的执行是过程式,而状态是对minion的一种描述和定义,管理人员不需要关系部署任务如何完成的,只需要描述minion的状态描述.它的 ...

  3. Struct2远程命令执行漏洞(S2-053)复现学习

    1.S2-053(CVE-2017-12611) RCE出自一道题目 http://www.whalwl.cn:8027/hello.action 漏洞产生原因:Struts2在使用Freemarke ...

  4. asp.net中的参数传递:Context.Handler 的用法

    网上天天有人问怎么在webform页面之间传值,基本上来说,大家熟悉的是     (1)url字符串传值     (2)session传值     (3)直接读取server.transfer过来的页 ...

  5. python笔记44-HTTP对外接口sign签名

    前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求. sign签名是一种很常见的方式 sign签名 签名参数sign ...

  6. 201671030104 邓海祥 实验十四 团队项目评审&课程项目总结

    项目 内容 课程名称 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 课程学习目标 (1)掌握软件项目评审会流程:(2)反思 ...

  7. discuz x3.3后台admin.php防止直接恶意访问

    功能说明:admin.php是discuz默认的后台地址,正常情况下可以直接访问,为了防止某些恶意访问的情况,可以修改以下内容进行安全性能提升. 适用版本:Discuz!x1-x3.3 具体实施方案: ...

  8. signed Unsigned Compare

    // signUnsignCompare.cpp : Defines the entry point for the console application. // #include "st ...

  9. mybatis include refid="Base_Column_List"含义

    <sql id="Base_Column_List" > collegeID, collegeName </sql> <select id=" ...

  10. (转)虚拟文件系统(VFS)浅析

    http://www.cnblogs.com/zsw-1993/p/5048144.html 在我看来, "虚拟"二字主要有两层含义: 1, 在同一个目录结构中, 可以挂载着若干种 ...