替换过时的iTextSharp HtmlUtilities?

时间:2015-12-04 23:34:49

标签: .net itextsharp itext

每当我使用iTextSharp.text.html.HtmlUtilities.DecodeColor时,我都会收到HtmlUtilities is obsolete的验证警告。但是,在https://github.com/itext/itextsharp处搜索代码时,我发现他们仍在许多地方使用它。

所以,我假设这个班没有替代品。是否有人计划知道或者是否有任何其他我应该注意的信息?

1 个答案:

答案 0 :(得分:1)

iTextSharp.text.html.HtmlUtilities.DecodeColor查看the code

public static BaseColor DecodeColor(String s) {
    if (s == null)
        return null;
    s = s.ToLowerInvariant().Trim();
    try {
        return WebColors.GetRGBColor(s);
    }
    catch {
        return null;
    }
}

您可以看到它基本上包含了对标记为过时的WebColors.GetRGBColorwhich is not的调用。

因此,一个好的选择是直接调用WebColors.GetRGBColor以避免警告。或者,您可以在pragma语句中包含对DecodeColor的调用:

private static BaseColor GetBaseColor(string value)
{
#pragma warning disable 612, 618
    return iTextSharp.text.html.HtmlUtilities.DecodeColor(value);
#pragma warning restore 612, 618
}

此外,WebColors.GetRGBColor解码命名颜色以及html格式的颜色值(例如 #AARRGGBB)。如果您只需要命名颜色,则可以使用评论中指出的System.Drawing.Color.FromName