您好我想在我的 ASP.NET 应用程序中创建一个pdf,为此我使用iTextSharp
。我的想法是用HTML文件创建一个pdf。我希望如果我点击Button
我会阅读带有背景图片和更多样式的HTML文件。
我的申请必须做..
App.Data
中读取HTML文件。 (使用System.IO)using iTextSharp.text;
using iTextSharp.text.pdf;
)
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)
你拼错了“风格”。
<body styles="background-color:#E0E0E0;
应该是
<body style="background-color:#E0E0E0;
答案 1 :(得分:0)
你应该在这里使用bgcolor而不是background-color