提问人:Airsource Ltd 提问时间:12/12/2008 最后编辑:Airsource Ltd 更新时间:6/10/2019 访问量:240568
我可以在 iPhone 应用程序中嵌入自定义字体吗?
Can I embed a custom font in an iPhone application?
答:
是的,您可以包含自定义字体。请参阅 UIFont 上的文档,特别是方法。fontWithName:size:
1) 确保将字体包含在您的资源文件夹中。
2)字体的“名称”不一定是文件名。
3) 确保您拥有使用该字体的合法权利。通过将其包含在您的应用程序中,您也在分发它,并且您需要有权这样做。
评论
我是这样做的:
加载字体:
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
现在,在你的 中,做这样的事情:drawRect:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph's the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
基本上,您必须在文本中进行一些蛮力循环,并使用幻数来模糊以在字体中找到您的偏移量(在这里,请参阅我使用 29),但它有效。
此外,您必须确保字体在法律上是可嵌入的。大多数不是,而且有专门从事此类事情的律师,所以要小心。
评论
CGContextShowTextAtPoint()
㚧ATSApplicationFontsPath
一个简单的 plist 条目,允许您将字体文件包含在您的应用程序资源文件夹中,它们在您的应用程序中“正常工作”。
评论
它还没有发布,但下一个版本的 cocos2d(2D 游戏框架)将支持可变长度的位图字体作为字符映射。
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
作者没有确定这个版本的发布日期,但我确实看到一个帖子表明它将在未来一两个月内发布。
编辑:从iOS 3.2开始,此功能是内置的。如果需要支持 3.2 之前版本,仍可使用此解决方案。
我创建了一个简单的模块来扩展和处理加载 .ttf 文件。我在 Apache 许可下将其开源发布,并将其放在 github 上。UILabel
重要文件是 和 。FontLabel.h
FontLabel.m
它使用了 Genericrich 答案中的一些代码。
在此处浏览源代码。
或
将字体文件复制到资源中
将名为 UIAppFonts 的键添加到文件中。(“应用程序提供的字体”)
Info.plist
将此键设为数组
对于您拥有的每种字体,输入字体文件的全名(包括扩展名)作为 UIAppFonts 数组的项目
救
Info.plist
现在,在您的应用程序中,您可以简单地调用以获取自定义字体以与您的 和 等一起使用...
[UIFont fontWithName:@"CustomFontName" size:15]
UILabels
UITextViews
评论
编辑:从iOS3.2开始,此答案已失效;使用 UIAppFonts
我能够成功加载自定义的唯一方法是通过私有 GraphicsServices 框架。UIFont
以下命令将加载应用程序主包中的所有字体:.ttf
BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
return newFontCount;
}
加载字体后,可以像 Apple 提供的字体一样使用它们:
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];
GraphicsServices 甚至可以在运行时加载,以防将来 API 消失:
#import <dlfcn.h>
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
if (frameworkPath) {
void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
if (graphicsServices) {
BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
if (GSFontAddFromFile)
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
}
}
return newFontCount;
}
评论
[NSString sizeWithFont:[UIFont fontWithName:@"customFont" size:14]];
也许作者忘了给字体起一个 Mac FOND 名称?
- 在 FontForge 中打开字体,然后转到 Element>Font Info
- 有一个“Mac”选项,您可以在其中设置 FOND 名称。
- 在“文件>导出字体”下,您可以创建一个新的 ttf
您也可以尝试导出对话框中的“Apple”选项。
免责声明:我不是iPhone开发人员!
我一直在iOS 3.1.2上尝试此页面上的各种建议,这些是我的结论:
即使使用 FontForge 设置了 FOND 名称,简单地使用 Resources 目录中的字体也无法正常工作。[UIFont fontWithName:size:]
[UIFont fontWithName:size:]
如果首先使用 GSFontAddFromFile 加载字体,则将起作用。但不是 iOS 3.1.2 的一部分,因此必须按照 @rpetrich 的描述动态加载。GSFontAddFromFile
iOS 3.2 及更高版本支持此功能。直接来自 iPhone OS 3.2 中的新功能文档:
自定义字体支持
想要使用自定义字体的应用程序现在可以将这些字体包含在其应用程序包中,并通过在其 Info.plist 文件中包含 UIAppFonts 键来向系统注册这些字体。此键的值是一个字符串数组,用于标识应用程序捆绑包中的字体文件。当系统看到该键时,它会加载指定的字体并使其可供应用程序使用。
在 中设置字体后,您可以像在 IB 中以任何其他字体一样使用自定义字体,也可以以编程方式使用。Info.plist
Apple 开发者论坛上有一个正在进行的主题:
https://devforums.apple.com/thread/37824(需要登录)
这是一个关于如何实现这一点的优秀而简单的 3 步教程(已删除断开的链接)
- 使用 Xcode 作为资源将自定字体文件添加到项目中
- 将名为 .
Info.plist
UIAppFonts
- 将此键设为数组
- 对于您拥有的每种字体,输入字体文件的全名(包括扩展名)作为数组中的项
UIAppFonts
- 救
Info.plist
- 现在,在您的应用程序中,您可以简单地调用以获取自定义字体以用于 UILabels 和 UITextViews 等...
[UIFont fontWithName:@"CustomFontName" size:12]
另外:确保字体位于 Copy Bundle Resources 中。
评论
在 iOS 4 中使用自定义字体有一种简单的方法。
- 将字体文件(例如,)添加到 XCode 中项目的 Resources 文件夹中。
Chalkduster.ttf
- 打开并添加一个名为 的新密钥。此键的类型应为 array。
info.plist
UIAppFonts
- 将您的自定义字体名称添加到此数组中,包括扩展名 ()。
Chalkduster.ttf
- 现在,您可以在应用程序中使用。
[UIFont fontWithName:@"Chalkduster" size:16]
不幸的是,IB不允许使用自定义字体初始化标签。请参阅此问题以解决此问题。我最喜欢的解决方案是使用自定义子类:UILabel
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
评论
在查找器中找到TTF,然后单击“获取信息”。在标题“全名:”下,它给了我一个名字,然后我使用了这个名字(我只是复制并粘贴了确切的名称,在这种情况下不需要“.ttf”扩展名)。fontWithName
一个重要的注意事项:您应该使用与字体相关的“PostScript名称”,而不是其全名或姓氏。此名称通常与字体的正常名称不同。
更好的解决方案是将新属性“”添加到文件中。Fonts provided by application
info.plist
然后,您可以像往常一样使用自定义字体。UIFont
这是如何操作的分步说明。不需要额外的库或任何特殊的编码。
http://shang-liang.com/blog/custom-fonts-in-ios4/
大多数情况下,问题出在字体上,而不是方法上。最好的方法是使用一种肯定会起作用的字体,例如 verdana 或 geogia。然后更改为所需的字体。如果它不起作用,可能是字体名称不正确,或者字体不是格式良好的字体。
对于 iOS 3.2 及更高版本: 使用上述几种方法,它们是:
- 将字体文件(例如,Chalkduster.ttf)添加到 XCode 中项目的 Resources 文件夹中。
- 打开 info.plist 并添加一个名为 UIAppFonts 的新项。此键的类型应为 array。
- 将您的自定义字体名称添加到此数组,包括扩展名(“Chalkduster.ttf”)。
- 在您的应用程序中使用。
[UIFont fontWithName:@"Real Font Name" size:16]
但“真实字体名称”并不总是您在字体手册中看到的字体名称。最好的方法是询问您的设备它看到哪些字体以及确切的名称是什么。
我使用发布在以下位置的uifont-name-grabber: uifont-name-grabber
只需将您想要的字体拖放到 xcode 项目中,将文件名添加到其 plist 中,然后在您正在构建的设备上运行它,它就会使用预期的名称通过电子邮件向您发送完整的字体列表。UIFont fontWithName:
如果您使用的是 ,则必须根据线程中的 https://stackoverflow.com/users/1292829/arne 将 添加到 Custom Fonts Xcode 4.3 的下方。这对我有用,以下是我为自定义字体在我的应用程序中工作所采取的步骤:xcode 4.3
font
Build Phase
Copy Bundle Resources
- 将字体添加到项目中。我将(或)文件拖放到我创建的新组中,并接受了 xcode 选择的 .
OTF
TTF
copying the files over to the project folder
- 创建数组时,您的字体将作为数组中的项目列出。只是 ,而不是扩展名(例如 “”、“”)。
UIAppFonts
names
GothamBold
GothamBold-Italic
- 单击屏幕左侧顶部的方式。
project name
Project Navigator
- 单击出现在 xcode 主区域中的选项卡。
Build Phases
- 展开“”部分,然后单击以添加字体。
Copy Bundle Resources
"+"
- 从文件导航器中选择字体文件,单击时会弹出打开。
"+"
- 对您必须的每种字体执行此操作。
add to the project
在现有的 iOS 应用程序上添加新字体非常容易。
您只需要将字体(例如 font.ttf)添加到您的资源文件夹中。
打开您的应用程序。添加新行作为“应用程序提供的字体”,并将字体名称键入为 font.ttf。info.plist
并在设置字体时执行setFont:"corresponding Font Name"
您可以通过 检查您的字体是否被添加。NSArray *check = [UIFont familyNames];
它返回应用程序支持的所有字体。
我已将此页面上的一些建议组合成适合我在 iOS 5 上的建议。
首先,您必须将自定义字体添加到您的项目中。然后,您需要遵循@iPhoneDev的建议,并将字体添加到您的 info.plist 文件中。
执行此操作后,这将起作用:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
但是,您需要知道字体的 Postscript 名称。只需遵循 @Daniel Wood 的建议,在 FontBook 中按 command-i 即可。
然后,享受您的自定义字体。
首先将 .odt 格式的字体添加到您的资源中,在本例中,我们将使用 DINEngschriftStd.otf,然后使用此代码将字体分配给标签
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
要确保您的字体已加载到项目中,只需调用
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
在 .plist 上,必须声明字体。只需添加“应用程序提供的字体”记录,并添加带有字体名称的项目 0 字符串 (DINEngschriftStd.otf)
在 Info.plist 中,添加条目“应用程序提供的字体”,并将字体名称作为字符串包含:
Fonts provided by application
Item 0 myfontname.ttf
Item 1 myfontname-bold.ttf
...
然后通过运行以下命令来检查以确保包含您的字体:
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
请注意,ttf 文件名可能与设置标签字体时使用的名称不同(可以使用上面的代码获取“fontWithName”参数):
[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];
您可以在 resources 文件夹中添加所需的“FONT”文件。然后转到项目文件并使用 KEY“应用程序提供的字体”和值作为“字体名称”。Info.plist
然后,您可以调用该方法[UIFont fontwithName:@"FONT NAME" size:12];
评论
我使一切成为可能,但是新字体没有出现,所以我找到了解决方案:
当您拖动 fot 文件(otf 或 ttf)时,不要忘记选中“添加到目标”下的复选框。
完成后,您的字体将出现,一切正常。
按照此步骤操作
1)在项目中复制字体
2)以源代码模式打开文件...(注意 - 不要打开.plist
info.plist
)
3)在此之前 - 右键单击您的字体并在 fontforge 或类似的编辑器中打开它,并在您的系统中打开它,它应该是install
install
4)输入这个
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5)在您的class .m
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
这里的 lblPoints 将根据您的情况进行更改UILabel
做!! 如果您的字体仍然无法正常工作,请先检查您的字体兼容性
评论
info.plist
从 iOS 4.1 开始,有一种使用自定义字体的新方法。它允许您动态加载字体,无论是来自应用程序中包含的文件、下载的数据还是您拥有的内容。它还允许您根据需要加载字体,而旧方法在应用程序启动时加载所有字体,如果您有许多字体,这可能需要很长时间。
新方法在 ios-dynamic-font-loading 中进行了描述
您可以使用该函数,为其提供包含字体数据的缓冲区。然后,它可用于 Web 视图,就像使用旧方法一样。下面是该链接中的示例代码:CTFontManagerRegisterGraphicsFont
UIFont
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
评论
kCTFontManagerErrorAlreadyRegistered
虽然上面的一些答案是正确的,但我为仍然有字体问题的人写了一个详细的视觉教程。
上面的解决方案告诉您将字体添加到plist并使用
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
是正确的。请现在使用任何其他黑客方式。如果您仍然在查找字体名称和添加它们时遇到问题,这里是教程 -
评论
作为增强@bdev的答案,这里是一个更新版本,仅列出自定义字体。
第 1 步:使用 @bdev 的答案找出所有系统字体并保存到文件。
将以下代码放在第一个视图控制器的 、之后(或 App Delegate 中):-(void)viewDidLoad
[super viewDidLoad]
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray array];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
[system_fonts addObject:fontName];
}
}
if([paths count] > 0) {
[system_fonts writeToFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"] atomically:YES];
}
运行应用程序一次。之后停止它。
第 2 步:将自定义字体添加到项目
使用已接受答案中显示的方法,添加您的自定义字体 ( 请记住通过选中 来更新并添加要构建的字体文件。.plist
Add To Target
第 3 步:将系统字体与当前字体列表进行比较
将步骤 1 中的代码替换为:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray arrayWithContentsOfFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"]];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
if (![system_fonts containsObject:fontName]) {
NSLog(@"%@", fontName);
}
}
}
运行应用程序,将显示您添加的自定义字体列表。
这适用于 iOS 3.2 到 iOS 6(未来的版本可能工作正常)。与 和 一起使用。.ttc
.ttf
是的,您可以在应用程序中使用自定义字体
一步一步地遵循那里:
- 将自定义字体文件添加到支持文件中的项目
- 将名为 UIAppFonts 的键添加到文件中。
Info.plist
- 将此键设为数组
- 对于您拥有的每种字体,输入字体文件的全名(包括扩展名)作为 UIAppFonts 数组的项目
- 立即保存在您的应用程序中,您只需调用即可获取自定义字体以用于您的
Info.plist
[UIFont fontWithName:@"your Custom font Name" size:20]
UILabels
应用后,如果您没有得到正确的字体
然后你双击自定义字体,仔细看看顶部的字体名称是来的
并复制此字体,粘贴,在这里希望您能得到正确的答案[UIFont fontWithName:@" here past your Custom font Name" size:20]
是的,您可以在应用程序中使用自定义字体
一步一步地遵循那里:
将自定义字体文件添加到支持文件中的项目
将密钥添加到名为 UIAppFonts 的 Info.plist 文件。
将此键设为数组
对于您拥有的每种字体,输入字体文件的全名(包括扩展名)作为 UIAppFonts 数组的项目
保存 Info.plist 现在,在应用程序中,只需调用 [UIFont fontWithName:@“your Custom font Name” size:20] 即可获取用于 UILabels 的自定义字体 应用后,如果你没有得到正确的字体,那么你双击自定义字体,仔细看到顶部的字体名称即将到来并复制这个字体,粘贴,这里[UIFont fontWithName:@“这里过去了你的自定义字体名称”大小:20]
我希望你能得到正确的答案
使用 + 和 +,您可以轻松做到这一点。步骤如下:iOS 8
Xcode 6
1)将字体拖放到“支持文件”文件夹中。不要忘记在“添加到目标”部分标记您的应用。从这一刻起,您可以使用此字体并从字体托盘中选择它。Xcode
IB
2) 要使此字体在您的设备中可用,请打开您的 并添加密钥。它将包含项目 0 键,您必须添加您的字体名称作为值。字体名称可能与字体文件名不同。但首先,在大多数情况下,尝试添加您的文件名。info.plist
Fonts provided by application
如果没有,这篇文章总是对我有帮助。
以下是本文中代码的快速片段,可帮助您找到字体名称。
func allFonts(){
for family in UIFont.familyNames(){
println(family)
for name in UIFont.fontNamesForFamilyName(family.description)
{
println(" \(name)")
}
}
}
编辑
我想提一下,您需要将字体文件添加到目标的构建阶段,复制捆绑包资源。没有它,您将无法在设备上看到您的字体。这可能会导致意外行为。
例如,当有自定义字体时,我遇到了一个 ,但此字体不在 Copy Bundle Resources 中。当我开始使用这个时,在调用函数之前有大约 4 秒的延迟。解决字体问题消除了这种延迟。所以,建议检查两次。(rdar://20028250)顺便说一句,我无法重现该错误,但我确定问题出在字体上。bug
UITextField
viewcontroller
textfield
viewDidLoad
评论
我建议在这里遵循我最喜欢的简短教程之一:此信息来自 http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/。
步骤1 - 将.ttf或.otf从Finder拖到项目中
注意 - 确保在主应用程序目标上单击“添加到目标”框
如果您忘记单击以将其添加到目标中,请单击项目层次结构中的字体文件,然后在右侧面板上单击“目标成员资格”部分中的主应用程序目标
要确保您的字体是应用目标的一部分,请确保它们在构建阶段显示在 Copy Bundle 资源中
第 2 步 - 将字体文件名添加到您的 Plist
转到“信息”部分中的“自定义iOS目标属性”,然后向该部分中的项目添加一个键,称为(在键入时,您应该看到它作为一个选项出现,并且它会将自己设置为数组。单击小箭头以打开数组项,然后键入已添加的 .ttf 或 .otf 文件的名称,以便让应用知道这些是你希望可用的字体文件Fonts provided by application
注意 - 如果您的应用程序在此步骤后立即崩溃,请检查您在此处添加的项目上的拼写
第 3 步 - 找出字体的名称,以便您可以调用它们
很多时候,应用程序看到的字体名称与你认为的基于该字体的文件名的字体名称不同,请将其放在代码中,并查看应用程序创建的日志,以查看要在代码中调用的字体名称
迅速
for family: String in UIFont.familyNames(){
print("\(family)")
for names: String in UIFont.fontNamesForFamilyName(family){
print("== \(names)")
}
}
目标 C
for (NSString* family in [UIFont familyNames]){
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]){
NSLog(@" %@", name);
}
}
您的日志应如下所示:
第 4 步 - 使用第 3 步中的名称使用新的自定义字体
迅速
label.font = UIFont(name: "SourceSansPro-Regular", size: 18)
目标 C
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
Swift,代码方式:(也适用于 swift 2.0)
将所需的字体添加到您的项目中(就像添加图像一样,只需拖拽到 Xcode),确保它们针对您的项目
添加此方法并加载自定义字体(推荐于appDelegate didFinishLaunchingWithOptions
)
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
使用示例:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
使用字体:
UIFont(name: "My-Font", size: 16.5)
评论
正如之前的所有答案所表明的那样,这很有可能,而且在较新的iOS版本中也很容易。
我知道这不是一个技术性的答案,但由于很多人确实犯了错误(因此有效地违反了许可证,如果你被起诉,可能会花费你很多钱),让我在这里强调一个警告:在 iOS(或任何其他类型)应用程序中嵌入自定义字体基本上是重新分发字体。大多数商业字体的许可证都禁止重新分发,因此请确保您按照许可证行事。
上一个:定时环路结果
评论