【问题标题】:iTextSharp Can not Convert All HTML to PDFiTextSharp 无法将所有 HTML 转换为 PDF
【发布时间】:2015-05-09 11:48:36
【问题描述】:

使用来自here 的示例代码我想出了这些代码 -

var my_html = this.GetmyReportHtml();
    var my_css = this.GetmyReportHtmlCss();

    Byte[] bytes;

    using (var ms = new MemoryStream())
    {
        using (var doc = new iTextSharp.text.Document(PageSize.LETTER))
        {
            using (var writer = PdfWriter.GetInstance(doc, ms))
            {
                doc.Open();

                try
                {
                    using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(my_css)))
                    {
                        using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(my_html)))
                        {
                            iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss);
                        }
                    }
                }
                catch (Exception ex)
                {

                }
                finally
                {
                    doc.Close();
                }
            }
        }

        bytes = ms.ToArray();
    }

    System.IO.File.WriteAllBytes(@"c:\\temp\test.pdf", bytes);

PDF 已生成。但是 my_html 在我的情况下有 6 页,只有一半的内容被转换为 pdf。

有人知道这里发生了什么吗?如何知道 iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml 是否正常工作?

谢谢

【问题讨论】:

  • getMyReportHtml 方法里面有什么?它是否在您的项目中使用 html 页面?我确实需要它。
  • @nsarchar 是的。 getMyReportHtml 获取整个页面。
  • 如何获取 html 页面?将它们放入数组中?可以和我分享一下吗?
  • @nsarchar 我把页面作为一个巨大的 html 字符串。

标签: c# html .net pdf itextsharp


【解决方案1】:

发现问题。在这行代码中——

using (var doc = new iTextSharp.text.Document(PageSize.LETTER))

PageSize.LETTER 不能传入。

【讨论】:

  • 大家好,在我删除 PageSize.LETTER 后,它为我生成了所有 PDF 页面。但是今天再次测试时,问题又出现了。 my_html 有所有可用的页面。但是只生成了一半的 PDF 页面。有谁知道是什么问题?
猜你喜欢
  • 1970-01-01
  • 2012-08-10
  • 2022-03-07
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 2014-09-29
相关资源
最近更新 更多