c#读取html文件并转换为pdf

时间:2012-03-16 14:51:23

标签: c# asp.net html pdf

我将小的html字符串转换为pdf,如下所示:

// set a path to where you want to write the PDF to.
string sPathToWritePdfTo = @"path\new_pdf.pdf";

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
sbHtml.Append("<html>");
sbHtml.Append("<html>");
sbHtml.Append("<body>");
sbHtml.Append("<font size='14'> my first pdf</font>");
sbHtml.Append("<br />");
sbHtml.Append("this is my pdf!!!!");
sbHtml.Append("</body>");
sbHtml.Append("</html>");

// create file stream to PDF file to write to
using (System.IO.Stream stream = new System.IO.FileStream
            (sPathToWritePdfTo, System.IO.FileMode.OpenOrCreate))
{
    // create new instance of Pdfizer
    Pdfizer.HtmlToPdfConverter htmlToPdf = new Pdfizer.HtmlToPdfConverter();

    // open stream to write Pdf to to
    htmlToPdf.Open(stream);

    // write the HTML to the component
    htmlToPdf.Run(sbHtml);

    // close the write operation and complete the PDF file
    htmlToPdf.Close();

我想我可以在不使用append方法的情况下为大html字符串进行上述转换。我试过这一行:

string sbHtml=File.ReadAllText("mypath/pdf.html"); 

而不是这一行:

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();  

但它不起作用:我有一个例外:

     htmlToPdf.Run(sbHtml);

“xmlexception未处理用户代码

我还要提到我读取html文件的路径来自我的电脑!! 它不是来自服务器或其他任何东西。我想获得两条路径的asnwers。

3 个答案:

答案 0 :(得分:0)

如果转换器的字符串过载,您只需使用:

  htmlToPdf.Run(File.ReadAllText(@"mypath/pdf.html"));

如果不是,只接受StringBuilder:

  System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
    sbHtml.Append(File.ReadAllText(@"mypath/pdf.html"));

答案 1 :(得分:0)

这会有帮助吗?

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();    
sbHtml.Append(File.ReadAllText("mypath/pdf.html"));

答案 2 :(得分:0)

关于异常,请确保HTML是有效的XHTML。 PDFizer需要有效的XHTML。