簡體   English   中英

當我有錨標記時,itextsharp“文檔沒有頁面”錯誤

[英]itextsharp “the document has no pages” error when i have anchor tag

我正在將一些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();
           }
       }
    }
 }

問題可能是無效的HTML。 檢查的一種方法是通過驗證器運行您的html源,例如W3C標記驗證服務

你有沒有嘗試添加一個頁面:

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克里斯

需要檢查是否有任何html標記不匹配。 示例/ td>,這種錯誤引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM