C# itextsharp";文件没有页数”;当我有锚标记时出错
我正在将一些html转换为pdf。它工作得很好,但是当我在html中有锚标记时,我得到一个错误,文档没有页面 我的代码是C# itextsharp";文件没有页数”;当我有锚标记时出错,c#,asp.net,itextsharp,C#,Asp.net,Itextsharp,我正在将一些html转换为pdf。它工作得很好,但是当我在html中有锚标记时,我得到一个错误,文档没有页面 我的代码是 byte[] data; using (var sr = new StringReader(sw.ToString())) { var st = new StyleSheet(); GetStyleSheetForUnicodeCharacters(st); using (var ms = new MemoryStream()) {
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();
}
}
}
}
您是否已尝试添加包含以下内容的页面:
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 chris问题可能是无效的html。检查的一种方法是通过验证器运行html源代码。需要检查任何html标记是否不匹配。示例/td>,上述错误引发的此类错误。
HTMLWorker
已停止。您应该切换到使用XML WorkerHTMLWorker
在某些HTML流上失败,这将导致parsedHtmlElements
中出现0个条目。这会导致“文档没有页面”错误。这是一种“无法解决”的情况。您需要升级到XML Worker;我已经申请了,但没有结果。在进一步调查之后,我发现当我的html中有img标记时,问题就出现了。如果我说它工作得很好