【问题标题】:Parser results in "The document has no pages"解析器导致“文档没有页面”
【发布时间】:2020-05-21 16:54:08
【问题描述】:

尝试使用 ITextSharp v5 生成带有 HTML/CSS 的 PDF。我得到的错误是“文档没有页面”。我的解析器设置错误吗?如何将解析后的 H​​TML 添加到我的文档中?

    public void ConvertHtmlToPdf(string xHtml, string css)
    {
        using (var stream = new FileStream("App_Data/pdfs/testt.pdf", FileMode.Create))
        {
            using (var document = new Document(PageSize.A4, 10f, 10f, 10f, 0f))
            {
                var writer = PdfWriter.GetInstance(document, stream);
                document.Open();

                // instantiate custom tag processor and add to `HtmlPipelineContext`.
                var tagProcessorFactory = Tags.GetHtmlTagProcessorFactory();

                var htmlPipelineContext = new HtmlPipelineContext(null);
                htmlPipelineContext.SetTagFactory(tagProcessorFactory);

                var pdfWriterPipeline = new PdfWriterPipeline(document, writer);
                var htmlPipeline = new HtmlPipeline(htmlPipelineContext, pdfWriterPipeline);

                // get an ICssResolver and add the custom CSS
                var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
                cssResolver.AddCss(css, "utf-8", true);
                var cssResolverPipeline = new CssResolverPipeline(
                    cssResolver, htmlPipeline
                );

                var worker = new XMLWorker(cssResolverPipeline, true);
                var parser = new XMLParser(worker);
                using (var stringReader = new StringReader(xHtml))
                {
                    parser.Parse(stringReader);
                }
                document.Close();
                writer.Close();
            }

        }
    }

【问题讨论】:

    标签: c# .net itext pdf-generation


    【解决方案1】:

    文档是空的,因为没有数据从 Worker 类写入。

    在打开文档后,总是在文档中添加一个空块,这样可以避免这个异常。

    document.add(new Chunk(''));
    

    要将 HTML 转换为 PDF,您可以查看此示例 How to convert HTML to PDF using iText

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      相关资源
      最近更新 更多