ASP.NET 將數據生成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();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM