PDF簡介:PDF(Portable Document Format)檔案格式是Adobe公司開發的電子檔案格式。這種檔案格式與作業系統平台無關,也就是說,PDF檔案不管是在Windows,Unix還是在蘋果公司的Mac OS作業系統中都是通用的。這一特點使它成為在Internet上進行電子文檔發行和數字化資訊傳播的理想文檔格式。越來越多的電子書、產品說明、公司文告、網路資料、電子郵件開始使用PDF格式檔案。PDF格式檔案目前已成為數字化資訊事實上的一個工業標準。
Adobe公司設計PDF檔案格式的目的是為了支援跨平台上的,多媒體整合的資訊出版和發布,尤其是提供對網路資訊發布的支援。為了達到此目的, PDF具有許多其他電子文檔格式無法相比的優點。PDF檔案格式可以將文字、字型、格式、顏色及獨立於裝置和解析度的圖形映像等封裝在一個檔案中。該格式檔案還可以包含超文本連結、聲音和動態影像等電子資訊,支援特長檔案,整合度和安全可靠性都較高。
日常工作中經常遇到想把報表和網頁匯出到PDF的需求。本文提供完美的解決方案:
ASP.NET匯出到PDF的最終(其實winform和控制台程式都一樣可以做)。
本文實現 文字,圖片,資料表的匯出
核心技術方案:使用itextsharp.dll
1.下載itextsharp.dll和ICSharpCode.SharpZipLib.dll
http://sourceforge.net/project/showfiles.php?group_id=72954
iTextSharp.tutorial.01.zip 樣本檔案 提供了各種解決方案本文由於時間問題僅做拋磚引玉,希望大家自己研究其他需求
itextsharp.dll itextsharp-4.0.3-dll.zip
ICSharpCode.SharpZipLib.dll http://download.csdn.net/down/135897 ICSharpCode.SharpZipLib.dll
SharpZipLib.dll類庫中的內容實現的壓縮與解壓功能,它是開源的
2.引用itextsharp.dll和ICSharpCode.SharpZipLib.dll
3.後台代碼:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
public partial class _Default : System.Web.UI.Page
...{
static DataTable datatable = new DataTable("testpdf");
protected void Page_Load(object sender, EventArgs e)
...{
//判斷是否是回傳頁面http://blog.csdn.net/21aspnet
if (!Page.IsPostBack)
...{
DataRow dr;
//建立Column例,可以指明例的類型,這裡用的是預設的string
datatable.Columns.Add(new DataColumn("編號"));
datatable.Columns.Add(new DataColumn("使用者名稱"));
for (int i = 1; i < 5; i++)
...{
dr = datatable.NewRow();
dr[0] = System.Convert.ToString(i);
dr[1] = "清清月兒" + System.Convert.ToString(i);
datatable.Rows.Add(dr);
}
}
}
protected void Button1_Click(object sender, EventArgs e)
...{
try
...{
Document document = new Document();
PdfWriter.getInstance(document, new FileStream(Server.MapPath("Chap0101.pdf"), FileMode.Create));
document.Open();
BaseFont bfChinese = BaseFont.createFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,new Color(0, 0, 0));
document.Add(new Paragraph(this.TextBox1.Text.ToString(), fontChinese));
iTextSharp.text.Image jpeg = iTextSharp.text.Image.getInstance(Server.MapPath("pic015.jpg"));
document.Add(jpeg);
PdfPTable table = new PdfPTable(datatable.Columns.Count);
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(), fontChinese));
}
}
document.Add(table);
document.Close();
}
catch (DocumentException de)
...{;
Response.Write(de.ToString());
}
}
}
4.前台代碼:
<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>清清月兒 製作匯出PDF http://blog.csdn.net/21aspnet</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="匯出" /></div>
</form>
</body>
</html>
5.前台操作:
6.屬性說明:
itextsharp-4.0.3-dll.zip 樣本檔案包含幾乎所有的PDF處理需求
顏色: