Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用itextsharp获取html内容并将其转换为PDF?_C#_Asp.net Mvc_Pdf_Linq To Sql_Itextsharp - Fatal编程技术网

C# 如何使用itextsharp获取html内容并将其转换为PDF?

C# 如何使用itextsharp获取html内容并将其转换为PDF?,c#,asp.net-mvc,pdf,linq-to-sql,itextsharp,C#,Asp.net Mvc,Pdf,Linq To Sql,Itextsharp,有人知道如何获取html内容,将其转换为pdf并保存到数据库吗 我试过很多方法,但似乎都不管用。在一些文章中,它是使用HTMLPase编写的,在另一些文章中,它是使用HTMLWorker编写的。。。有时会抛出错误“文档没有页面”。。。有时,它只是抛出一个异常,但没有指定错误 有人知道这样做的好方法吗 我正在使用C#3.0、ASP.NETMVC和LinQToSQL 提前谢谢,非常感谢 对于HTML到PDF,我倾向于看。它是一个exe而不是一个库,所以它可能不是你想要的,但它可能会帮你渡过难关 看着

有人知道如何获取html内容,将其转换为pdf并保存到数据库吗

我试过很多方法,但似乎都不管用。在一些文章中,它是使用HTMLPase编写的,在另一些文章中,它是使用HTMLWorker编写的。。。有时会抛出错误“文档没有页面”。。。有时,它只是抛出一个异常,但没有指定错误

有人知道这样做的好方法吗

我正在使用C#3.0、ASP.NETMVC和LinQToSQL


提前谢谢,非常感谢

对于HTML到PDF,我倾向于看。它是一个exe而不是一个库,所以它可能不是你想要的,但它可能会帮你渡过难关

看着iText的书,Lowagie说:

“iText邮件列表中的一个常见问题是,‘iText是否提供HTML2PDF功能?’官方答案是否定的;建议您使用HtmlDoc或ICEBrowser。”第456页

然后,他继续展示了一个HTMLPasser示例,但强调它不能胜任解析和呈现HTML的庞大工作

 public class Pdf : IPdf
    {
        public FileStreamResult Make(string s)
        {
            using (var ms = new MemoryStream())
            {
                using (var document = new Document())
                {
                    PdfWriter.GetInstance(document, ms);
                    document.Open();
                    using (var str = new StringReader(s))
                    {

                        var htmlWorker = new HTMLWorker(document);

                        htmlWorker.Parse(str);
                    }
                    document.Close();
                }

                HttpContext.Current.Response.ContentType = "application/pdf";
                HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=MyPdfName.pdf");
                HttpContext.Current.Response.Buffer = true;
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
                HttpContext.Current.Response.OutputStream.Flush();
                HttpContext.Current.Response.End();

                return new FileStreamResult(HttpContext.Current.Response.OutputStream, "application/pdf");
            }
        }
    }