ASP.NET 生成PDF

// 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.NET 生成PDF)