我正在将一些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();
}
}
}
}
答案 0 :(得分:1)
问题可能是无效的HTML。一种检查方法是通过验证器W3C Markup Validation Service运行您的html源代码。
答案 1 :(得分:0)
您是否已尝试使用以下内容添加页面
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
答案 2 :(得分:0)
需要检查所有html标签是否不匹配。例如/ td>,这种类型的错误会引起错误。