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

use*_*901 1 c# sql-server fonts

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

  • 字体的名称
  • 尺寸
  • 无论是大胆,斜体,还是强调

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

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

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

Font f = new Font(font_name, font_size);
Run Code Online (Sandbox Code Playgroud)

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

Blo*_*ard 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, ...]
Run Code Online (Sandbox Code Playgroud)