[ASP.NET] iTextSharp產生PDF檔...Part_2

  • 19929
  • 0

摘要:[ASP.NET] iTextSharp產生PDF檔...Part_2

這次要作利用 iTextSharp 元件產生PDF檔,並讓USER可以下載


/// 
/// 利用Web Application在Server Memory產生PDF檔後,使用者可以自行下載瀏覽或存檔,採用的是PdfWriter Class
/// 
private void GetPDF_1()
{
    Document doc = new Document(PageSize.A4, 50, 50, 80, 50); // 設定PageSize, Margin, left, right, top, bottom
    MemoryStream ms = new MemoryStream();
    PdfWriter pw = PdfWriter.GetInstance(doc, ms);

    ////    字型設定
    // 在PDF檔案內容中要顯示中文,最重要的是字型設定,如果沒有正確設定中文字型,會造成中文無法顯示的問題。
    // 首先設定基本字型:kaiu.ttf 是作業系統系統提供的標楷體字型,IDENTITY_H 是指編碼(The Unicode encoding with horizontal writing),及是否要將字型嵌入PDF 檔中。
    // 再來針對基本字型做變化,例如Font Size、粗體斜體以及顏色等。當然你也可以採用其他中文字體字型。
    BaseFont bfChinese = BaseFont.CreateFont("C:\\Windows\\Fonts\\kaiu.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    Font ChFont = new Font(bfChinese, 12);
    Font ChFont_green = new Font(bfChinese, 40, Font.NORMAL, BaseColor.GREEN);
    Font ChFont_msg = new Font(bfChinese, 12, Font.ITALIC, BaseColor.RED);

    // 開啟檔案寫入內容後,將檔案關閉。
    doc.Open();
    doc.Add(new Paragraph(10f, "Hello~!大家好.....", ChFont_green));
    doc.Close();

    // 在Client端顯示PDF檔,讓USER可以下載
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=Y2J.pdf");
    Response.ContentType = "application/octet-stream";
    Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
    Response.OutputStream.Flush();
    Response.OutputStream.Close();
    Response.Flush();
    Response.End();
}

之後視窗會跳出名為 Y2J.pdf 供使用者下載

 

打開檔案如下圖:

 






Y2J's Life:http://kimenyeh.blogspot.tw/