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. Java集合学习(5):LinkedHashMap

    一.概述 HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方.所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟 ...

  2. httpget请求测试用Java代码的实现方法

    原文:http://www.cnblogs.com/johnson-yuan/p/6637906.html 1.首先要在eclipse中导入HttpClient的jar包. 2.新建类并写入一下代码: ...

  3. springboot如何读取配置文件中的参数(例如:application-consts.properties) 又结合maven读取配置文件的顺序

    1.启动项目后,会读取pom.xml中的配置文件,例如现在读取的是本地配置 2.找到对应的配置文件  会读取uri地址下的配置.注:如果为springboot启动无需加config项目的名称,应该本身 ...

  4. 安装socketio出现module 'importlib._bootstrap' has no attribute 'SourceFileLoader' 错误

    安装socketio出现module 'importlib._bootstrap' has no attribute 'SourceFileLoader' 错误 执行: pip install --u ...

  5. Linux装B命令

    原文:https://mp.weixin.qq.com/s/CNmMRjl0iZ8EBPq5VgJHsA 1.空心字体 yum install -y figlet figlet happy 1.0 2 ...

  6. 5.Lvs+Keepalived健康检查

    1. Nginx+keepalived对后端服务器心跳检查(需要自定义脚本) 原理:Keepalived并不跟nginx耦合,它俩完全不是一家人但是keepalived提供一个机制:让用户自定义一个s ...

  7. wentaolovesmeng.club

    wentaolovesmeng.club wentaostudy.club

  8. Android Studio--Logcat

    他只是坐在那里,嘴里说:“做这个!做那个!当然,什么都不会发生,光说不做是没有用的” --哈里·杜鲁门“论<总统的权利>” 移动端的技术演进愈演愈烈,原生突破口已被打破. flutter. ...

  9. 后台返回的base64的图片格式,前端如何转为普通的图片格式

    在上一篇的博客当中,写了前端如何将普通的图片格式转为base64的图片,今天开发的时候遇到了后台返回的图片格式是base64的,我这边需要把base64的图片格式转为普通的,搜了一下js的方法,感觉很 ...

  10. django最小程序开发流程

    1.建立工程 在工程目录下打开cmd,输入以下命令.其中mysite是项目名称. django-admin startproject mysite 命令运行完后,在该目录下会出现一个名为mysite的 ...