如何在数据库中存储字体信息

本文关键字:存储 字体 信息 数据库 | 更新日期: 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, ...]