如何在数据库中存储字体信息
本文关键字:存储 字体 信息 数据库 | 更新日期: 2023-09-27 18:20:12
我正在开发一个用C#实现的Windows应用程序。其中一个要求是用户能够选择一组字体并将其保存到数据库中。我需要为字体存储的信息包括:
- 字体的名称
- 尺寸
- 无论是粗体、斜体还是下划线
到目前为止,我已经将这些信息作为单独的字段存储在数据库中。后来,我根据这些信息构建了Font对象。然而,我发现不可能创建一个具有所有所需设置的新对象(例如,粗体和斜体的字体)。
为了说明,我做了这样的事情(注意,我使用EF,所以方法只是为了说明):
string font_name = GetFontNameFromDatabase();
string font_size = GetFontSizeFromDatabase();
...
Font f = new Font(font_name, font_size);
我的问题是,是否有一种方便的方法可以将字体对象存储在SLQ服务器数据库中。也许是作为一个二进制字段?
您可以使用FontConverter
类来序列化和反序列化您的字体:
var fc = new FontConverter();
Font f1 = new Font("Times New Roman", 12);
var fontAsString = fc.ConvertToInvariantString(f1); // "Times New Roman, 12pt"
Font f2 = (Font)fc.ConvertFromInvariantString(fontAsString);
Console.WriteLine(f2.ToString()); // [Font: Name=Times New Roman, Size=12, ...]