Initiating font subsets
Abstract
A computer-implemented method includes analyzing content of a received electronic document in an autonomous manner to identify each unique character of one or more fonts included in the content of the electronic document. The method also includes initiating a request for a subset of one or more of the fonts included in the content of the electronic document, wherein the request includes each identified unique character of the respective one or more fonts.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
45 claims: 5 independent, 40 dependent
- 1A computer-implemented method comprising:analyzing, by an agent in question, the content of a received electronic file in an autonomous manner to identify each of one or more fonts included in the content of the electronic file a unique character;initially requesting one of a subset of one or more of the fonts included in the content of the electronic file, wherein the request includes the one or more fonts Each identified unique character;and receiving the subset of the one or more fonts, or a subset of the one or more fonts and the plurality of additional characters, the one or more fonts and the plurality This subset of extra characters contains extra characters based on a data transfer threshold. 一種電腦實施之方法,其包括:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;及接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。 一種電腦實施之方法,其包括:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;及接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。
- 13A system comprising:a font server for providing an agent for analyzing an electronic document received by a computing device to the computing device upon request, wherein the proxy is executed by the proxy The analysis identifies each unique character of one or more fonts included in the content of the electronic file;wherein the font server is configured to request a request from the computing device Generating a subset of one or more of the fonts, wherein each font subset includes each unique character identified by the respective font;and wherein the font server is further grouped Transmitting each font subset to the computing device, or sending each font subset and a plurality of additional characters to the computing device, the plurality of additional characters including a data transfer threshold Extra characters of value. 一種系統,其包括:一字型伺服器,其用於在請求時將用於分析由一計算裝置接收之一電子文件之內容之一代理程式提供至該計算裝置,其中由該代理程式執行之該分析識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;其中該字型伺服器經組態以在向該計算裝置請求時產 生該等字型中之一者或多者之一子集,其中每一字型子集包含該各別字型之每一所識別之唯一字元;且其中該字型伺服器進一步經組態以起始將每一字型子集發送至該計算裝置,或將每一字型子集及多個額外字元發送至該計算裝置,該多個額外字元包含基於一資料傳送臨限值之額外字元。 一種系統,其包括:一字型伺服器,其用於在請求時將用於分析由一計算裝置接收之一電子文件之內容之一代理程式提供至該計算裝置,其中由該代理程式執行之該分析識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;其中該字型伺服器經組態以在向該計算裝置請求時產 生該等字型中之一者或多者之一子集,其中每一字型子集包含該各別字型之每一所識別之唯一字元;且其中該字型伺服器進一步經組態以起始將每一字型子集發送至該計算裝置,或將每一字型子集及多個額外字元發送至該計算裝置,該多個額外字元包含基於一資料傳送臨限值之額外字元。
- 24A computing device comprising:a memory configured to store instructions;and a processor configured to execute the instructions to perform a method, the method comprising: by a required agent Autonomously analyzing the content of a received electronic file to identify each unique character of one or more fonts included in the content of the electronic file;initiating inclusion in the content of the electronic file One of the subsets of one or more of the fonts, wherein the request includes each unique character identified by the one or more fonts;receiving the one or more fonts a subset of the subset, or the subset of the one or more fonts and the plurality of additional characters, the subset of the one or more fonts and the plurality of additional characters comprising additional words based on a data transfer threshold yuan. 一種計算裝置,其包括:一記憶體,其經組態以儲存指令;及一處理器,其經組態以執行該等指令來執行一方法,該方法包括:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。 一種計算裝置,其包括:一記憶體,其經組態以儲存指令;及一處理器,其經組態以執行該等指令來執行一方法,該方法包括:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。
- 31One or more computer readable storage devices storable by a processing device and executed thereby causing the processing device to execute an instruction comprising:an agent in autonomous manner analyzing a reception by a requested agent The content of the electronic file to identify each unique character of one or more fonts included in the content of the electronic file;to initiate one of the fonts included in the content of the electronic file Requested by one of a subset of one or more, wherein the request includes each unique character identified by the respective one or more fonts;Receiving the subset of the one or more fonts, or the subset of the one or more fonts and the plurality of additional characters, the subset of the one or more fonts and the plurality of additional characters being based on a Additional characters for the data transfer threshold. 一種或多種電腦可讀儲存裝置,其儲存可由一處理裝置執行且在此執行時致使該處理裝置執行包括以下各項之操作之指令:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;及 接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。 一種或多種電腦可讀儲存裝置,其儲存可由一處理裝置執行且在此執行時致使該處理裝置執行包括以下各項之操作之指令:由一被要求之代理程式以一自主方式分析一所接收電子文件之內容,以識別該電子文件之該內容中所包含之一個或多個字型之每一唯一字元;起始對該電子文件之該內容中所包含之該等字型中之一者或多者之一子集之一請求,其中該請求包含該各別一個或多個字型之每一所識別之唯一字元;及 接收該一個或多個字型之該子集,或該一個或多個字型與多個額外字元之子集,該一個或多個字型與多個額外字元之該子集包含基於一資料傳送臨限值之額外字元。
- 35A system comprising:a font server for generating a subset of one or more fonts upon request to a computing device, wherein each font subset comprises by being included in the computing device One of the unique characters of the respective fonts identified by one of the requested agents by the contents of an electronic file;and wherein the font server is configured to initiate transmission of each subset of fonts To the computing device, or to send each font subset and a plurality of additional characters to the computing device, the plurality of additional characters including additional characters based on a data transfer threshold. 一種系統,其包括:一字型伺服器,其用於在向一計算裝置請求時產生一或多個字型中之一子集,其中每一字型子集包含藉由包含在該計算裝置中之一被要求之代理程式由一電子文件之內容所識別之該各別字型之每一唯一字元;及其中該字型伺服器經組態以起始將每一字型子集發送至該計算裝置,或將每一字型子集及多個額外字元發送至該計算裝置,該多個額外字元包含基於一資料傳送臨限值之額外字元。 一種系統,其包括:一字型伺服器,其用於在向一計算裝置請求時產生一或多個字型中之一子集,其中每一字型子集包含藉由包含在該計算裝置中之一被要求之代理程式由一電子文件之內容所識別之該各別字型之每一唯一字元;及其中該字型伺服器經組態以起始將每一字型子集發送至該計算裝置,或將每一字型子集及多個額外字元發送至該計算裝置,該多個額外字元包含基於一資料傳送臨限值之額外字元。
Independent claims5
58 paragraphs in 1 section, as filed
Starting font subset
INITIATING FONT SUBSETS
This description relates to the generation and delivery of a subset of initial fonts.
In the ever-expanding connectivity provided by computer networks (such as the Internet), various types of content such as text, graphics, audio, video, etc. can be exchanged or broadcast to the masses between several computing devices. Because of this connectivity, users located in various regions of the world have access to content providers who need to provide content to users of different nationalities and cultures with flexibility. For example, content provided to North American users may not be identifiable by Asian users. As such, the provider can tailor content to users in a particular geographic area or provide adjustable content to different users.
The systems and techniques described herein relate to generating and delivering a subset of fonts.
In one aspect, a computer implemented method includes analyzing, in an autonomous manner, the content of a received electronic file to identify each unique character of one or more fonts included in the content of the electronic file. The method also includes initiating a request for one of a subset of one or more of the fonts included in the content of the electronic file, wherein the request includes the one or more fonts Each unique character identified.
Embodiments may include any or all of the following features. Analyzing the content of the electronic file can include identifying a source of one of the fonts included in the one or more fonts or a non-existent source of a font. The content of a received electronic file can be initiated in an autonomous manner by executing an agent. Analyzing the content of the received electronic file can include parsing the content of the electronic file to identify a character represented in the file. Analyzing the content of the received electronic file can include: screening the identified character represented in the electronic file to identify each of the one or more fonts included in the content of the electronic file Unique character. Initiating one of the subsets of one or more of the fonts may include: adding the identified characters to a request. A response to one of the requests may include all of the characters of one or more of the fonts. The content of the electronic file can be analyzed independently of the platform.
In another aspect, a system includes a font server for providing an agent for analyzing an content of an electronic file received by a computing device to the computing device upon request . The analysis performed by the agent identifies each unique character of one or more fonts included in the content of the electronic file. The font server is configured to generate a subset of one or more of the fonts upon request to the computing device, wherein each font subset includes each of the respective fonts The unique character identified. The font server is further configured to initially send each subset of fonts to the computing device.
Embodiments may include any or all of the following features. Analyzing the content of the received electronic file, the agent can identify a source of one of the fonts included in the one or more fonts or a source of a font. The computing device can execute the agent received from the font server to analyze the content of the received electronic file. The agent can parse the content of the electronic file to identify the characters represented in the file. The agent may filter the identified characters represented in the file to identify each unique character of each of the one or more fonts included in the content of the electronic file. The agent can initiate the generation of a request for a font server. The agent can be configured to operate independently of the type of computing device. The font server can be configured to determine a portion of a font character to be included in the subset of fonts, and the portion of the font character to be included in the subset of fonts can include the word All characters of the type. The font server can associate the generated subset of fonts with the received electronic file.
In another aspect, a computing device includes: a memory configured to store instructions; and a processor configured to execute the instructions to perform a method. The method includes analyzing, in an autonomous manner, the content of a received electronic file to identify each unique character of one or more fonts included in the content of the electronic file. The method also includes initiating a request for one of a subset of one or more of the fonts included in the content of the electronic file. The request includes each unique character identified by the respective one or more fonts.
Embodiments may include any or all of the following features. Analyzing the content of the electronic file can include identifying a source of one of the fonts included in the one or more fonts or a non-existent source of a font. Analyzing the content of a received electronic file in an autonomous manner can be initiated by executing an agent. Analyzing the content of the received electronic file can include parsing the content of the electronic file to identify a character represented in the file. Analyzing the content of the received electronic file can include: screening the identified character represented in the electronic file to identify each of the one or more fonts included in the content of the electronic file Unique character. Initiating one of the subsets of one or more of the fonts includes: adding the identified characters to a request.
In another aspect, one or more computer readable mediums are stored by a processing device and, when executed, cause the processing device to execute an instruction comprising: operating a received electronic device in an autonomous manner The content of the file to identify each unique character of one or more fonts included in the content of the electronic file. The operations also include initiating a request for one of a subset of one or more of the fonts included in the content of the electronic file. The request includes each unique character identified by the respective one or more fonts.
Embodiments may include any or all of the following features. Analyzing the content of the electronic file can include identifying a source of one of the fonts included in the one or more fonts or a non-existent source of a font. Analyzing the content of a received electronic file in an autonomous manner can be initiated by executing an agent.
These and other aspects and features, as well as various combinations thereof, may be expressed as a method, device, system, means for performing a function, a program product, and otherwise.
Other features and advantages will be apparent from the description and claims.
Referring to Figure 1, illustrated by one of a computing device (e.g., a computer system, a personal digital assistant (PDA), a cellular telephone, etc.), one of the users accesses via the Internet (or other type of computer network) An exemplary web page 100. For example, by providing a suitable Uniform Resource Locator (URL) to a web browser, the web page can be accessed, packaged, and sent from a corresponding content provider to the user's computing device for display. In the illustrated example, the content of web page 100 contains text and graphics and one birthday party invitation can be accessed from a particular URL (ie, www.invite.com). To provide a compelling invitation, use a variety of fonts that provide different types of words, each of which can be considered to provide stylistic characters or characters. A "character" can be considered as one of the members of a shape set for organizing, controlling, and representing information, and a "character" can be considered as a specific instance of a character.
Once accessed, a content provider can provide the content of web page 100 to the user's computing device using one or more techniques. For example, web page 100 can be represented by one or more files (eg, file 102) that use one of the markup languages, such as Hypertext Markup Language (HTML), to cause web page 100 to conform to browsing performed by the computing device. Device. Standards such as HTML, CSS, XML World Wide Web Consortium (W3C) standards, and other standards can be implemented by browsers, so they can display electronic content (eg, personal computers, wireless phones, personal digital assistants, handheld computers, The web page 100 is properly reproduced on various types of platforms such as set-top boxes and internet appliances.
Along with providing a graphic (eg, one of the birthday cakes in one of the examples), the one or more HTML files may reference one or more fonts used to render the text on the web page. To illustrate, five different fonts are used in web page 100 to provide information associated with the invitation (eg, time, date, location, event description, and menu). As such, the HTML archive 102 invokes each font such that the recipient computing device knows which font corresponds to each portion of the textual information (eg, presents the date in a Times New Roman font). Upon receiving and executing the instructions contained in the HTML file 102, the recipient computer device can locally retrieve the fonts needed to render the text. However, a significant number of computing devices are unable to store, at the local end, all of the characters of each font that can be reproduced for the web page. The constant creation of limited resources (eg, memory) and new glyph types can limit each type of computing device from being able to easily display text in any and all fonts. The fonts associated with different languages magnify the problem that many computing devices cannot provide all font types. Languages such as Chinese, Japanese, and Korean use letters that can be tens of thousands of characters (for example, more than 10,000 characters) and require 1 MB to 20 MB memory to store characters in a single language. Such memory needs to be impractical, especially for computing devices with less robust on-board memory (eg, cellular phones). In addition, if only a few characters from an episode are needed (to present a particular web page), storing a complete set of characters for even a few fonts can be inefficient. With reference to the illustrated example, a relatively small number of Times New Roman font characters are required to present the event date (eg, "A", "p", "r", "i", "1", "2", "0", "t" and "h") and of course storing a complete set of characters for each possible user language (eg English, Chinese, Japanese, etc.) It is considered unwise to use one of the device memories.
In order to save the use of the local memory, some conventional technologies provide a complete set of fonts or start the complete fonts required for the received web content (for example, an HTML file) when receiving the file associated with the web page. The collection of character sets. However, when the web page actually uses only a few characters, such techniques can still cause the computing device memory to be populated with a collection of font characters. For example, as illustrated in the figure, to present web page 100 on a computing device, a complete set of font characters 104, 106, 108, 110, 112 is provided along with HTML archive 102. As such, each possible character of the five fonts used by web page 100 is provided to the computing device, thereby consuming a significant amount of memory of the computing device.
The time required to transfer the font along with the bandwidth consumption also provides a concern. For example, transmitting a complete set of characters associated with a font such as Chinese, Japanese, and Korean may require significant bandwidth and transmission time.
One or more techniques may be used to reduce file transfer time, bandwidth consumption, and the memory space required to prepare to render a web page, such as web page 100. For example, instead of providing a complete set of characters for each font, a subset of fonts containing only the characters that appear in the web page may be provided. As such, the file transfer time and bandwidth requirements are reduced and the device memory is saved while providing an appropriate font character set for web page rendering. Referring to the illustrated example, each of the font character sets 104-112 can be replaced relatively quickly with a significantly smaller subset of fonts that can be provided to the archive after receiving the HTML archive 102. Similar to reducing the transmission time and bandwidth requirements based on a subset of fonts for the stylistic appearance of the characters, reductions can also be made for providing a subset of fonts associated with different languages. For example, if a web page contains only three hundred Chinese characters, it is more effective to provide a subset of fonts that only include one of the three hundred characters, and the subset of fonts can transfer the transmitted words. The size of the type data has been reduced from approximately 10 MB to 50 KB. In some cases, although a subset may be generated for certain font character sets (eg, Chinese language character sets), other font character sets may be sent as a complete set. For example, since a complete set of fonts (eg, a set of Latin language characters) contains a relatively small number of characters, creating and transmitting a subset may not significantly reduce the bandwidth required to transmit the entire set of characters. Or time. Along with reducing the size of a set of font characters provided to a computing device to present a web page or other type of electronic file, one or more techniques can be implemented to effectively provide the subset of fonts to the computing device. For example, along with presenting the web page, the user's computing device can be used to identify the appropriate subset of fonts and then request the identified subsets.
Referring to FIG. 2, a computer network 200 includes a computer system 202 with which a user can interact (eg, using a keyboard or indicator device (such as a mouse)) to identify one of the systems to be presented by the computer system. Landing page. For example, a web browser 204 or similar software application can be executed by computer system 202 for a user to target one or more web pages. Upon being identified, operation of web browser 204 may include requesting content for the (or other) target web page from one or more web page sources 208a, 208b, 208c via internet 206. As illustrated, in this particular example, a web page is requested from web page source 208a and a corresponding HTML archive 210 is sent from the source to computer system 202 via internet 206.
To identify a suitable subset of fonts for presenting web pages defined by HTML archive 210, computer system 202 can use one or more techniques. For example, operations may be performed by computer system 202 to scan HTML archive 210 to identify individual glyphs contained in a web page defined by the file. In one configuration, computer system 202 can execute a software agent 212 to identify the individual font characters and send a request to generate a subset of the fonts (if appropriate) needed to render the web page. Such agents can be viewed as one of the software modules that can be executed in a substantially autonomous manner. For example, when provided to computer system 202, a software agent can operate without substantial user interaction. By operating in a somewhat flexible manner, the software agent can adaptively identify the font characters required for web page rendering. In this particular example, the software agent 212 scans the contents of the HTML archive 210 in a manner that is somewhat persistent to identify the font characters. For example, the software agent can be executed in a substantially continuous manner. In some configurations, the software agent is provided to the user computing device (e.g., computer system 202) shortly after delivery of the file or the files (e.g., HTML file 210). As such, electronic files such as web pages, application pages, user interfaces, and the like can be perceived as if they were scanned almost instantaneously when the files were received.
Computer network 200 also includes a font provider 214 that determines the generation of fonts based on information provided by a software agent (e.g., software agent 212) executed by a user computing device (e.g., computer system 202). Set (when appropriate). Once generated, the subset or subsets (e.g., illustrated as font subset 216) are encapsulated and sent by font provider 214 to the requesting computing device. Along with the decision to generate one or more subsets of fonts, the font provider 214 can also determine whether a complete set of font characters should be provided to the request computing device. For example, font provider 214 can use predefined rules to determine whether a subset of fonts should be sent. One such rule may indicate that a set of font characters associated with a particular language (eg, Chinese) should have a subset created due to the large size of the complete set of characters. Subset decisions can also be provided in a dynamic manner. For example, based on the achievable file transfer rate, a file size threshold (eg, 2 MB) can be determined such that a subset is generated for a set of characters greater than the threshold. If the size of a font-type character set falls below the threshold, the entire set of characters can be sent because the file transfer rate can be considered to be within a valid range. These thresholds can be dynamically adjusted, for example, by monitoring the achievable transfer rate. For example, as the level of achievable transfer rate decreases, the threshold for creating a subset of the character set can be correspondingly reduced (eg, from 2 MB is reduced to 1 MB). One or more factors may cause the transfer rates to be determined to be within a valid range. For example, the geographic location of the user computing device and the font provider can be a factor in determining whether a subset of the complete character set should be generated and sent. If both the font provider and the user computing device are located relatively close together (eg, both in the eastern United States), a relatively high transfer rate may be achievable and the entire set of characters may be sent. For the case where the user computing device is remote from the font provider (eg, one in the US and the other in India), the font provider can determine a subset of the fonts to be sent. Similar to location-based determination, the font provider can use the time of day, the season of the year, and other time factors to determine whether a subset needs to be generated for one or more sets of font characters identified for transmission.
In some configurations, the font provider 214 can also provide the software agent to the computing device for scanning the received file (eg, the HTML file 210) for character recognition. As such, the font provider 214 can operate independently of the web page sources 208a, 208b, 208c. Once a request is received from a user computing device, the font provider 214 can provide the appropriate agent software to the requesting device. Once the software agent scans the electronic file, the font provider 214 can provide the appropriate font and font subset based on one of the requests initiated by the agent.
To provide the font and font subsets, the font provider 214 typically requires access to one or more font banks that the font provider can store locally or remotely. As shown in the figure, a font library 218 is shown stored in-situ in a storage device 220 (e.g., one or more hard drives, CD-ROMs, etc.). Accessible by a server 222, the font library 218 can be used in conjunction with information provided by the software agent to generate appropriate content that can be provided along with a complete set of font characters (if determined by the font provider). A subset of fonts. Illustrated as being stored in a single storage device 220, the font provider 214 can maintain a collection of accessible font sets (eg, for different font styles, languages, etc.) using a variety of storage technologies and devices. The font provider 214 can also access the font at a separate location for subset generation. For example, when identifying the characters required for a subset of fonts, server 222 can be used to collect the desired characters from one or more sources external to font provider 214 (eg, via Internet 206). .
The font provider 214 may provide additional functionality along with generating a subset of fonts and providing them (along with the complete font set, if appropriate) to the requesting computing device. For example, a subset of fonts and fonts associated with a particular web page can be tracked for future requests. In one scenario, one or more subsets of fonts (eg, font subset 216) for presenting a particular web page (on a computing device) can be created. The association between the subset of fonts and the web page can be identified (e.g., by server 222) and stored for later retrieval. As such, the subsets needed to present the web page (eg, on another computing device) in the future can be quickly identified and provided to the requesting computing device. In one configuration, the inline database 224 is stored at the font provider 214 (e.g., on the storage device 220) and includes a record representing the association between the web page and the subset of fonts (and fonts). . In some instances, the information provided by the font subset request freely sent to the font provider 214 (e.g., from a software agent) identifies the association. The association between a web page and a suitable subset of fonts may also be stored before a user selects the web page (eg, based on directions and information provided by a web page source). Other types of architecture and networking techniques can also be implemented for providing software agents and font subsets (and fonts) to user computing devices for presentation of electronic files such as web pages.
Referring to FIG. 3, an illustration 300 represents a method for providing a software agent to a user's computing device along with a suitable subset of fonts (and fonts) required to render a web page of another type of electronic file. Some operations. As illustrated in FIG. 2, a user can identify a web page of interest by executing a web browser on a computing device (eg, providing a URL to the web browser) The source provides one or more files (eg, HTML files) to the user's computing device. As illustrated, this file 302 can include content 304 (eg, text, graphics, video, audio, etc.) for presentation to a user (via a web browser). File 302 may also contain one or more instructions 306 for requesting a software agent to be provided to the user's computing device 202. Upon execution of the instructions (labeled "Extract Agent Command" in the figure), a user computing device (e.g., computer system 202) can be initiated to the font provider 214 (e.g., server 222). Delivery of request 308 is indicated by graphical arrow 310. In response to request 308, an agent (e.g., agent 212) is sent from server 222 of font provider 214 to a user computing device (e.g., computer system 202) as indicated by graphical arrow 312. In some instances, the delivery of the agent can occur shortly after the file is received and a user can be aware of any delay. In some configurations, other information may be provided by request 308. For example, the web page of interest (eg, the URL of the web page) can be identified in the request to cause the font provider 214 to determine whether one or more subsets of fonts for the web page have been previously generated (and Possible font type).
The requesting agent 212 executing at the user computing device executes the content 304 of the scanned HTML archive 302 (as indicated by a graphical arrow 314) to identify the character for each font represented in the content. The agent 212 can also provide functionality to identify each unique character of each font that is present. As such, multiple instances of the same font character can be only remembered by the agent once, thereby merging the desired characters (for each received electronic file) requested by the font provider 214. In some configurations, the agent 212 will notify the font provider 214 for each character identified for each font present in the web page. When this information is provided, the font provider identifies, for each font, each unique occurrence of characters that may be included in a subset of fonts. To provide this scanning operation, one or more techniques can be implemented, for example, the agent can parse the content 304 to identify each character that exists for each font. One or more screening programs (by agent 212 or font provider 214) can then be used to identify each unique character for each font. For example, if the characters "a", "B" and "c" for the font A are detected in the content 304 and the characters "x", "Y" and "" for the font B are detected. Z", the agent can identify a subset of fonts A as containing "a", "B" and "c" and a subset of font B can contain "x", "Y" and "Z". Once scanned, the identified font character 316 is used by the agent 212 to generate a font subset request 318. In general, request 318 includes each character identified by agent 212, however, some of the characters contained in the content of page content 304 may not be included in request 318. For example, the request 318 may not include characters that are identified as being potentially stored at the user computing device. As such, the agent 212 can exclude certain characters contained in the page content 304 from the subset request 318.
One or more techniques may be implemented to provide the font subset request 318 to the server 222 of the font provider 214 as represented by graphical arrow 320. For example, for an agent represented in JavaScript, the request can be transmitted using one of the techniques associated with an agreement, such as Hypertext Transfer Protocol (HTTP). The information can be provided to the server 222 using a command (e.g., a GET command) by appending the identified unique character to one of the URLs of interest. Similarly, an agent provided as an application can provide the character information to the server 222 of the font provider 214 by means of one of the protocols, such as HTTP. Once the request 318 for the (equal) font subset is provided, the server 222 generates one or more desired font subsets and a complete font character set (if appropriate) and replies to the user computing device. For example, as represented by graphical arrow 322, a subset of fonts 216 (which may represent one or more subsets of fonts and possibly one or more complete sets of fonts) are provided to the user for calculation Device.
Referring to FIG. 4, an illustration is provided that includes an request for an agent (such as the agent 212 shown in FIG. 2) and assigning a font to an exemplary HTML file 400 of a particular character. In this particular example, an agent is requested (e.g., font provider 214) when executing (e.g., by computer system 202) instructions 402. Once received by computer system 202, the agent is executed to analyze the content of HTML file 400. For example, the agent can step through each of the remaining lines of the HTML archive 400 and identify each character and font used to render the web page associated with the content of the archive. For example, by analyzing the command 404, the agent can recognize that the web page generates characters "A", "B", "C" and "D" which are in the form of frutiger fonts. In this particular configuration, the instructions 404 provide individual characters along with a URL for accessing the font (eg, "ABC" D"). Similarly, the executed agent is also identified in instruction 406, and the characters "Z" and "W" need to be represented in a frutiger font to generate the web page. Thus, when a font subset request (eg, request 318 shown in FIG. 3) is generated, the agent identifies each of the unique characters (ie, "A", "B", "C" , "D", "Z" and "W") and the corresponding fonts (ie, frutiger) required to produce the web page. In some configurations, when scanning the contents of the file, the agent may encounter characters that are not intended to be included in a font subset request. For example, an HTML file may contain an item in which a font stored locally on a computer system (executing the file) is intended to represent a particular character. Thus, there is no need to obtain fonts from sources external to the computer system. Instruction 408 of the exemplary HTML file 400 illustrates this occurrence. In this example, the characters "M", "P", and "Q" are called by instruction 408 without resorting to a URL for a particular font. Thus, the font of the local end of the computer system executing the file 400 can be used to present the characters "M", "P" and "Q". Since these particular characters do not require a font or a subset of fonts, the agent does not include such characters in request 318. However, although the characters are stored for the local end of the specific font, another instruction (not shown) for calling "M", "P" and/or "Q" in the file 400 may be used for another font. The request contains one or more of these characters, as is required in obtaining a font from one source external to the computer system.
Referring to Figure 5, one or more techniques can be implemented to analyze the content of a file (such as HTML file 400 (illustrated in Figure 4)) to identify the characters of the subset of fonts. For a JavaScript-based agent, a browser-independent library (called jQuery and emphasizing the interaction between JavaScript and HTML) can be used to analyze text content. To provide this functionality, a jQuery framework can be used to provide an agent for extracting unique characters from a string. The jQuery framework can also include an associative array (referred to as a JSON) for forming an association between the identified unique character and a corresponding font. The files are stepped through the file in an iterative manner, and the unique characters are identified and stored (eg, cached) for further processing. Portions of the code 500 presented in this figure provide this functionality.
Referring to Figure 6, in identifying the unique characters, one or more techniques may be implemented to group the identified characters accordingly based on the font. For example, each unique character (eg, "A", "B", "C", "D", "Z", and "W") identified for a particular font (eg, frutiger) A member of one of the groups of the character type. Additionally, for a font having a relatively small number of members (eg, one font associated with the Latin language), one of the unique character groups may not be formed. For such fonts containing relatively few members, the entire font set can be sent without consuming a significant amount of computing resources (such as transfer time and bandwidth). As such, a complete set of fonts is generated (eg, from a font provider) for generating the characters of the font. Portions of the code 600 presented in this figure provide this functionality.
Referring to Figure 7, once the unique characters identified for each font have been grouped (along with any identified font having a relatively small set of characters), the agent provides this information to the font provider 214. (For example, to the server 222 of the font provider). One or more techniques can be used to provide this information. For example, the recognized character and corresponding font can be appended to a URL query string using a command such as an HTTP GET command. Upon receiving a request (provided by the HTTP GET command), the font provider 214 (e.g., the font provider's server 222) creates and sends one or more appropriate font subsets to the requesting computer system. It may also be based on predefined rules associated with one or more factors (eg, user and/or font provider geographic location, time information, data transfer parameters (such as achievable transfer rate), etc.) The complete font set is sent with the identified fonts of relatively few characters. To provide such unique characters and corresponding fonts, a portion of the code 700 that provides this functionality is presented in the figure.
Referring to Figure 8, a flow diagram 800 illustrates the operation of a software agent (e.g., the software agent 212 shown in Figure 2). The operation of the agent 212 is typically performed by a single computing device (e.g., computer system 202), however, the operation of the agent can be performed by a plurality of computing devices. Together with being executed at a single location (e.g., at a computer system), operational execution may be distributed among two or more locations.
Typically, the agent is requested by the user computing device (e.g., from a code contained in a file (such as an HTML file)) and provided from an external source (such as font provider 214). Upon receipt and execution by the user computing device, the operations may include analyzing the content of an 802-electronic file, such as an HTML file containing instructions to request a software agent. The content of the electronic file is analyzed in a relatively autonomous and persistent manner by using a software agent. One or more techniques can be implemented to analyze the electronic file, for example, the agent can step through the file and associate each contained character with a corresponding font. The operations may also include identifying 804 each unique character associated with a font. For example, although a file may contain many instances of the character "a" for a particular font (eg, Times New Roman), the agent may filter the plurality of instances down to a single instance. Makes for Times New The Roman font only requests the character "a" once. Character recognition may also include identifying fonts having a relatively small set of characters. Thus, if one or more of the characters (including those in the font) are used in the electronic file, the entire set of characters can be requested. The operations may also include request 806 for an appropriate subset of each font represented in the electronic file. The requested subset typically contains the unique characters identified for each corresponding font. However, for an instance in which the font contains relatively few characters, the requested subset may contain the entire set of characters for this font.
9 is a block diagram of a computing system 900 that can be used and implemented to perform the operations associated with the agent 212. The computing systems can also be used by the font provider 214 to perform operations. Computing device 900 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
The computing device 900 includes a processor 902, a memory 904, a storage device 906, a high speed interface 908 connected to the memory 904 and the high speed expansion port 910, and a low speed interface 912 connected to the low speed bus 914 and Storage device 906. Each of components 902, 904, 906, 908, 910, and 912 are interconnected using various bus bars and can be mounted on a common motherboard or otherwise mounted. Processor 902 can process instructions for execution within computing device 900, including storage in memory 904 or storage device 906 for display on an external input/output device, such as display 916 coupled to high speed interface 908. Instructions for graphic information in a GUI. In other embodiments, multiple processors and/or multiple busses can be used (as appropriate) along with multiple memories and several types of memory. Likewise, multiple computing devices 900 can be connected, with each device providing portions of the necessary operations (eg, as a server group, a blade server group, or a multi-processor system).
Memory 904 stores information within computing device 900. In one embodiment, memory 904 is a computer readable medium. In one embodiment, memory 904 is one or several volatile memory cells. In another embodiment, memory 904 is one (or several) non-volatile memory cells.
The storage device 906 can provide a large capacity storage for the computing device 900. In one embodiment, storage device 906 is a computer readable medium. In various embodiments, the storage device 906 can be a floppy disk device, a hard disk device, a disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices ( Contains a storage area network or other configuration device). In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, implement one or more methods, such as those set forth above. The information carrier is a computer readable medium or machine readable medium, such as memory 904, storage device 906, memory on processor 902, or the like.
The high speed controller 908 manages bandwidth intensive operation of the computing device 900, while the low speed controller 912 manages lower bandwidth intensive operations. This task assignment is merely illustrative. In one embodiment, high speed controller 908 is coupled to memory 907, display 916 (e.g., via a graphics processor or accelerator) and to a high speed expansion port 910 that accepts various expansion cards (not shown). In this embodiment, the low speed controller 912 is coupled to the storage device 906 and the low speed expansion port 914. A low speed expansion package that can include various communication ports (eg, USB, Bluetooth, Ethernet, wireless Ethernet) (eg, via a network adapter) coupled to one or more input/output devices Such as a keyboard, an indicator device, a scanner or a network connection device (such as a switch or router).
As shown in the figures, computing device 900 can be implemented in a number of different forms. For example, it can be implemented as a standard server 920 or multiple times in a group of such servers. It can also be implemented as part of a rack server system 924. Alternatively, it can be implemented in a personal computer such as a laptop 922. Alternatively, components from computing device 900 can be combined with other components in a mobile device (not shown).
The embodiments of the subject matter and functional operations described in the specification can be implemented in a digital electronic circuit or computer software, firmware or hardware comprising the structures disclosed in the specification and their structural equivalents, or implemented in One or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a computer readable medium for data processing The device performs or controls the operation of the data processing device. The computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition that implements a machine readable propagated signal, or a combination of one or more of . The term "data processing device" encompasses all devices, devices and machines for processing data, and by way of example, includes a programmable processor, a computer or multiple processors or computers. In addition to the hard body, the device may also include an execution environment code for the computer program in question, for example, forming a processor firmware, a protocol stack, a database management system, an operating system, or one or more of One of the combinations of codes.
A computer program (also known as a program, software, software application, script or code) can be written in any form of programming language or interpreted language, and the computer program can be deployed in any form. Included as a stand-alone program or deployed as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not have to correspond to one file in a file system. A program may be stored in a portion of one of the files holding one of the other programs or materials (eg, one or more scripts stored in a markup language file), stored in a single file dedicated to one of the programs in question, or stored in a file Multiple coordination files (for example, files that store one or more modules, subprograms, or parts of code). A computer program can be deployed to be executed on a computer or on multiple computers located at one location or distributed across multiple locations and interconnected by a communication network.
The processes and logic flows set forth in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by dedicated logic circuitry (eg, an FPGA (Field Programmable Gate Array) or an ASIC (Dedicated Integrated Circuit)), and the device may also be implemented as dedicated logic circuitry.
By way of example, a processor suitable for executing a computer program includes both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. A basic component of a computer is one of a processor for executing instructions and one or more memory devices for storing instructions and data. In general, a computer will also include or be operatively coupled to receive data or receive data from the mass storage device for storing data or one or more mass storage devices (eg, magnetic disks, magneto-optical disks, or optical disks). It transmits data or both receives and transmits data. However, a computer does not have to have such a device. In addition, a computer can be embedded in another device, such as a mobile phone, a digital assistant (PDA), a mobile video player, a global positioning system (GPS) receiver, to name a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, by way of example, including: semiconductor memory devices (eg, EPROM, EEPROM, and fast) Flash memory device); a magnetic disk (for example, an internal hard disk or a removable disk); a magneto-optical disk; and a CD-ROM and a DVD-ROM disk. The processor and memory can be supplemented by or incorporated in dedicated logic circuitry.
Embodiments of the subject matter set forth in this specification can be implemented in a computing system that includes a backend component (eg, as a data server) or an intermediate component (eg, an application server) Or a front-end component (for example, a client computer having a graphical user interface or a web browser with which a user can interact with one of the subject matter described in this specification) or this Any combination of one or more of a backend, intermediate, or front-end component. The components of the system can be interconnected by any digital data communication form or medium (e.g., a communication network). Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), such as the Internet.
The computing system can include a client and a server. A client and server are generally remote from each other and typically interact via a communication network. The relationship between the client and the server is generated by means of a number of computer programs running on separate computers and having a client-server relationship with each other.
The specification is to be construed as being limited to the details of the particular embodiments of the invention. Certain features that are described in this specification in the context of a separate embodiment can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can be implemented in various embodiments, either individually or in any suitable sub-combination. Moreover, although features may be described above as acting in some combination and even initially claimed, one or more features from a claimed combination may be removed from the combination in certain circumstances, and the claim Combinations may be for a sub-combination or a sub-combination variant.
Similarly, although the operations are illustrated in a particular order in the drawings, this should not be construed as requiring that such operations be performed in the particular order or the order presented. The result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of the various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the illustrated program components and systems can generally be integrated together in a single In software products or packaged into multiple software products.
Thus, specific embodiments of the invention have been described. Other embodiments are within the scope of the following patent claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results.
<p>100. . . Exemplary web page</p><p>102. . . Font character set</p><p>104. . . Font character set</p><p>106. . . Font character set</p><p>108. . . Font character set</p><p>110. . . Font character set</p><p>112. . . Font character set</p><p>200. . . Computer network</p><p>202. . . computer system</p><p>204. . . Web browser</p><p>206. . . Internet</p><p>208a. . . Web source</p><p>208b. . . Web source</p><p>208c. . . Web source</p><p>210. . . Hypertext markup language file</p><p>212. . . Software agent</p><p>214. . . Font provider</p><p>216. . . Font subset</p><p>218. . . Font library</p><p>220. . . Storage device</p><p>222. . . server</p><p>224. . . Font database</p><p>302. . . Hypertext markup language file</p><p>304. . . Page content</p><p>306. . . instruction</p><p>308. . . Agent request</p><p>316. . . Recognized font character</p><p>318. . . Font subset request</p><p>400. . . Hypertext markup language file</p><p>900. . . Computing device (computing system)</p><p>902. . . processor</p><p>904. . . Memory</p><p>906. . . Storage device</p><p>908. . . High speed interface</p><p>910. . . High speed expansionport</p><p>912. . . Low speed interface</p><p>914. . . Low speed bus</p><p>916. . . monitor</p><p>920. . . Standard server</p><p>922. . . Laptop</p><p>924. . . Rack server system</p>
Figure 1 illustrates an illustrative content that can be transmitted over a computer network.
Figure 2 is a block diagram of a computer network based on the Internet.
Figure 3 illustrates a request and delivery of a software agent and a subset of fonts to a font provider.
Figure 4 is an exemplary file for generating a web page.
Figures 5, 6, and 7 illustrate examples of code instructions.
Figure 8 is an exemplary flow diagram of one of the operations of a software agent.
Figure 9 is a block diagram of a computing device and system.
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both waysCites: the store holds 4 of 5
| Document | Relation | Office |
|---|---|---|
| TW544595 | Cites | Taiwan Province of China |
| TW200511041A | Cites | Taiwan Province of China |
| US7155672B1 | Cites | United States of America |
| US20080028304A1 | Cites | United States of America |
13 members in 7 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 12769839 | United States of America | – | |
| 76983910 | United States of America | A | |
| 12769839 | – | – | – |
| US20100769839 | – | – | – |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| US2011271180A1 | United States of America | A1 | |
| WO2011137146A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW201205311A | Taiwan Province of China | A | |
| CN102939601A | China | A | |
| EP2564327A1 | European Patent Office (EPO) | A1 | |
| KR20130066603A | Republic of Korea | A | |
| JP2013533527A | Japan | A | |
| US8615709B2 | United States of America | B2 | |
| US2014115453A1 | United States of America | A1 | |
| TWI541663BThis record | Taiwan Province of China | B | |
| JP6097214B2 | Japan | B2 | |
| CN107423265A | China | A | |
| US10572574B2 | United States of America | B2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- I541663
- Publication, DOCDB
- I541663
- Publication, EPODOC
- TWI541663B
- Application
- 100113796
- Application, DOCDB
- 100113796
- Application, EPODOC
- TW20110113796
Titles2
- English
- Initiating font subsets
- Chinese
- ??????
Classification
- CPC, 2
- G06F40/109
- G06F40/10
- IPC, 2
- G06F40 00
- G06F17 20