iTextSharp XMLWorkder クラスを使用して HTML を PDF に変換しています。空の HTML テーブルがある場合を除いて、すべて正常に動作" "
し、その中に文字が配置され、PDF にはっきりと表示されます。
これを空のスペースまたは に置き換えようとしました<br/>
が、「テーブルの幅はゼロより大きい必要があります」というエラーが発生しました。
誰でも私が何をすべきかを提案できますか?
iTextSharp XMLWorkder クラスを使用して HTML を PDF に変換しています。空の HTML テーブルがある場合を除いて、すべて正常に動作" "
し、その中に文字が配置され、PDF にはっきりと表示されます。
これを空のスペースまたは に置き換えようとしました<br/>
が、「テーブルの幅はゼロより大きい必要があります」というエラーが発生しました。
誰でも私が何をすべきかを提案できますか?
疑いはPDFiTextSharp
に置きます。 
それどころか、iTextSharp
それを非改行スペースとして正しく認識するのに十分なほどスマートです。証拠は次のとおりです。
string HTML = @"
<div>
<h1>HTML Encoded non breaking space</h1><table border='1'><tr><td>&#160;</td></tr></table>
<h1>HTML non breaking space</h1><table border='1'><tr><td> </td></tr></table>
<div style='background-color:yellow;'><h1>Empty Table</h1><table><tr><td></td></tr></table></div>
</div>
";
using (var stringReader = new StringReader(HTML))
{
using (FileStream stream = new FileStream(
outputFile,
FileMode.Create,
FileAccess.Write))
{
using (var document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(
document, stream
);
document.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(
writer, document, stringReader
);
}
}
}
したがって、より可能性の高いケースはHTML
、パーサーに送信された が としてエンコードさ 
れていること&#160;
です。簡単な修正は、パーサーに送られる前に、エンコードされた HTML エンティティを置き換えることです。
HTML = HTML.Replace("&#160;", "\u00A0");