Htm到pdf转换器与CSS

时间:2013-07-09 14:06:18

标签: asp.net c#-4.0 itextsharp wkhtmltopdf

我使用了itextsharp.dll将html转换为Pdf。它的工作正常只有问题是它不能在pdf中呈现css。我的代码如下:

 string[] attachment;
            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "attachment;filename=Certificate.pdf");
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            System.Text.StringBuilder ss = new System.Text.StringBuilder(CertificateHtml);
            StringWriter sw = new StringWriter(ss);
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            StringReader sr = new StringReader(sw.ToString());
            Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
            HTMLWorker htmlparser = new HTMLWorker(pdfDoc);


            string PdfName = "Certificate" + name;
            PdfWriter.GetInstance(pdfDoc, new FileStream(Server.MapPath("~/DesktopModules/SterlingPlanet-SP_CheckOut/PDfCertificate/" + PdfName + ".pdf"), FileMode.Create));

            pdfDoc.Open();
            htmlparser.Parse(sr);

            pdfDoc.Close();

我的css像傻瓜一样

body {
    font-family: Conv_Californian FB,Arial;
    margin: 0;
    padding: 0;
}
#wrapper {
    background: url("../images/bg.jpg") no-repeat scroll 0 0 transparent;
    height: 719px;
    margin: 25px auto 0;
    position: relative;
    width: 959px;
}
.wrapper_inner {
    color: White;
    text-align: center;
    width: 100%;
}
.wrapper_inner h1 {
    color: #FFFFFF;
    font-size: 65px;
    letter-spacing: 16px;
    padding-top: 38px;
    text-align: center;
}
.wrapper_inner h6 {
    color: #FFFFFF;
    font-size: 17px;
    letter-spacing: 10px;
    margin: -53px;
    text-align: center;
}

有没有替代的itextsharp.dll可以用hss将html转换为pdf,或者如果有任何我想丢失的代码可以将css呈现给html.Kindly帮助。

2 个答案:

答案 0 :(得分:0)

当我在安全服务器上处理过这个问题时,我必须在传递给pdf转换器之前更改css引用。与图像引用有类似的问题。

如果引用是安全服务器,则转换器无法看到它,如果它指向非安全服务器,则安全页面会向用户提示不安全内容。

答案 1 :(得分:0)

在像素中使用内联css和大小,它在itextsharp html中不能用于pdf。