【问题标题】:Invalid nested tag div found, expected closing tag img exception in Itextsharp xmlworker在 Itextsharp xmlworker 中找到无效的嵌套标记 div,预期结束标记 img 异常
【发布时间】:2017-11-06 06:15:25
【问题描述】:

我正在尝试使用 itextsharp 5.5.10.0 将整个网页转换为 pdf,但它给了我“找到无效的嵌套标签 div,预期的结束标签 img”错误

以下是我正在尝试转换的网页的源代码

 <table style="width: 100%; border-collapse:collapse" cellpadding="4" 
 border="1">



<tr>
    <td   colspan="3" style="height: 25px;font-weight: bold;font-size: 
 12px">
    <div >1. Personal Details  </div>
    </td>

 </tr>

<tr>
    <td  colspan="2" style="font-size: 10px; height: 3%;width:65%"><span 
 style="font-weight:bold;font-size: 10px"> Name*  </span>(Same as ID 
 proof): <asp:Label ID="lbName" runat="server" Text=""></asp:Label></td>

     <td  rowspan="4" style="width:35%"   >
         <div>

    <img src="https://image.flaticon.com/icons/png/128/118/118781.png" 
  height="100" alt="" width="100" id="imgs" runat="server"/>
        </div>
    </td>


  </tr>

  <tr>
  <td style="height: 3%;font-size: 10px" colspan="2" >
  <div><span style="font-weight:bold" > Maiden name </span>(If any)* : 
  <asp:Label ID="lbMaidenName" runat="server" Text=""></asp:Label></div> 
  </td>


  </tr>

 <tr>
 <td style="height: 3%;font-size: 10px" colspan="2"><div><span 
 style="font-weight:bold"> Father's/Spouse Name* </span>: <asp:Label 
 ID="lbFatherName" runat="server" Text=""></asp:Label></div></td>

</tr>

<tr>
<td style="height: 3%;font-size: 10px" colspan="2"><div><span 
 style="font-weight:bold"> Mother name*</span> : <asp:Label 
 ID="lbMotherName" runat="server" Text=""></asp:Label></div></td>

</tr>
</table>

我什么都试过了,

ex-<img src='...'/>, <img src='...'/> and  <img src='...'></img> and <img 
src='...'><img> 

但是所有这些图像标签都给我同样的错误,请帮我解决这个问题 我什至试图验证这个 html 但在图像标签上它显示这样的警告

启用 NET 的开始标记需要 SHORTTAG YES

【问题讨论】:

  • 你需要 div 标签作为 img 标签的父标签吗?
  • 不是真的...但是当它在 标签中时它给了我同样的错误....我什至尝试将 img 标签放在表外...但同样的错误再次
  • 只是为了澄清一下,您是将这个确切的代码发送到 iTextSharp 还是生成的 HTML?如果是后者,你确定 asp.net 不会做一些讨厌的事情,比如删除斜线吗?哦,你需要 runat 属性吗?

标签: xhtml itext


【解决方案1】:

我将您的代码放入一个 XML 文件中,然后将该文件加载到 Gecko 渲染引擎(Waterfox / Firefox)中。

使用 HTML cmets 隐藏 ASP 代码后,XML(您的 HTML)正确呈现。

虽然我可以告诉您,您需要注释掉您的 ASP 代码并使用 XML 解析器而不是 HTML 解析器来呈现它(充当application/xhtml+xml )。每次您取消注释相关的 ASP 代码时,页面仍然会呈现,或者会中断。它可能只对一组 ASP 代码中断,可能对所有代码都中断。无论 ASP 代码位是否破坏了您的页面,您都需要查找相关文档。

据我了解,ASP 输出实际的 HTML 代码与 PHP 不同(如果是这样的话,这是非常糟糕的,因为它失去了对发送到客户端的完全控制权)。如果为真,您将不得不采用更细粒度的方法,并且仅根据您在 ASP 中使用的数据直接输出符合 XML 的代码。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签