我正在将一些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。检查的一种方法是通过验证器如W3C Markup Validation Service运行您的html源代码。
你有没有尝试添加一个页面:
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>,这种错误引发错误。