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

Pango/Cairo/Fontconfig:使unicode字体回退/链接在Windows中正常工作

在Windows中使用Pango、Cairo和Fontconfig来确保Unicode字体回退/链接正常工作,需要进行一些配置和调整。以下是一些关键步骤和建议:

1. 安装必要的库

确保你已经安装了以下库:

  • Pango
  • Cairo
  • Fontconfig

在Windows上,你可以通过以下方式安装这些库:

  • 使用MSYS2或Cygwin来安装这些库。
  • 或者从源代码编译这些库。

2. 配置Fontconfig

Fontconfig是用于配置字体回退和链接的库。你需要确保Fontconfig的配置文件正确设置。

  1. 创建或编辑Fontconfig配置文件: 在Windows上,Fontconfig的配置文件通常位于C:\Windows\Fonts\fonts.conf。你可以创建或编辑这个文件。
  2. 配置字体回退: 在fonts.conf文件中,你可以定义字体回退链。例如: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="family" compare="eq">serif</test> <edit name="family" mode="prepend" binding="strong"> <string>Times New Roman</string> <string>Georgia</string> </edit> </match> <match> <test name="family" compare="eq">sans-serif</test> <edit name="family" mode="prepend" binding="strong"> <string>Arial</string> <string>Helvetica</string> </edit> </match> <match> <test name="family" compare="eq">monospace</test> <edit name="family" mode="prepend" binding="strong"> <string>Courier New</string> <string>Consolas</string> </edit> </match> </fontconfig>
  3. 确保Fontconfig配置文件被加载: 你可以通过设置环境变量FONTCONFIG_PATH来确保Fontconfig配置文件被正确加载: set FONTCONFIG_PATH=C:\Windows\Fonts

3. 配置Pango和Cairo

Pango和Cairo需要知道Fontconfig的配置,以便正确地进行字体回退和链接。

  1. 初始化Pango和Cairo: 在你的应用程序中,确保正确初始化Pango和Cairo,并使用Fontconfig进行字体配置。
  2. 设置字体配置: 你可以使用Pango的FcConfig来设置字体配置: #include <pango/pango.h> #include <fontconfig/fontconfig.h> int main() { FcInitLoadConfigAndFonts(NULL, NULL); PangoFontMap *fontmap = pango_cairo_font_map_new(); PangoContext *context = pango_font_map_create_context(fontmap); // 使用context进行文本渲染 g_object_unref(context); g_object_unref(fontmap); FcFini(); return 0; }

4. 测试和调试

确保你的应用程序能够正确加载和使用字体回退链。你可以通过以下方式进行测试和调试:

  • 检查日志和错误信息。
  • 使用字体查看器工具来验证字体是否正确加载。
  • 确保所有依赖库和配置文件都正确安装和配置。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux下面的字体乱码的解决方法

在这篇文章,我们来学习一下“linux下面的字体乱码的解决方法”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。...在程序里面,一段文字,可能是用unicode存储的,但是我们的运行环境是gb2312,怎么把unicode的文字变成gb2312编码的文字,这个就要靠glibc了。...所以想要正常使用中文,还要保证glibc也支持中文。 好了,关于字体系统就说这么多了。fontconfig是很先进的解决方案,非常灵活,配置也很方便,网上资料也比较多。...好了,现在重新启动X ---为了使这个encodings.dir生效,很重要的。   ...windows下面找去) /etc/gtk/这个目录里面有很多gtkrc.xxx,分别控制不同locale时的字体方案。

1.7K10

揭开Wayland的面纱(一):X Window的前生今世

在本篇,我将回顾历史,展望未来,通过简易的文字,来先回顾一下X Window,从而继续解答Wayland。...所以啊,这23年,X Window除了继续完善核心协议、驱动以外,很大程度上,都是扩展使它保持"与时俱进",比如说: 要多头显示支持,这个是由"Xinerama"扩展实现的; 要有多媒体视频回放的支持,...现在Cairo支持各种不同的后端,来向其输出图形,比如X、Windows的GDI、Mac OS X的Quartz,还有各种文件格式:PNG、PDF,当然还有SVG。...在Cairo之上,还有文字排版库:Pango,同样很明显的,处理文字排版,都不会用XFont之类的东西了,而是直接用Pango画。当然Pango也是跨平台的。...尽管在Linux平台下,CairoPango的发挥依然是基于X Window的,但X Window充其量仅仅是一个"backend"而已,并不是少它不行。

