每當我使用iTextSharp.text.html.HtmlUtilities.DecodeColor
時,我都會收到驗證警告,說明HtmlUtilities is obsolete
。但是,通過https://github.com/itext/itextsharp的代碼搜索,我發現他們仍然在很多地方使用它。替換過時的iTextSharp HtmlUtilities?
所以,我假設這個班級沒有替代品。是否有計劃讓任何人知道或有任何其他信息我應該知道?在the code
每當我使用iTextSharp.text.html.HtmlUtilities.DecodeColor
時,我都會收到驗證警告,說明HtmlUtilities is obsolete
。但是,通過https://github.com/itext/itextsharp的代碼搜索,我發現他們仍然在很多地方使用它。替換過時的iTextSharp HtmlUtilities?
所以,我假設這個班級沒有替代品。是否有計劃讓任何人知道或有任何其他信息我應該知道?在the code
尋找iTextSharp.text.html.HtmlUtilities.DecodeColor
:
public static BaseColor DecodeColor(String s) {
if (s == null)
return null;
s = s.ToLowerInvariant().Trim();
try {
return WebColors.GetRGBColor(s);
}
catch {
return null;
}
}
你可以看到,它基本上是換到WebColors.GetRGBColor
一個電話,which is not標記爲過時。
因此,一個不錯的選擇是直接撥打WebColors.GetRGBColor
以避免警告。或者,你可以用你來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。
靜態方法通常可以安全地繼續使用,但如果您擔心未來的兼容性問題,則可以將這些方法帶入代碼。我相信'過時'的用法是要和Java版本棄用整個'itextpdf.text.html'軟件包相提並論,我認爲這個軟件包可以讓用戶遠離HTMLWorker。該具體方法實際上可以通過[Color.FromName](https://msdn.microsoft.com/en-us/library/system.drawing.color.fromname(v = vs.110).aspx )。 –
謝謝@ChrisHaas。不幸的是,'System.Drawing.Color.FromName'只適用於指定的顏色(比如''SlateBlue'''),而'iTextSharp.text.html.HtmlUtilities.DecodeColor'解碼兩種指定的顏色以及html樣式'「#AARRGGBB」數字。 –