html标签在iTextSharp不工作时,将html转换为pdf

本文关键字:html 转换 pdf 工作 标签 iTextSharp | 更新日期: 2023-09-27 18:04:22

由于某些原因,我似乎不能在我的htmlElements上应用样式。我创建了一个用于测试目的的样式包,但该样式并未应用于每个div元素。有人能指出我做错了什么吗?

try
{
    // set the file name
    string file = "C:/MyPdf.pdf";
    // create a pdf document
    Document document = new Document();
    // set the page size, set the orientation
    document.SetPageSize(PageSize.A4);
    // create a writer instance
    PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));
    // open the document
    document.Open();
    // THIS STYLE IS SET FOR TESTING PURPOSES
    StyleSheet styles = new StyleSheet();
    styles.LoadTagStyle(HtmlTags.DIV, HtmlTags.BGCOLOR, "#ff0000");
    // html pagina inlezen
    string htmlText = File.ReadAllText("C:''afl.html");
    // html pagina parsen in een arraylist van IElements
    List<IElement> htmlElements = HTMLWorker.ParseToList(new StringReader(htmlText), styles);
    // add the IElements to the document
    for (int i = 0; i < htmlElements.Count; i++)
    {
        // cast the element
        IElement htmlElement = ((IElement)htmlElements[i]);
        document.Add(htmlElement);
    }
    // close the document
    document.Close();
    // open the pdf document
    //Process.Start(file);
} 
catch (Exception ex)
{
    var derp = ex.Message;
}

html标签在iTextSharp不工作时,将html转换为pdf

不再主动维护HTMLWorker,而是鼓励您使用XMLWorker。

也就是说,您会发现除了基于表格的标签之外,大多数标签都不支持背景色。这背后的原因是PDF规范本身不支持背景颜色。要实现这一点,iText需要使用复杂的注释或在文本后面绘制形状。

查看当前XMLWorker文档的链接,单击左侧导航中的CSS支持以查看支持的各种属性。

你的代码本身是正确有效的,它只是一个不支持的属性,不会抛出任何错误。