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. Executor的线程代码

    package com.open1111; import java.util.concurrent.ExecutorService;import java.util.concurrent.Execut ...

  2. python实现文件批量编码转换

    起因:大三做日本交换生期间在修一门C语言图像处理的编程课,在配套书籍的网站上下载了sample,但是由于我用的ubuntu18.04系统默认用utf-8编码,而文件源码是Shift_JIS编码,因而文 ...

  3. Hibernate各种状态(瞬时状态、持久化状态、游离|托管状态)之间的转换

  4. WebService基础概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  5. rn 环境搭建

    https://reactnative.cn/docs/next/getting-started.html 搭建开发环境 欢迎使用 React Native!这篇文档会帮助你搭建基本的 React N ...

  6. python的sort和sorted

    sort 只适用于列表,返回列表类型. sorted 可适用于字典,元组和列表. 使用方法 sort的使用方法是list.sort(cmp=None, key=None, reverse=False) ...

  7. Jmeter中while循环逻辑控制器+配置元件计数器的用法

    一.在线程组下添加逻辑控制器While Controller 二.在逻辑控制器While Controller下添加Sample,BeanShell Sampler , 三.逻辑控制器While Co ...

  8. c#中的解析HTML组件 -- (HtmlAgilityPack,Jumony,ScrapySharp,NSoup,Fizzler)

    做数据抓取,网络爬虫方面的开发,自然少不了解析HTML源码的操作.那么问题来了,到底.NET如何来解析HTML,有哪些解析HTML源码的好用的,有效的组件呢?   作者在开始做这方面开发的时候就被这些 ...

  9. MySQL主从备份

    一,虚拟机两台:192.168.1.10(主机),192.168.1.11(从机) 二,在/etc/my.cnf下,主从服务器添加日志和id,log-bin=mysql-bin , server-id ...

  10. JS中的let变量和var变量的区别

    let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]]; let允许你声明一个作用域被限制在块级中的变量.语句或者表达式.在F ...