草庐IT

字体库缺失冷僻字

alue 2023-03-28 原文

python印章生成里使用了“华文新魏”字体来生成印章.实际运行中发现,有些冷僻字会显示为空白。例如“皛暐”这个名字,实际生成的印章,就是下图这样,呈现空白。

问题很容易定位,肯定是字体库对生僻字不支持导致的。那么我们怎么用程序来判断当前文字是否在字体库中呢?

这就要用到python操作字体的工具库 fontTools了。
例如,我们想看汉字“皛”是否存在“华文新魏”字体库中,就可以用以下代码来实现:

from fontTools.ttLib import TTFont

font = TTFont("C:/Windows/Fonts/STXINWEI.TTF")
unicode_dict = font['cmap'].tables[0].ttFont.getBestCmap()

print(ord('皛') in unicode_dict.keys())

其中ord('皛') 是python内置函数,返回‘皛’在unicode中的字符串表示。如果该unicode存在 unicode_dict.keys()中,就说明当前字体库包含该汉字,否则就是不包含。

一旦判断当前姓名中包含了“华文新魏”字体库中不存在的字符,那么就可以降级使用更为通用的字体,例如“隶书”或者“楷体”等,这就解决了生僻字问题。

有关字体库缺失冷僻字的更多相关文章

  1. ruby-on-rails - 在 heroku 的 .fonts 文件夹中包含自定义字体,似乎无法识别它们 - 2

    Heroku支持人员告诉我,为了在我的Web应用程序中使用自定义字体(未安装在系统中,您可以在bash控制台中使用fc-list查看已安装的字体)我必须部署一个包含所有字体的.fonts文件夹里面的字体。问题是我不知道该怎么做。我的意思是,我不知道文件名是否必须遵循heroku的任何特殊模式,或者我必须在我的代码中做一些事情来考虑这种字体,或者如果我将它包含在文件夹中它是自动的......事实是,我尝试以不同的方式更改字体的文件名,但根本没有使用该字体。为了提供更多详细信息,我们使用字体的过程是将PDF转换为图像,更具体地说,使用rghostgem。并且最终图像根本不使用自定义字体。在

  2. ruby-on-rails - 缺失区域;使用 :region option or export region name to ENV ['AWS_REGION' ] - 2

    我知道还有其他相同的问题,但他们没有解决我的问题。我不断收到错误:Aws::Errors::MissingRegionErrorinBooksController#create,缺少区域;使用:region选项或将区域名称导出到ENV['AWS_REGION']。但是,这是我的配置开发.rb:config.paperclip_defaults={storage::s3,s3_host_name:"s3-us-west-2.amazonaws.com",s3_credentials:{bucket:ENV['AWS_BUCKET'],access_key_id:ENV['AWS_ACCE

  3. ruby-on-rails - 第 1 行中的引号缺失或遗漏 (CSV::MalformedCSVError) - 2

    我在ruby​​/rails中导入此CSV文件时遇到问题我得到的错误信息是这样的:Missingorstrayquoteinline1(CSV::MalformedCSVError)但我不确定发生了什么,因为我的CSV看起来非常好。以下是示例数据:"lesley_grades","lesley_id","last","first","active","site","cohort","section","sections_title","faculty","completed_term_cred","term","sec_start_date","sec_end_date","grade

  4. ruby-on-rails - 让字体在 Rails 3.1 中工作? - 2

    不知道怎么回事。看来我做对了。我正在尝试使用FontAwesome在我的应用程序中,但字体没有出现。我有一个名为fonts的文件夹,在我的application.rb中包含以下行:classApplication而不是拥有Font-Awesome附带的2个css文件(更改见下文)(不需要IE7文件)我只是将主要的css放在我的应用程序.css。比我更改url来检测字体文件。@font-face{font-family:"FontAwesome";src:url('');src:url('')format('woff'),url('')format('truetype'),url('')

  5. ruby-on-rails - 参数缺失或值为空 - 2

    我是Rails新手。得到下面的错误。我了解问题所在,但不确定如何解决?错误-参数缺失或值为空:客户defcustomer_paramsparams.require(:customer).permit(:first_name,:last_name,:email,:password,:password_confirmation)endendDetailsController.rbclassMy::Account::DetailsController:showelseredirect_tomy_account_details_path,:notice=>'Accountdetailsupda

  6. Ruby - 如何在 Prawn 中使用不同的字体? - 2

    我有一个小的Ruby程序,我在其中使用Prawn将一些文本打印成PDF,但一小部分文本是非英文字符。(其中一些文本是中文,一些是希腊文,等等)。当我运行我的程序时,我当然会收到一条错误消息,提示您的文档包含与Windows-1252字符集不兼容的文本。(Prawn::错误::IncompatibleStringEncoding)如果您需要完整的UTF-8支持,请使用TTF字体而不是PDF的内置字体。我知道我需要使用TTF字体,但我该怎么做呢?我需要从网上安装吗?如果是这样,我应该把它保存到哪里?我知道这可能是一个愚蠢的问题,但我是Ruby和Prawn的新手。谢谢!

  7. ruby-on-rails - 如何按照散列中的数字序列生成和填充缺失数据 - 2

    我正在尝试创建一个函数来完成以下哈希中的小时序列。{name:"cardio",data:[["06:00",999],["09:00",154],["10:00",1059],["11:00",90]]}它应该在字段数据中创建所有缺失值["07:00",0],["08:00",0],["12:00",0],["13:00",0]...["23:00",0]预期结果:{name:"cardio",data:[["06:00",999],["07:00",0],["08:00",0],["09:00",154],["10:00",1059],["11:00",90]],["12:00",

  8. ruby - 在 Capybara-Webkit 中显示 @font-face 字体 - 2

    当我使用capybara-webkit测试我的网站并截取屏幕截图时,CSS中的@font-face声明将被忽略。这尤其糟糕,因为我使用的是FontAwesome,因此页面在真实浏览器中的显示方式会有很大差异。如何重现:https://gist.github.com/anonymous/4948827输出:http://i.imgur.com/5lsrleY.jpg有什么办法可以解决这个问题吗? 最佳答案 一些研究表明,完全可以在Capybara-Webkit中呈现自定义字体,与PhantomJS相同。这PhantomJSForumP

  9. ruby - 修复不可读的 ghostscript 字体 - 2

    我正在使用rubyScruffygem来创建一些图表。它依赖于RMagick来渲染文本和创建png。当我运行我的ruby​​脚本时,出现此错误。sh:gs:commandnotfoundsh:gs:commandnotfound/Users/natebird/.rvm/gems/ree-1.8.7-2011.03/gems/scruffy-0.2.6/lib/scruffy/rasterizers/rmagick_rasterizer.rb:15:in`from_blob':unabletoreadfont`/usr/local/share/ghostscript/fonts/n019

  10. ruby-on-rails - Prawn 设置字体颜色 - 2

    我正在使用prawn在Rails应用程序中生成PDF输出。如何更改输出文本的颜色? 最佳答案 你试过了吗fill_color?下面的代码应该可以工作:require"rubygems"require"prawn"Prawn::Document.generate"hello.pdf"dofill_color"0000ff"text_box"HelloWorld(inblue)",:at=>[200,720],:size=>32end 关于ruby-on-rails-Prawn设置字体颜色,

随机推荐