4.7K80
  • 一步解决R中文字符问题

    仔细看导出页面提到了「cairo_pdf」,这就是关键所在。 ❝Cairo是R的一个包,用于创建向量图形(如PDF、SVG)和位图图形(如PNG、BMP、GIF、JPEG)。...它基于Cairo图形库,该库是一个跨平台的图形API,支持多种输出设备。Cairo包支持中文显示,它支持Unicode和多种文本渲染选项,因此可以显示中文和其他多字节语言字符。...❞ 安装cairo包 install.packages("Cairo") 修改Graphics设置 ❝要访问和修改这些设置,可以在RStudio按照以下步骤操作: 1.打开RStudio 2.在菜单栏...(全局选项...) 3.在弹出的Options窗口中,从左侧菜单选择General 在General设置,找到Graphics这里列出了上述的一些设置项,选择Cairo点击Apply->OK ❞ 完成上述设置后...以上操作为Macos系统 windows系统则需要在代码中使用showtext包进行字体渲染,若不进行渲染则导出pdf时字体会乱码 install.packages("showtext") library

    53510

    pycharm 中文乱码_pycharm中文字体设置

    问题:pycarm里面的中文,没有办法正常显示 原因:因为Pycharm会使用系统默认的字体,所以当系统没有这个字体的时候,他就没法显示 解决办法: sudo yum -y install fontconfig...(安装字体库) 安装完成后,在/usr/share目录就可以看到fonts和fontconfig目录了 寻找中文字体(可以在windows里面找,路径:C:\Windows\Fonts) cd.../usr/share/fonts && sudo makedir chinese 将寻找的中文字体放到/usr/share/fonts/chinese sudo chmod -R 755 /usr...-e /usr/share/X11/fonts/encodings/encodings.dir sudo vim /etc/fonts/fonts.conf, 如下图 刷新内存字体缓存使配置对系统生效...:fc-cache 重启pycharm 设置配置的中文字体:点击PyCharm左上角的File→setting,然后配置如下: 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    1.4K10

    Linux下如何安装使用puppeteer

    前提: 我需要用puppeteer实现抓取并下载百度图片中指定关键词的前100张图片, 程序在本地(Windows)下可以正常运行, 但是部署到服务器(Linux)上 就总是报错:cannot find...install puppeteer --ignore-scripts --save 3、下载一个Chromium放到指定位置 3.1 在node_modules/puppeteer/package.jsonpuppeteer.chromium_revision...……) #依赖库 yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86...libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 nss.x86_64 -y #字体...在最新一次安装puppeteer运行程序后报错,我在2020-4-23安装的puppeteer时版本已经是3以上了,安装的Chromium版本是737027,在网上查了很多资料都没有找到解决办法,最后决定回退

    15.2K10

    Tina_Linux_图形系统_开发指南

    电阻屏首先要确保触摸驱动正常工作,有触摸节点生成,比如说是/dev/input/event1,可以执行 下面的命令,再触摸屏幕看串口有无打印。...其他两个测试程序也是这 样执行: ephoto terminology 还可以执行elementary_config去配置elf,可以配置界面渲染的模式,字体、控件的大小等 等。...5 GTK+ 5.1 GTK+说明 GTK+是用来创造图形界面的库,它可以运行在许多类UNIX系统,Windows和OSX。GTK+ 按照GNU LGPL许可证发布,这个许可证对程序来说相对宽松。...cairo Cairo是一个支持复杂设备输出的2D图形库。 Pango Pango是一个国际化正文布局库。它围绕一个表现正文段落的PangoLayout ob- ject。...目前Tina移植了Flutter 2.10.4与Demo,注意Flutter应用只能在glibc编译工具下运 行。

    13.3K10

    全志 Tina Linux 图形系统 框架介绍 最全介绍 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland

    电阻屏首先要确保触摸驱动正常工作,有触摸节点生成,比如说是/dev/input/event1,可以执行 下面的命令,再触摸屏幕看串口有无打印。...其他两个测试程序也是这 样执行: ephoto terminology 还可以执行elementary_config去配置elf,可以配置界面渲染的模式,字体、控件的大小等 等。...5 GTK+ 5.1 GTK+说明 GTK+是用来创造图形界面的库,它可以运行在许多类UNIX系统,Windows和OSX。GTK+ 按照GNU LGPL许可证发布,这个许可证对程序来说相对宽松。...cairo Cairo是一个支持复杂设备输出的2D图形库。 Pango Pango是一个国际化正文布局库。它围绕一个表现正文段落的PangoLayout ob- ject。...目前Tina移植了Flutter 2.10.4与Demo,注意Flutter应用只能在glibc编译工具下运 行。

    16.9K10

    Ubuntu16.04:Ubuntu16.04+Windows10双系统问题记录

    重启计算机,进入win10“安全模式”,进入安全模式后再重启,正常进入win10正常。...Wireless LAN Soft blocked: no Hard blocked:no 3:hci0: Bluetooth Soft blocked: yes Hard blocked: no 即wifi模块工作正常...# 然后将时间更新到硬件上: sudo hwclock --localtime --systohc 重新进入windows10,发现时间恢复正常了!...选择下载的主题、图标、鼠标指针、字体 终端的外观设置 在终端界面下右键选择配置文件首选项 勾选上“使用透明背景”将其透明度稍微拉到10%左右 将“内置方案”改成“Tango” cairo-dock #...安装 sudo apt-get install cairo-dock # 启动 cairo-dock 在dash菜单搜索“启动应用程序”并打开 点击添加 填入添加信息:“cairo-dock”

    2.7K30

    在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验

    准备工作 本篇文章采用Mono+CentOS+Jexus的方式实现部署.Net的Web应用程序(实战,上线项目)....文章的Linux系统为:腾讯云 CentOS 7.1 64位 数据库为SQL Server 2008R2(注意:数据库并不在Linux上部署而是在一台Windows Server上) 效果如下: ?...make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel...  cairo-devel 3.安装Mono需要的GDI+兼容API的库Libgdiplus cd /usr/local/src/ wget http://download.mono-project.com...既使这个网站是一个纯粹的反向代理站,也得填) #可选项 hosts=mysite.cn,www.mysite.cn    # 网站域名(建议填写),可以用泛域名,比如:*.mysite.cn(不填此项或只填一个

    84160

    杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

    它从 API 级别就分离出 .NET Framework 不跨平台的部分,然后把它们从 .NET 的核心仓库移除,换成 .NET 的扩展框架(如 WPF / Windows Forms)。...我们小结一下: GDI+ 是 Windows 上的图形设备接口(Graphics Device Interface),用来完成一些和绘制有关的工作,用以解决不同应用程序开发者需要面向具体的硬件绘图造成的兼容负担...跨平台的关键 libgdiplus libgdiplus 是在非 Windows 操作系统上提供 GDI+ 兼容 API 的 Mono 库,而其跨平台图形绘制的大部分关键实现靠的是 Cairo 库。...引擎来替代自己的实现,可通过 –with-pango 选项开启 pango 引擎,但没实现的功能更多 其他 还有其他一些没实现的功能 可在这里看到尚未实现的功能列表 libgdiplus/TODO at...IL2CPP 里在编辑器里可以正常使用(当然能正常,因为编辑器又没用 IL2CPP),打包后出现的异常如下(所有的 System.Drawing 方法调用都有异常): 1 2 NotSupportedException

    2K60

    在Spring Boot中使用iTextPDF创建动态PDF文档

    ,如果是中文,则需注意linux不存在windows字体,中文乱码或者写不进去 FontFactory.registerDirectories(); Font chineseFont...此前,我们成功为服务器添加了Windows字体库,因此我们可以直接从系统获取字体。接下来,我们将介绍在Linux添加Windows字体的操作步骤。...windows字体库的位置:C:\Users\Administrator\AppData\Local\Microsoft\Windows\Fonts Linux 添加windows字体库 ubuntu...将windows字体库Fonts 复制到目录 /usr/share/fonts 下,执行如下权限命令: sudo chmod -R 777 Fonts 然后执行以下命令使字体生效 sudo fc-cache...install -y fontconfig cd /usr/share/fonts/ mkfontscale mkfontdir fc-cache fc-list 构建具有windows字体库的

    44710

    我用编程破解了细节狂魔何同学的秘密

    # MacOS X `brew install pkg-config cairo pango libpng jpeg giflib librsvg` # Linux `sudo apt-get install...build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev` 因为我很少用windows,所以...windows的小伙伴自己去看官方介绍把,https://github.com/Automattic/node-canvas 使用这个库绘图的API设计和网页canvas基本相同。...16 * * *' # 也允许这个工作流在github aciton面板手动触发 workflow_dispatch: # 工作流内有哪些任务 jobs: # 此工作流包含一个任务名为build...配置的secrets.xxx是我们代码运行时携带的参数,为了让大家更方便的fork此开源仓库,所以我将四个B站用户身份所对应的参数设置成了可自定义的。

    1.1K20

    大型割接方案怎么编写?需要注意什么问题?

    避免割接后与客户出现争议时无证可查; 割接如需要新增或者更换设备,则需提前对新设备进行测试、如有新增路,则需对路进行测试,如果有多家厂商设备时,要进行合并模拟测试; 了解现网中网络设备的VRP版本及相应版本可能存在的...三、项目验收阶段 (1)交叉测试阶段 查看硬件、协议运行状态,邻居、路由信息等;如果协议及路由均没问题则可进行连通性测试(Ping、Tracer等)、主备测试,测试备用设备或者备用路是否正常工作,以免日后主备切换时备用设备.../路无法接替主设备工作。...并行割接就是多台设备同时进行割接; 串行割接就是涉及设备逐台进行割接; 软割,对于有冗余的业务,割接时通过冗余设备或路,进行不影响正常业务的割接; 硬割,对于没有冗余的业务;割接时会暂时中断业务的割接...(1)割接过程中出现问题时,要进行回退,此时可以部分回退; (2)割接在规定时间内没有完成时,要进行回退,而且时全部回退; 问题七:割接完成之后,为什么要进行守局,守局的时间为多久?

    2.2K20
    领券