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

时间:2014-08-31 23:10:16

标签: c# sql-server fonts

我正在使用C#实现的Windows应用程序。其中一个要求是用户能够选择一组字体并将其保存到数据库中。我需要为字体存储的信息包括:

  • 字体名称
  • 尺寸
  • 是否粗体,斜体,下划线

到目前为止,我将此信息存储为数据库中的单独字段。后来我从这个信息构建了Font对象。但是,我发现无法创建具有所有必需设置的新对象(例如,粗体和斜体字体)。

为了说明我做了这样的事情(请注意我使用EF,因此这些方法仅用于说明):

string font_name = GetFontNameFromDatabase();
string font_size = GetFontSizeFromDatabase();
...

Font f = new Font(font_name, font_size);

我的问题是是否有一种方便的方法在SLQ服务器数据库中存储字体对象。也许作为二元字段?

1 个答案:

答案 0 :(得分:7)

您可以使用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, ...]