詳細的教學請參考 這裡 本篇將整個說明的部份範例整合並做詳細的註解,分享給有需要的人。
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="iTextSharp.text" %>
<%@ Import Namespace="iTextSharp.text.html.simpleparser" %>
<%@ Import Namespace="iTextSharp.text.pdf" %>
<%@ Import Namespace="System.Collections.Generic" %>
protected void Button1_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4,50,50,80,50);//宣告一個文件,設定文件大小(Margin:左,右,上,下)
MemoryStream Memory = new MemoryStream();//使用記憶體暫存將內容擷取至doc
PdfWriter PdfWriter = PdfWriter.GetInstance(doc, Memory);//使用PdfWriter 將doc的內容導入Memory 並繪製成pdf
//各種字型設定 BaseFont設定字型
BaseFont bfChinese = BaseFont.CreateFont(Request.PhysicalApplicationPath+@"font\MSJH.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//↑中文字須配合中文字型 將中文字抓到目錄下
//設定字型其他樣式
Font ChFont = new Font(bfChinese, 12);
Font ChFont_blue = new Font(bfChinese, 15, Font.NORMAL, new BaseColor(51, 0, 153));
//Chunk為文字片段簡單說就是string 不會自行斷行 ("內容",字型物件)
Chunk c0 = new Chunk("<c0>第一句</c0>",ChFont);
//Phrase為句子 可以將chunk彙整至Phrase 但Phrase也是句子也不會斷行需透過 \n 或 Environment.NewLine
Phrase p1 = new Phrase(c0);
Chunk c1 = new Chunk("<c1>第二句</c1>", ChFont);
Chunk c2 = new Chunk("<c2>第三句 </c2>", ChFont);
//透過chunk將個別的文字先寫入後再透過Phrase 的Add將個別的chunk加入
Phrase p2 = new Phrase(c1);
p2.Add(c2);
//段落 可以設定樣式如下
Paragraph pg = new Paragraph();
pg.Add(p1);
pg.Add(p2);
pg.Alignment=1;//設定左右對齊 0:左 1:置中 2:右
pg.FirstLineIndent = 20f;//段落首句縮排
pg.SetLeading(0.0f, 2.0f);//設定行句
//宣告一個Table 後面(4)代表分割成4個欄位 使用float{1,4} 代表用比例切兩個欄位
PdfPTable table = new PdfPTable(new float[]{1,4});
//強制鎖定表格大小
table.TotalWidth = 400f;
table.LockedWidth = true;
//先告一個Cell 所有Cell都是由上而下由左至右排序要跳過的時候就用Colspan合併欄位
PdfPCell header = new PdfPCell(new Phrase("參賽報名資料",ChFont));
PdfPCell name = new PdfPCell(new Phrase("姓名", ChFont));
PdfPCell inputName = new PdfPCell(new Phrase(TextBox1.Text, ChFont));
PdfPCell tel = new PdfPCell(new Phrase("電話", ChFont));
PdfPCell inputTel = new PdfPCell(new Phrase(TextBox2.Text, ChFont));
header.Colspan = 2;
table.AddCell(header);
table.AddCell(name);
table.AddCell(inputName);
table.AddCell(tel);
table.AddCell(inputTel);
doc.Open();
//doc.Add(new Paragraph(10f, "HelloWorld!\nI am Andy", ChFont));
doc.Add(table);
doc.Close();
//產生下載檔案
Response.Clear();
Response.AddHeader("Content-Disposition","attachment;filename=table.pdf");
Response.ContentType="application/pdf";
Response.ContentEncoding= System.Text.Encoding.UTF8;
Response.OutputStream.Write(Memory.GetBuffer(),0,Memory.GetBuffer().Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
Response.Flush();
Response.End();
}
評論
此文章尚無評論。