当我有锚标记时,itextsharp“文档没有页面”错误

问题描述 投票:5回答:3

我正在将一些html转换为pdf。它工作正常但是当我在我的html中有锚标记时我得到错误文档没有页面

我的代码是

 byte[] data;
 using (var sr = new StringReader(sw.ToString()))
 {
    var st = new StyleSheet();

    GetStyleSheetForUnicodeCharacters(st);
    using (var ms = new MemoryStream())
    {
       using (var pdfDoc = new Document())
       {                            
           using (var w = PdfWriter.GetInstance(pdfDoc, ms))
           {
              pdfDoc.Open();
              var parsedHtmlElements = HTMLWorker.ParseToList(sr, st);
              foreach (var htmlElement in parsedHtmlElements)
              {
                 pdfDoc.Add(htmlElement as IElement);
              }
              pdfDoc.Close();
              data = ms.ToArray();
           }
       }
    }
 }
c# asp.net itextsharp
3个回答
1
投票

问题可能是无效的HTML。检查的一种方法是通过验证器如W3C Markup Validation Service运行您的html源代码。


0
投票

你有没有尝试添加一个页面:

pdfDoc.NewPage();

我认为您的代码应如下所示:

byte[] data;
using (var sr = new StringReader(sw.ToString()))
{
    var st = new StyleSheet();

    GetStyleSheetForUnicodeCharacters(st);
    using (var ms = new MemoryStream())
    {
        using (var pdfDoc = new Document())
        {                            
            using (var w = PdfWriter.GetInstance(pdfDoc, ms))
            {
               pdfDoc.Open();
               pdfDoc.NewPage(); // add Page here
               var parsedHtmlElements = HTMLWorker.ParseToList(sr, st);
               foreach (var htmlElement in parsedHtmlElements)
               {
                  pdfDoc.Add(htmlElement as IElement);
               }
               pdfDoc.Close();
               data = ms.ToArray();
            }
        }
    }
}

您还可以使用以下方法添加空白页面:

    pdfDoc.newPage();
    w.setPageEmpty(false);

MfG克里斯


0
投票

需要检查是否有任何html标记不匹配。示例/ td>,这种错误引发错误。

© www.soinside.com 2019 - 2024. All rights reserved.