首页 > 编程语言 >asp.net 2.0 中生成PDF

asp.net 2.0 中生成PDF

时间:2022-12-07 10:34:21浏览次数:64  
标签:asp string 文档 new PDF net document datatable


    近期要用asp.net 2.0生成PDF,看了下书,查了下资料,发现可以有组件帮得上忙,可以下载itextsharp(​​https://sourceforge.net/projects/itextsharp​​​)
下载,然后在工程中引用该控件,举例子如下

1  datatable 的内容转换为PDF
      首先,建立一个datatable转换为pdf的方法如下

using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;/// <summary>
/// 将DataTable转化为PDF文件的方法
/// </summary>
public class TableToPDF
{
public TableToPDF()
{
}
/// <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;
}
}



然后,在要调用转换的按钮的事件代码中调用就可以了

/将目标文件保存在此项目下
//字体使用simsun
//字号选择14
//mytb是数据datatable的名
TableToPDF.ConvertDataTableToPDF(mytb, Server.MapPath(".") + @"\Table.pdf", "c:\\winnt\\FONTS\\simsun.ttc,1", 14);


2  给出文本内容,生成PDF
    比如用户输入文本内容及要输出PDF的保存路径的话,也可以输出PDF

///<param="txt">:要输出文本的内容</param>


private void CreateTxt(string txt,string filepath)
{
//创建文档对象
Document document = new Document();
//实例化生成的文档
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
//打开文档
document.Open();
//在文档中添加文本内容
document.Add(new Paragraph(txt));
//关闭文档对象
document.Close();
}



 3    加页眉页脚
 

private void CreatePDFheader(string filepath,string headertxt,string footertxt)
{
//创建文档对象
Document document = new Document();
// 创建文档写入实例
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create)); // 添加页脚
HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true);
footer.Border = Rectangle.NO_BORDER;
document.Footer = footer; //打开文档内容对象
document.Open(); // 添加页眉
HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false);
document.Header = header;
//设计各页的内容
document.Add(new Paragraph("This is First Page"));
//新添加一个页
document.NewPage();
//第2页中添加文本
document.Add(new Paragraph("This is Second Page"));
// 重置页面数量
document.ResetPageCount();
//关闭文档对象
document.Close();
}

标签:asp,string,文档,new,PDF,net,document,datatable
From: https://blog.51cto.com/u_14230175/5917896

相关文章

  • 一、kubernetes介绍
    1、kubernetes基本介绍kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部......
  • dotnet new cli 以及Abp-cli命令的简单使用
    首先dotnetnew .NETCore3.1SDK及更高版本dotnetnew -根据指定的模板,创建新的项目、配置文件或解决方案从.NET7SDK开始, dotnetnew 语法已更改:--list、-......
  • 红队隧道应用篇之Netsh端口转发
    简介netsh是从Windows2000开始就有的一个用于配置网络设备的命令行工具其中netshinterfaceportproxy是一个配置网络代理的命令,可以配置ipv4或ipv6的端口转发代理以......
  • Kubernetes configmap 笔记
    ConigMap什么是ConfigMapConfigMap采用key-value格式进行保存数据,一般用来保存非敏感数据,Pods可以将configmap作为环境变量、命令行参数或卷中的配置文件使用。Config......
  • Kubernetes静态Pod
    一、什么是StaticPod静态Pod在指定的节点上由kubelet守护进程直接管理,不需要API服务器监管。与由控制面管理的Pod(例如,Deployment、RC、DaemonSet)不同;kubelet......
  • netcore3.1升级到netcore6.0那些事儿
    netcore3.1升级到netcore6.0那些事儿netcore3.1升级到netcore6记录1:对于已存在的数据库,可以新建一个新版本控制台先用【DbFirst】的方式,生成数据库的dbcontext......
  • hdu3078 Network--RMQ & LCA
    原题链接:​​http://acm.hdu.edu.cn/showproblem.php?pid=3078​​题意:给定n个点标号1到n,每个点一个权值,接下来n-1行u,v表示u和v两点连线,接下来k行查询,op,u,v,如果u为0,表示把点u......
  • .NET 6 实现滑动验证码(四)、扩展类
    为了能够通过配置文件(appsettings.json)或通过代码进行背景图片与模板进行配置、可自定义资源类型、自定义验证规则,本节创建一些扩展类,用来实现这些功能。上一节内容:NET6......
  • IIS fails to run ASP.NET Core site - HTTP Error 502.5
    IISfailstorunASP.NETCoresite-HTTPError502.5回答1Yourproblemisabadweb.configfile:<aspNetCorerequestTimeout="02:00:00"processPath="%L......
  • NetBackup 学习记录
    NetBackup学习记录一、简介   NetBackup(简称:NBU)是Symantec公司提供的企业级备份管理软件,它支持多种操作系统,包括UNIX、MicrosoftWindows、OS/2以及Macintos......