iTextとXMLWorkerHelperを使用して問題が発生しています。私は問題のない複数のページで複数のPDFファイルを生成しますが、特殊文字でエラーが発生することがあります。特別な文字列でiTextを使用してHTMLをPDFに変換する
私は私のテンプレートをテストし、それは例外と言っていても、私のHTMLに問題はありません。
Exception thrown: 'iTextSharp.tool.xml.exceptions.RuntimeWorkerException' in itextsharp.xmlworker.dll
Additional information: Invalid nested tag tr found, expected closing tag td.
このエラーは、文字によるものです:&私のテンプレートに追加されます。
<td>Launch C&O</td>
このエラーを解決する方法は正確にはわかりませんが、エンコードエラーですか? PDFを作成するときにエンコードモードを指定する必要がありますか?
これは、PDFを作成するコードです:
public async Task Generate(Stream stream, List<string> contentPages)
{
try
{
int cpt = 1;
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, stream);
writer.CloseStream = false;
document.Open();
foreach (string pdfContentPage in contentPages)
{
try
{
document.NewPage();
using (StringReader srHtml = new StringReader(pdfContentPage))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
}
++cpt;
}
catch (RuntimeWorkerException ex)
{
Console.Write($"An error occured at PDF generation for cpt = {cpt}");
Console.Write(ex.Message);
}
catch (Exception)
{
Console.WriteLine($"Content Error : pdfContentPage}");
throw;
}
}
document.Close();
}
catch (Exception)
{
throw;
}
}
あなたはアドバイスを持っている場合、私はそれを読んでくれてうれしいです! :)
の下で試してみて、何が起こるかを参照してください。 –
これは何も変更していません。目的のためにありがとうございます:) –
https://validator.w3.org/checkのW3CバリデーターでHTMLを実行し、HTML-Tidy *でマークアップをチェックしてください。元のHTMLと比較する。ページの下部にあるクリーンなHTMLでもう一度試してください。 * JTidy *を使用して、独自のコードでこれを自動化することができます。 –