CN112883686B - 一种Web端检测本地字体的方法和装置 - Google Patents

一种Web端检测本地字体的方法和装置 Download PDF

Info

Publication number
CN112883686B
CN112883686B CN202110161876.4A CN202110161876A CN112883686B CN 112883686 B CN112883686 B CN 112883686B CN 202110161876 A CN202110161876 A CN 202110161876A CN 112883686 B CN112883686 B CN 112883686B
Authority
CN
China
Prior art keywords
fonts
span
attribute value
font
basic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110161876.4A
Other languages
English (en)
Other versions
CN112883686A (zh
Inventor
宋洋
匡亮
史周波
刘瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202110161876.4A priority Critical patent/CN112883686B/zh
Publication of CN112883686A publication Critical patent/CN112883686A/zh
Application granted granted Critical
Publication of CN112883686B publication Critical patent/CN112883686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及一种Web端检测本地字体的方法和装置,方法包括创建第一span标签,将第一span标签的字体分别设置为N种基础字体;创建第二span标签,设置和第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,备选字体分别和第一span标签的N种基础字体相同;分别对比备选字体与基础字体相同的第一span标签和第二span标签的宽高属性值,判断第一span标签是否存在一种基础字体的宽高属性值与第二span标签不同,若存在,用要测试的目标字体渲染页面,反之,用预设的默认字体渲染页面。本发明针对文档中应用的各种字体,判断其是否在本地存在,存在即使用该字体渲染,不存在则使用默认字体渲染,可有效解决首次加载需下载字体的性能问题。

Description

一种Web端检测本地字体的方法和装置
技术领域
本发明涉及字体检测领域,尤其涉及一种Web端检测本地字体的方法和装置。
背景技术
现有技术在加载文档时,对于文档中使用到的字体,都需要下载,需要先下载该文档中的字体,然后进行渲染,严重影响首次加载文档的使用性能。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种Web端检测本地字体的方法和装置。
根据第一方面,提供了一种Web端检测本地字体的方法,包括步骤S1,在文档中创建第一span标签,同时设置字号和内容;步骤S2,获取Web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;步骤S3,在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;步骤S4,获取第二span标签的offsetWidth属性值和offsetHeight属性值;步骤S5,分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,用要测试的目标字体渲染页面,若不存在,用预设的默认字体渲染页面。
在一种可能的实施方式中,在步骤S2中,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这三种基础字体下的offsetWidth属性值和offsetHeight属性值。
根据第二方面,提供了一种Web端检测本地字体的装置,处理单元,配置为在文档中创建第一span标签,同时设置字号和内容;获取单元,配置为获取web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;所述处理单元还配置为在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;获取单元还配置为获取第二span标签的offsetWidth属性值和offsetHeight属性值;判断单元,配置为分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,用要测试的目标字体渲染页面,若不存在,用预设的默认字体渲染页面。
在一种可能的实施方式中,所述获取单元配置为,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这三种基础字体下的offsetWidth属性值和offsetHeight属性值。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面任意所述的方法。
本发明针对文档中应用的各种字体,判断其是否在本地存在,存在即使用该字体渲染,不存在则使用默认字体渲染,可有效解决首次加载需下载字体的性能问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种Web端检测本地字体的方法的流程示意图;
图2为本发明实施例提供的一种Web端检测本地字体的方法的逻辑流程图;
图3为本发明实施例提供的一种Web端检测本地字体的方法的业务流程图。
具体实施方式
本发明的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
实施例1
如图1,本发明实施例提供一种Web端检测本地字体的方法,包括:
步骤S1,在文档中创建第一span标签,同时设置字号和内容;
步骤S2,获取Web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;
步骤S3,在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;
步骤S4,获取第二span标签的offsetWidth属性值和offsetHeight属性值;
步骤S5,分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,说明目标字体在本地字体中存在,用要测试的目标字体渲染页面,若不存在,说明目标字体在本地不存在,用预设的默认字体渲染页面。
实施例2
如图2,本发明实施例提供一种Web端检测本地字体的方法,包括:
步骤S1,在文档中创建第一span标签,字号设为72px,内容设置为abcdefghigjlmnABCDEFG,一般来说字体越大,内容越多,判断的准确率就越高。
步骤S2,获取本地基础字体,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这3种基础字体下的offsetWidth属性值和offsetHeight属性值。
步骤S3,在文档中创建第二span标签,字号设为72px,内容设置为abcdefghigjlmnABCDEFG,字体设置为要测试的目标字体和备选字体,所述备选字体和第一span标签的3种基础字体相同。
步骤S4,获取第二span标签的offsetWidth属性值和offsetHeight属性值。
步骤S5,分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,
若存在属性值不同,说明目标字体在本地字体中存在,用要测试的目标字体渲染页面;
若不存在属性值不同,说明目标字体在本地不存在,用预设的默认字体渲染页面。
图2中,基础字体分别为monospace、sans-serif、serif,第一span标签设置内容和字号,同时字体分别设置为monospace、sans-serif、serif。
第二span标签设置和第一span标签相同的内容和字号。
第二span标签的字体设置目标字体和monospace,比较第二span标签和字体为monospac的第一span标签的offsetWidth属性值和offsetHeight属性值,若不同,说明目标字体存在,若相同,继续比较第二种基础字体;
第二span标签的字体设置目标字体和sans-serif,比较第二span标签和字体为sans-serif的第一span标签的offsetWidth属性值和offsetHeight属性值,若不同,说明目标字体存在,若相同,继续比较第三种基础字体。
第二span标签的字体设置目标字体和serif,比较第二span标签和字体为serif的第一span标签的offsetWidth属性值和offsetHeight属性值,若不同,说明目标字体存在,若相同,说明目标字体不存在。
应当理解,上述实施例中,三种基础字体的对比顺序可以互换。
一般来说,span中设置的内容越复杂,判断的准确率越高。
在一个具体的示例中,假定当前打开的文档有一段文字使用了微软雅黑字体,流程如图3所示,包括如下步骤:
通过此算法判断是否存在于本地字体中;
如果存在,则使用微软雅黑进行绘制;
如果不存在,则使用预设的默认字体进行绘制,例如,提前预设了宋体为默认字体,不存在时,使用宋体进行绘制。
本方案主要解决通过判断本地是否存在某个字体来确定文档中的字体列表,以及文档中的文字使用何种字体渲染,如果文档中的字体不在本地字体中,则使用统一字体替代。
本发明实施例还提供一种Web端检测本地字体的装置,包括:
处理单元,配置为在文档中创建第一span标签,同时设置字号和内容;
获取单元,配置为获取web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;
所述处理单元还配置为在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;
获取单元还配置为获取第二span标签的offsetWidth属性值和offsetHeight属性值;
判断单元,配置为分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,用要测试的目标字体渲染页面,若不存在,用预设的默认字体渲染页面。
在一个示例中,所述获取单元配置为,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这三种基础字体下的offsetWidth属性值和offsetHeight属性值。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1所述的方法。
本发明的原理:
已知web端三种基础字体:monospace、sans-serif、serif,并且web端通过css为span设置多个字体后如果第一个字体不存在则继续找下一个字体。
为带有内容的span标签设置字体后,span的高度和宽度会相应的变化,如果该字体不存在,则会用第二个字体进行渲染,此时将此span的宽高和只设置第二种字体的span宽高进行比较,第二个字体分别用三种基础字体,如果三次比较宽高都相同,则证明此字体在本地不存在。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种Web端检测本地字体的方法,其特征在于,包括:
步骤S1,在文档中创建第一span标签,同时设置字号和内容;
步骤S2,获取Web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;
步骤S3,在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;
步骤S4,获取第二span标签的offsetWidth属性值和offsetHeight属性值;
步骤S5,分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,用要测试的目标字体渲染页面,若不存在,用预设的默认字体渲染页面。
2.根据权利要求1所述的Web端检测本地字体的方法,其特征在于,在步骤S2中,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这三种基础字体下的offsetWidth属性值和offsetHeight属性值。
3.一种Web端检测本地字体的装置,其特征在于,包括:
处理单元,配置为在文档中创建第一span标签,同时设置字号和内容;
获取单元,配置为获取web端的N种基础字体,将第一span标签的字体分别设置为N种基础字体,存储第一span标签在这N种基础字体下的offsetWidth属性值和offsetHeight属性值;
所述处理单元还配置为在文档中创建第二span标签,设置和所述第一span标签相同的字号和内容,字体分别设置为要测试的目标字体和备选字体,所述备选字体分别和第一span标签的N种基础字体相同;
获取单元还配置为获取第二span标签的offsetWidth属性值和offsetHeight属性值;
判断单元,配置为分别对比备选字体与基础字体相同的第一span标签和第二span标签的offsetWidth属性值和offsetHeight属性值,判断第一span标签在这N种基础字体下是否存在一种基础字体的offsetWidth属性值和offsetHeight属性值与第二span标签的offsetWidth属性值和offsetHeight属性值不同,若存在,用要测试的目标字体渲染页面,若不存在,用预设的默认字体渲染页面。
4.根据权利要求3所述的Web端检测本地字体的装置,其特征在于,所述获取单元配置为,将第一span标签的字体分别设置为基础字体monospace、sans-serif、serif,存储第一span标签在这三种基础字体下的offsetWidth属性值和offsetHeight属性值。
5.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1或2所述的方法。
6.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1或2所述的方法。
CN202110161876.4A 2021-02-05 2021-02-05 一种Web端检测本地字体的方法和装置 Active CN112883686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110161876.4A CN112883686B (zh) 2021-02-05 2021-02-05 一种Web端检测本地字体的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110161876.4A CN112883686B (zh) 2021-02-05 2021-02-05 一种Web端检测本地字体的方法和装置

Publications (2)

Publication Number Publication Date
CN112883686A CN112883686A (zh) 2021-06-01
CN112883686B true CN112883686B (zh) 2023-12-22

Family

ID=76055801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110161876.4A Active CN112883686B (zh) 2021-02-05 2021-02-05 一种Web端检测本地字体的方法和装置

Country Status (1)

Country Link
CN (1) CN112883686B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2933738A1 (en) * 2014-04-18 2015-10-21 EMC Corporation Using server side font preparation to achieve WYSIWYG and cross platform fidelity on web based word processor
CN111273982A (zh) * 2020-01-17 2020-06-12 北京字节跳动网络技术有限公司 操作系统的默认字体确认方法、装置、电子设备和介质
CN111897776A (zh) * 2020-06-22 2020-11-06 百望股份有限公司 一种ofd文档的处理方法、电子设备及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2933738A1 (en) * 2014-04-18 2015-10-21 EMC Corporation Using server side font preparation to achieve WYSIWYG and cross platform fidelity on web based word processor
CN111273982A (zh) * 2020-01-17 2020-06-12 北京字节跳动网络技术有限公司 操作系统的默认字体确认方法、装置、电子设备和介质
CN111897776A (zh) * 2020-06-22 2020-11-06 百望股份有限公司 一种ofd文档的处理方法、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN112883686A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN106294658B (zh) 网页快速展示方法和装置
US8464150B2 (en) Automatic language identification for dynamic text processing
US20080303822A1 (en) Font metadata
US9158742B2 (en) Automatically detecting layout of bidirectional (BIDI) text
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN105205080B (zh) 冗余文件清理方法、装置和系统
CN109033282B (zh) 一种基于抽取模板的网页正文抽取方法及装置
CN109917982B (zh) 一种语音输入方法、装置、设备及可读存储介质
US8332821B2 (en) Using encoding to detect security bugs
IL226027A (en) Two-way text checker and method
CN111556036A (zh) 一种网络钓鱼攻击的检测方法、装置及设备
CN108874934B (zh) 页面正文提取方法和装置
US9658989B2 (en) Apparatus and method for extracting and manipulating the reading order of text to prepare a display document for analysis
CN111414617A (zh) 一种恶意软件检测方法、装置、设备、介质
CN112883686B (zh) 一种Web端检测本地字体的方法和装置
CN113743082A (zh) 一种数据处理方法、系统、存储介质及电子设备
CN110390037B (zh) 基于dom树的信息分类方法、装置、设备及存储介质
CN112596803A (zh) 控件字串截断检查方法、装置、计算机设备和存储介质
CN111125567B (zh) 设备标记方法、装置、电子设备及存储介质
CN115328455A (zh) flutter应用的信息显示方法、装置、设备及介质
CN112699634B (zh) 电子书的排版处理方法、电子设备及存储介质
CN112230989B (zh) 网页频道导航栏提取方法、系统、电子设备及存储介质
CN111259628B (zh) 网页信息提取方法和装置、电子设备和存储介质
CN111444716A (zh) 标题分词方法、终端及计算机可读存储介质
CN106933856B (zh) 网页更新请求的生成方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220923

Address after: 18th Floor, Building 12, Yard 10, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100000

Applicant after: Tongxin Software Technology Co.,Ltd.

Address before: No.615, A6 Zhongguancun South Street, Haidian District, Beijing 100086

Applicant before: Beijing rice husk Internet Data Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant