iOS 引入系统外字体(.odt/.ttf/.ttc等)

前言

      iOS App开发中,为了突出App的一些特殊性和美观,系统中的字体已经不能满足开发的使用,所有需要引入一些特殊的字体。
      字体有对应的字体文件,一般都是以ttf和otf(或者ttc)为后缀。可以去第三方网站去下载或者Google Fonts下载。

应用

根据我们的需要下载我们需要的字体,下载完之后开始项目操作(注意下载的字体是否有版权和收费等问题)

1.字体引入项目中

拖动下载的字体文件到项目中
字体引入项目

2.配置Info.plist

注意在Info.plist配置中,注意字体的名字和引入字体文件名字必须一致
系统配置

3.查看添加字体的名字

OC中

for (NSString *familsName in [UIFont familyNames]) {
        NSLog(@"----------------------------Font Family Name:%@-----------------------------------",familsName);
        for (NSString *fontName in [UIFont fontNamesForFamilyName:familsName]) {
            NSLog(@"Font Name:%@",fontName);
        }
    }

Swift中

  for familsName : String in UIFont.familyNames {
            print("----------------------------Font Family Name:\(familsName)-----------------------------------")
            
            for fontName in UIFont.fontNames(forFamilyName: familsName) {
                
                print("Font Name:\(fontName)")
            }
        }

输出的结果

4.使用添加的字体

OC中

ttt.font = [UIFont fontWithName:@"HoboStd" size:20];

Swift 中

tttt.font = UIFont.init(name: "HoboStd", size: 20)
### 中标麒麟 Linux 上使用 Qt 读取 ODT 文件的解决方案 在中标麒麟 Linux 系统上,Qt 并未直接提供用于处理 ODT 文件的内置功能。然而,可以通过结合第三方库或工具来实现这一目标。以下是一个可能的解决方案,利用 LibreOffice 的命令行工具将 ODT 文件转换为纯文本文件,然后通过 Qt 进行读取和处理。 #### 解决方案概述 LibreOffice 是一个强大的开源办公套件,支持多种文档格式的转换。可以使用其命令行工具 `soffice` 将 ODT 文件转换为纯文本文件。随后,通过 Qt 的文件读取功能加载并处理该文本文件[^1]。 #### 示例代码 以下是一个完整的示例代码,展示如何在中标麒麟 Linux 系统上使用 Qt 和 LibreOffice 转换并读取 ODT 文件的内容: ```cpp #include <QCoreApplication> #include <QProcess> #include <QFile> #include <QTextStream> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 定义输入的ODT文件路径和输出的TXT文件路径 QString odtFilePath = "/path/to/input_file.odt"; QString txtFilePath = "/path/to/output_file.txt"; // 使用LibreOffice将ODT文件转换为TXT文件 QProcess libreOfficeProcess; QStringList arguments; arguments << "--headless" << "--convert-to" << "txt" << odtFilePath << "--outdir" << "/path/to/output_directory"; libreOfficeProcess.start("soffice", arguments); if (!libreOfficeProcess.waitForStarted()) { qDebug() << "Failed to start LibreOffice."; return -1; } if (!libreOfficeProcess.waitForFinished()) { qDebug() << "LibreOffice conversion failed."; return -1; } // 检查转换是否成功 if (!QFile::exists(txtFilePath)) { qDebug() << "Converted TXT file does not exist."; return -1; } // 使用Qt读取生成的TXT文件内容 QFile file(txtFilePath); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open TXT file for reading."; return -1; } QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); qDebug() << line; // 输出每一行到控制台 } file.close(); return 0; } ``` #### 代码说明 1. **LibreOffice 转换**:通过调用 `soffice` 命令行工具,将 ODT 文件转换为纯文本文件。参数 `--headless` 表示无界面模式运行,`--convert-to txt` 指定输出格式为文本。 2. **Qt 文件读取**:使用 `QFile` 和 `QTextStream` 类读取生成的文本文件,并逐行输出内容到控制台。 3. **错误处理**:对每个关键步骤进行错误检查,确保程序的健壮性[^1]。 #### 注意事项 - 确保系统已安装 LibreOffice,并且 `soffice` 命令可用。 - 替换代码中的文件路径 `/path/to/input_file.odt` 和 `/path/to/output_directory` 为实际路径。 - 如果需要进一步处理文本内容,可以扩展代码逻辑,例如解析、搜索或替换特定文本。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值