首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

测试是否安装了Font

要判断一个程序或操作系统是否安装了字体,可以检查系统资源(如 /usr/share/fonts 文件)或使用专门的程序(如 fc-listfonttools)。

例如,如果要在程序中使用某一种字体,确保程序运行时可访问该字体。在 C++ 中,检查是否已安装字体的示例代码如下:

代码语言:c++
复制
#include<iostream>
#include<fstream>
#include<vector>

bool is_font_installed(const std::string& font_name) {
    /* 检查路径 /usr/share/fonts 中是否存在指定的字体 */
    std::string font_path = "/usr/share/fonts";
    std::vector<std::string> font_list = {};

    std::ifstream f(font_path, std::ios::binary);
    if (!f.fail()) {
        std::string current_font;
        while (getline(f, current_font)) {
            font_list.push_back(current_font);
        }
        return std::find(font_list.begin(), font_list.end(), font_name) != font_list.end();
    }
    f.close();
    return false;
}

int main() {
    std::string font_name = "Roboto-Regular.ttf";
    bool installed = is_font_installed(font_name);

    std::cout << "字体 "<< font_name << " 是否已安装为: "<< installed<< std::endl;
    return 0;
}

在 Python 中,可以使用 font_family() 方法进行类似的操作,例如:

代码语言:python
代码运行次数:0
复制
import re
import os
from fontTools.ttLib import TTFont

def is_font_installed(font_name):
    os_path = os.getcwd()
    fs_path = os.path.join(os_path, "/usr/share/fonts")

    fonts = os.listdir(fs_path)
    for font in fonts:
        if re.match(re.compile(font_name), f"{os.path.join(fs_path, font)}"):
            return True
    return False

f1 = TTFont("Roboto-Regular.ttf")
if f1.fontName:
    print(f1.fontName)
else:
    print("未找到字体")
# 结果:Roboto-Regular.ttf 是否已安装为: False

