2013-02-05 78 views
0

嗨我想在我的ASP.NET應用程序中創建pdf併爲此使用iTextSharp。我的想法是從HTML文件中創建PDF。我想,如果我點擊一個Button我讀了一個帶有背景圖像和多種樣式的HTML文件。如何使用帶有樣式的html文件來創建iTextSharp的pdf文件

我的應用程序必須做..

  1. 從文件夾App.Data閱讀HTML文件。 (使用System.IO)
  2. 使用此樣式創建此HTML文件中的PDF! (using iTextSharp.text; ) 3.將PDF文件作爲電子郵件發送。 (使用System.Net.Mail;採用System.Net.Mime;)

我嘗試創建一個PDF,如果可行,但如果我在HTML中使用樣式的文件,它不會顯示樣式:(

這裏是我的代碼:

string html; 

using (StreamReader reader = new StreamReader(Server.MapPath("~/App_Data/mail.html"), System.Text.Encoding.Default)) 
{ 
    html = reader.ReadToEnd(); //here i read the html file to this string 
    HTMLtoPdf(html); 
} 

private void HTMLtoPdf(string HTML) 
{ 
    Document doc = new Document(); 
    PdfWriter.GetInstance(doc, new FileStream(Request.PhysicalApplicationPath + "\\test.pdf", FileMode.Create)); 
    doc.Open(); 
    HTMLWorker hw = new HTMLWorker(doc); 
    hw.Parse(new StringReader(HTML)); 
    doc.Close(); 

    ShowPdf("test.pdf"); 
} 

private void ShowPdf(string s) 
{ 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Response.AddHeader("Content-Disposition", "inline;filename=" + s); 
    Response.ContentType = "application/pdf"; 
    Response.WriteFile(s); 
    Response.Flush(); 
    Response.Clear(); 
} 

例如我的HTML文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html><head> 

</head><body styles="background-color:#E0E0E0; font-weight:bold; font-family:Arial; font-size:120%;"> 

<div> 
    Test 
</div> 

</body></html> 

在這個例子中我使用的背景顏色,但它不工作:(我只得到了HTML文本:沒有樣式的測試。

+0

這將是風格不風格 –

+0

是一個小錯誤,但在背景顏色不工作 – Tarasov

+0

使用樣式標籤在身體內,不與它一起...可能會工作,試試看... –

回答

0

你拼寫的「風格」錯了。

<body styles="background-color:#E0E0E0; 

應該是

<body style="background-color:#E0E0E0; 
+0

我改變它,但我的背景顏色不起作用。 .. – Tarasov

+0

我有這個相同的問題,如果你有答案,請張貼我。 – Velu

0

你應該使用的bgcolor這裏,而不是背景色

相關問題