控制iTextSharp中HTML表格内容的字体

时间:2012-12-04 15:37:52

标签: itextsharp

我正在使用最新的DLL并尝试使用以下代码将HTML片段呈现为PDF文档:

    Private Function ReadHtml(ByVal text As String) As Paragraph
        Dim par = NewParagraph()
        Try
            Dim htmlText = Server.HtmlDecode(text)
            If Not htmlText.StartsWith("<") Then
                htmlText = "<span>" & htmlText & "</span>"
            End If
            Using reader As New IO.StringReader(htmlText)
                Dim mh As New MyHandler()
                XMLWorkerHelper.GetInstance().ParseXHtml(mh, reader)
                'use mh.elements
                For Each element In mh.Elements
                    Dim list = TryCast(element, List)
                    If list IsNot Nothing Then
                        element = Clone(list)
                    End If

                    par.Add(element)
                Next
                setFont(par, m_rowFont)


            End Using
        Catch ex As Exception
            Throw New Exception("Exception in ReadHtml using: '" & text & "'")
        End Try
        Return par

    End Function

当此函数返回时,我将该段落并将其插入PDF中。我遇到的问题是,虽然我可以在外部div中设置字体,并且生成的PDF将正确呈现,如果我在div中包含一个HTML表,我已经设置了字体,表中的所有内容使用Page的默认字体呈现。

如何控制表格内容的字体?

1 个答案:

答案 0 :(得分:-1)

你的字体大小和字体系列的Html删除。

    public string ConvertPdfHtml(string html)
    {
        html = CleanStyleAttribute(html, "font-family");
        html = CleanStyleAttribute(html, "font-size");
        ....
        return html;
    }

    private string CleanStyleAttribute(string html, string styleAttributeName)
    {
        return Regex.Replace(html, styleAttributeName + "(?>:(.*?);)","");
    }