1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Data;
5
using iTextSharp;
6
using iTextSharp.text;
7
using iTextSharp.text.pdf;
8
using System.IO;
9
10
namespace CNINSURE.WEB.COMMON
11
{
12
/// <summary>
13
/// 将DataTable转化为PDF文件的方法
14
/// </summary>
15
public class TableToPDF
16
{
17
public TableToPDF()
18
{
19
}
20
/// <summary>
21
/// 转换数据表为PDF文档
22
/// </summary>
23
/// <param name="Data">数据表数据</param>
24
/// <param name="PDFFile">目标PDF文件全路径</param>
25
/// <param name="FontPath">字体所在路径</param>
26
/// <param name="FontSize">字体大小</param>
27
/// <returns>返回调用是否成功</returns>
28
public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize)
29
{
30
//初始化一个目标文档类
31
Document document = new Document();
32
//调用PDF的写入方法流
33
//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
34
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));
35
//打开目标文档对象
36
document.Open();
37
//创建PDF文档中的字体
38
BaseFont baseFont = BaseFont.CreateFont(
39
FontPath,
40
BaseFont.IDENTITY_H,
41
BaseFont.NOT_EMBEDDED);
42
//根据字体路径和字体大小属性创建字体
43
Font font = new Font(baseFont, FontSize);
44
//根据数据表内容创建一个PDF格式的表
45
PdfPTable table = new PdfPTable(datatable.Columns.Count);
46
//遍历原table的内容
47
for (int i = 0; i < datatable.Rows.Count; i++)
48
{
49
for (int j = 0; j < datatable.Columns.Count; j++)
50
{
51
table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), font));
52
}
53
}
54
//在目标文档中添加转化后的表数据
55
document.Add(table);
56
//关闭目标文件
57
document.Close();
58
//关闭写入流
59
writer.Close();
60
return true;
61
}
62
/// <summary>
63
/// 给出文本内容,生成PDF 比如用户输入文本内容及要输出PDF的保存路径的话,也可以输出PDF
64
/// </summary>
65
/// <param name="txt">文本内容</param>
66
/// <param name="filepath">要输出文本的内容</param>
67
private void CreateTxt(string txt, string filepath)
68
{
69
//创建文档对象
70
Document document = new Document();
71
//实例化生成的文档
72
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
73
//打开文档
74
document.Open();
75
//在文档中添加文本内容
76
document.Add(new Paragraph(txt));
77
//关闭文档对象
78
document.Close();
79
}
80
81
/// <summary>
82
/// 加页眉页脚
83
/// </summary>
84
/// <param name="filepath">文件路径</param>
85
/// <param name="headertxt">头文本</param>
86
/// <param name="footertxt">脚文本</param>
87
public void CreatePDFheader(string filepath, string headertxt, string footertxt)
88
{
89
//创建文档对象
90
Document document = new Document();
91
// 创建文档写入实例
92
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
93
94
// 添加页脚
95
HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true);
96
footer.Border = Rectangle.NO_BORDER;
97
document.Footer = footer;
98
99
//打开文档内容对象
100
document.Open();
101
102
// 添加页眉
103
HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false);
104
document.Header = header;
105
//设计各页的内容
106
document.Add(new Paragraph("This is First Page"));
107
//新添加一个页
108
document.NewPage();
109
//第2页中添加文本
110
document.Add(new Paragraph("This is Second Page"));
111
// 重置页面数量
112
document.ResetPageCount();
113
//关闭文档对象
114
document.Close();
115
}
116
117
118
119
}
120
121
122
123
}
124
using System;2
using System.Collections.Generic;3
using System.Text;4
using System.Data;5
using iTextSharp;6
using iTextSharp.text;7
using iTextSharp.text.pdf;8
using System.IO;9

10
namespace CNINSURE.WEB.COMMON11
{12
/// <summary>13
/// 将DataTable转化为PDF文件的方法14
/// </summary>15
public class TableToPDF16
{17
public TableToPDF()18
{19
}20
/// <summary>21
/// 转换数据表为PDF文档22
/// </summary>23
/// <param name="Data">数据表数据</param>24
/// <param name="PDFFile">目标PDF文件全路径</param>25
/// <param name="FontPath">字体所在路径</param>26
/// <param name="FontSize">字体大小</param>27
/// <returns>返回调用是否成功</returns>28
public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize)29
{30
//初始化一个目标文档类31
Document document = new Document();32
//调用PDF的写入方法流33
//注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。34
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));35
//打开目标文档对象36
document.Open();37
//创建PDF文档中的字体38
BaseFont baseFont = BaseFont.CreateFont(39
FontPath,40
BaseFont.IDENTITY_H,41
BaseFont.NOT_EMBEDDED);42
//根据字体路径和字体大小属性创建字体43
Font font = new Font(baseFont, FontSize);44
//根据数据表内容创建一个PDF格式的表45
PdfPTable table = new PdfPTable(datatable.Columns.Count);46
//遍历原table的内容47
for (int i = 0; i < datatable.Rows.Count; i++)48
{49
for (int j = 0; j < datatable.Columns.Count; j++)50
{51
table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), font));52
}53
}54
//在目标文档中添加转化后的表数据55
document.Add(table);56
//关闭目标文件57
document.Close();58
//关闭写入流59
writer.Close();60
return true;61
}62
/// <summary>63
/// 给出文本内容,生成PDF 比如用户输入文本内容及要输出PDF的保存路径的话,也可以输出PDF64
/// </summary>65
/// <param name="txt">文本内容</param>66
/// <param name="filepath">要输出文本的内容</param>67
private void CreateTxt(string txt, string filepath)68
{69
//创建文档对象70
Document document = new Document();71
//实例化生成的文档72
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));73
//打开文档74
document.Open();75
//在文档中添加文本内容76
document.Add(new Paragraph(txt));77
//关闭文档对象78
document.Close();79
}80

81
/// <summary>82
/// 加页眉页脚83
/// </summary>84
/// <param name="filepath">文件路径</param>85
/// <param name="headertxt">头文本</param>86
/// <param name="footertxt">脚文本</param>87
public void CreatePDFheader(string filepath, string headertxt, string footertxt)88
{89
//创建文档对象90
Document document = new Document();91
// 创建文档写入实例92
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));93

94
// 添加页脚95
HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true);96
footer.Border = Rectangle.NO_BORDER;97
document.Footer = footer;98

99
//打开文档内容对象100
document.Open();101

102
// 添加页眉103
HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false);104
document.Header = header;105
//设计各页的内容106
document.Add(new Paragraph("This is First Page"));107
//新添加一个页108
document.NewPage();109
//第2页中添加文本110
document.Add(new Paragraph("This is Second Page"));111
// 重置页面数量112
document.ResetPageCount();113
//关闭文档对象114
document.Close();115
}116

117

118

119
}120

121

122

123
}124



浙公网安备 33010602011771号