这些简单的代码示例可说明如何检查字体是否已安装。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 服——渗透测试

    ☞戳他 渗透测试分为 白盒测试 和 黑盒测试 白盒测试就是在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析 黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透...判断域名对应的IP: 首先,我们要判断该域名是否存在CDN的情况,我们可以用多个地点ping来查询。如果查询出的ip数量大于一个的话,则说明该ip地址可能不是真实的服务器地址。...简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。...FTP相关的软件 数据库相关的软件 打开浏览器,查看历史记录,查看某些网站是否保存有用户密码。...在完成了渗透测试之后,我们就需要对这次渗透测试撰写渗透测试报告了。

    40911

    卓基础干货(二):测试以及解析

    1.测试的相关概念 根据是否知道源代码分类: 黑盒测试: a - b - c 边值测试 白盒测试: 根据源代码写测试方法 或者 测试用例; 根据测试的粒度分类: 方法测试:写完一个方法后就测试...单元测试测试一个能够独立运行的业务逻辑单元; 集成测试:整体测试项目 联调 系统测试:对整个系统进行测试 根据测试的暴力程度: 1、冒烟测试:高频次的点击软件 2、压力测试:使用测试工具:...LoadRunner、Jmeter 2.单元测试 Junit 01_Junit单元测试 does not specify a android.test.InstrumentationTestRunner...可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。...Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

    81310

    卓渗透测试工具_渗透测试包括哪些

    0x00 前言 伴随着移动互联网的高速发展,手机端走进普通大众的日常生活,这里我们将基于android系统介绍一些基本android渗透测试必备的使用工具。...5 Kingroot 该应用是方便进行root权限管理,因为进行android渗透测试的时候,一般都需要root权限,并且有root权限极大地方便我们的渗透测试工作。...并且它还有一些实用的功能,如:发现目前的WIFI网络、发现任何外部IP、扫描TCP服务、ping、traceroute 、lookupDNS、探测某台终端是否在线、测试TCP链接等等。...如果失效了,可以自行百度搜索该APP, 链接:http://pan.baidu.com/s/1o80akPk 密码:o5r8 2 zANTI zPacketEditor – 用于中间人攻击(MITM)测试时可进行人工渗透测试...我给出了百度网盘地址,如果失效了,可以自行百度搜索该APP,链接:http://pan.baidu.com/s/1boU88qV 密码:ij76 3 cSploit Sploit作为dSploit的继任者,是一个卓网络分析和渗透工具套装并专为

    3K20

    python测试request代理IP是否替换

    今天我们来讨论如何使用Python测试Request模块中的HTTP代理是否成功替换了我们的真实IP地址。...下面是一个使用Python测试HTTP代理的示例代码:import requests# 设置HTTP代理proxies = { "http": "http://HTTP代理:端口号", "https...如果我们的HTTP代理设置正确,并且我们的真实IP地址被成功替换了,我们应该会在控制台中看到类似于以下内容的输出:{"origin": "HTTP代理, 真实IP"}以上只是测一次,如果想要更准确,可以多循环测试几次...:class CheckIP: """ 检查IP是否更换成功 http: http://ip.tool.chinaz.com/ https: https://ipip.net...因此,在使用HTTP代理时,我们需要谨慎选择可靠的HTTP代理,优质的HTTP代理厂商能为我们提供更安全可靠、高质量的HTTP代理,可用性也能得到保证,无需我们反复测试其可用性。

    69410

    卓CTS测试(测试手机性能的软件)

    CTS和GTS测试基本操作步骤 CTS 全称 Compatibility Test Suite(兼容性测试),CTS的目的就是让各种Android设备(如手机)开发商能够开发出兼容性更好的Android...CTS测试相关资料下载链接(需访问国外网站):http://source.android.com/compatibility/downloads.html 一、CTS和GTS测试测试机的预置 1、将测试机恢复出厂设置...一般情况下插卡起网后默认的就是cmnet 13、勾选允许安装非电子市场的应用程序: 1、Settings > Security > Unkonwn sources,勾选 2、复测时要将勾去掉 14、安装设备管理,允许设备管理:(卓...,因为在测试的过程中有几项是需要用到后摄像头对焦拍照等 三、GTS测试电脑端操作步骤 GTS的预置条件和CTS的是基本一样的,等测试机设置好后在PC端按以下步骤操作: ①ls ②cd android_sdk_linux4.4...八、在测试过程中如果有遇到关于蓝牙的测试项一直测试不过,可以尝试着安装 APP 后再进行测试

    2.9K20

    用对数器测试算法是否正确

    对数器的概念 在做oj竞赛时,有时候写出了解法却并不确定自己的解法是否可以ac,即使有些竞赛可以重复提交,但不知道测试数据往往也不知道错在哪里。这时候就可以手写一个对数器来测试一下自己的代码了。...对数器的逻辑是,先写一个纯暴力解法,正确率高,再写一个优化解法,就是想测试的解法,再根据题目各数据范围用随机数做为输入,同时运行两个解法,看结果是否相同,如果不同就打印输入输出,如果大量随机样本测试后两方法结果都相同...,则说明测试方法正确。...实现对数器 以一道oj题为例 1.编写测试解法 待测试解法 float xn,xm; //到达边缘前,每段走的n和m int yun,yum; //剩余距离 int...或者还可以改一下测试循环次数和变量数据范围,看一下10个测试在该输入范围下大概能过几个。

    20020

    你对测试开发是否有误解

    群里经常有人在讨论一个问题,“我会利用某某框架写自动化测试脚本,算不算是测试开发了呢?在面试的时候,这项技能是否有较大的加分?”。...而测试开发,则更多的需要自己从当前测试团队中,去寻找测试活动、测试流程中的痛点,并加以改进。产出物可以是个小工具,可以是某个框架的定制化开发,也可以是多个平台的集成。...但是,测试职能却一直在提升,不管是需求侧的DOD,还是研发侧的TDD,DDD,都在强调可测试性,强调质量保证。所以,如何在敏捷研发中突显测试职能的价值,成为了全体测试人员都应该思考的一个话题。...对于测试架构师而言,他需要的是“端到端”的测试把控: 在需求侧,他需要去了解产品的商业目标,去梳理用户的使用场景,输出产品的整体测试策略。...如果大家对测试架构师想要了解更多,可以在《测试架构师修炼之道》中找到更多的答案。这本书非常推荐测试人员去看看,去学习。

    33730
    领券