[go: up one dir, main page]

WO2014074104A1 - Prise en charge de polices à échelle modifiable - Google Patents

Prise en charge de polices à échelle modifiable Download PDF

Info

Publication number
WO2014074104A1
WO2014074104A1 PCT/US2012/064323 US2012064323W WO2014074104A1 WO 2014074104 A1 WO2014074104 A1 WO 2014074104A1 US 2012064323 W US2012064323 W US 2012064323W WO 2014074104 A1 WO2014074104 A1 WO 2014074104A1
Authority
WO
WIPO (PCT)
Prior art keywords
font
web
asset
file
features
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.)
Ceased
Application number
PCT/US2012/064323
Other languages
English (en)
Inventor
Sampo Juhani KAASILA
Anand VIJAY
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.)
Monotype Imaging Inc
Original Assignee
Monotype Imaging Inc
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 Monotype Imaging Inc filed Critical Monotype Imaging Inc
Priority to PCT/US2012/064323 priority Critical patent/WO2014074104A1/fr
Publication of WO2014074104A1 publication Critical patent/WO2014074104A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • This description relates to techniques for allowing computing devices to support scalable fonts for presentation.
  • the systems and techniques described here relate to determining if a web browser (or other type of asset presenter) is capable of supporting typographic features of a web asset (e.g., a website webpage, etc.) represented in the scalable font format. Appropriate action can be taken based upon the determination. For example, if capable of supporting the features, font information may be provided to the web browser for appropriately presenting the web asset. If not supported by the web browser, font information may be modified and provided such that the web browser can present the typographical features. By providing the ability to present such rich content through these features, viewer experiences may be improved along with their interest in the web asset being presented.
  • a web browser or other type of asset presenter
  • a computer-implemented method includes receiving information that indicates whether an asset presenter being executed by a computing device is capable of presenting one or more typographic features of a web asset represented in a scalable font format. The method also includes, in response to receiving the information, sending font information to the computing device to allow the one or more typographic features of the web asset represented in the scalable font format to be presented by the computing device.
  • Implementations may include one or more of the following features. Sending font information may include sending a font file to the computing device. Sending font information may include modifying a font file prior to sending the font file to the computing device. Modifying the font file may include adding one or more character codes to the font file for accessing corresponding glyph shapes.
  • Modifying the font file may include removing a portion of the font file. Modifying the font file may include removing a portion of a table from the font file. Modifying the font file may include removing a portion of a glyph substitution table.
  • Sending the font information may include sending a file executable by the asset presenter that contains logic for presenting the typographical features of the web asset represented in the scalable font format. The information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by a font service provider. The information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by the computing device.
  • the operations executed by the computing device may include reading a cascading style sheet file for determining the typographical features of the web asset.
  • the operations executed by the asset presenter may include reading information provided from a hypertext markup language file for determining the typographical features of the web asset.
  • the web asset presenter may read a document object model for the information provided from the hypertext markup language file.
  • the document object model may be modified to include a representation of the one or more typographical features of the web asset represented in a scalable font format.
  • the font file may include data for a subset of typographical features based on the typographical features of the web asset.
  • the font file may include data for a subset of characters based on the content of the web asset.
  • the asset presenter may include one of a web browser, a web-based application and a web view application.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one or more files.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one file concatenated from two or more other files.
  • the sent font information may include one or more operations with names that identify one or more typographical features.
  • a system includes a first computing device that includes a memory configured to store instructions.
  • the first computing device also includes a processor to execute the instructions to perform operations that include receiving information that indicates whether an asset presenter being executed by a computing device is capable of presenting one or more typographic features of a web asset represented in a scalable font format. Operations also include, in response to receiving the information, sending font information to the computing device to allow the one or more typographic features of the web asset represented in the scalable font format to be presented by the computing device.
  • Sending font information may include sending a font file to the computing device.
  • Sending font information may include modifying a font file prior to sending the font file to the computing device.
  • Modifying the font file may include adding one or more character codes to the font file for accessing corresponding glyph shapes.
  • Modifying the font file may include removing a portion of the font file.
  • Modifying the font file may include removing a portion of a table from the font file.
  • Modifying the font file may include removing a portion of a glyph substitution table.
  • Sending the font information may include sending a file executable by the asset presenter that contains logic for presenting the typographical features of the web asset represented in the scalable font format.
  • the information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by a font service provider.
  • the information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by the computing device.
  • the operations executed by the computing device may include reading a cascading style sheet file for determining the typographical features of the web asset.
  • the operations executed by the asset presenter may include reading information provided from a hypertext markup language file for determining the typographical features of the web asset.
  • the web asset presenter may read a document object model for the information provided from the hypertext markup language file.
  • the document object model may be modified to include a representation of the one or more typographical features of the web asset represented in a scalable font format.
  • the font file may include data for a subset of typographical features based on the typographical features of the web asset.
  • the font file may include data for a subset of characters based on the content of the web asset.
  • the asset presenter may include one of a web browser, a web-based application and a web view application.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one or more files.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one file concatenated from two or more other files.
  • the sent font information may include one or more operations with names that identify one or more typographical features.
  • one or more computer readable media storing instructions that are executable by a processing device, and upon such execution cause the processing device to perform operations that include receiving information that indicates whether an asset presenter being executed by a computing device is capable of presenting one or more typographic features of a web asset represented in a scalable font format. Operations also include, in response to receiving the information, sending font information to the computing device to allow the one or more typographic features of the web asset represented in the scalable font format to be presented by the computing device.
  • Sending font information may include sending a font file to the computing device.
  • Sending font information may include modifying a font file prior to sending the font file to the computing device.
  • Modifying the font file may include adding one or more character codes to the font file for accessing corresponding glyph shapes.
  • Modifying the font file may include removing a portion of the font file.
  • Modifying the font file may include removing a portion of a table from the font file.
  • Modifying the font file may include removing a portion of a glyph substitution table.
  • Sending the font information may include sending a file executable by the asset presenter that contains logic for presenting the typographical features of the web asset represented in the scalable font format.
  • the information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by a font service provider.
  • the information that indicates whether the asset presenter is capable of presenting one or more typographic features of a web asset represented in a scalable font format may be based on operations executed by the computing device.
  • the operations executed by the computing device may include reading a cascading style sheet file for determining the typographical features of the web asset.
  • the operations executed by the asset presenter may include reading information provided from a hypertext markup language file for determining the typographical features of the web asset.
  • the web asset presenter may read a document object model for the information provided from the hypertext markup language file.
  • the document object model may be modified to include a representation of the one or more typographical features of the web asset represented in a scalable font format.
  • the font file may include data for a subset of typographical features based on the typographical features of the web asset.
  • the font file may include data for a subset of characters based on the content of the web asset.
  • the asset presenter may include one of a web browser, a web-based application and a web view application.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one or more files.
  • the font information may include the typographical features of the web asset represented in the scalable font format, is absent typographical features that are absent from the web asset, and is provided in one file concatenated from two or more other files.
  • the sent font information may include one or more operations with names that identify one or more typographical features.
  • FIG. 1 illustrates a mobile device presenting text content.
  • FIG. 2 is a block diagram of an Internet based computer network.
  • FIG. 3 illustrates a font service provider providing font information to computing devices.
  • FIG. 3 a illustrates an editor.
  • FIG. 4 illustrates presentable content for computing devices.
  • FIGs. 5 and 6 are portions of hypertext markup language (HTML) files.
  • FIG. 7 is an example flow chart of operations of a font service manager.
  • FIG. 8 is a block diagram showing an example of a system for providing hosted storage and accessing the hosted storage from a client device.
  • FIG. 9 illustrates an example of a computing device and a mobile computing device that can be used to implement the techniques described here.
  • many types of computing devices are capable of presenting various types of graphical content such as text, images, video, etc.
  • various types of font families e.g., Times New Roman, Arial, etc.
  • Each font generally includes a set of individual character shapes called glyphs and each glyph can be distinguished by its various design features (e.g., geometry, stroke thickness, serifs, size, etc.).
  • One or more techniques may be utilized for representing such fonts; for example, outline-based representations may be adopted in which lines and curves are used to define the borders of glyphs.
  • Such fonts may be scalable for a variety of sizes (e.g., for rending by various computing devices) and may be represented in one or more formats.
  • scalable outline fonts may be represented in a format that includes data structures capable of supporting a variety of typographic visual symbols of many languages.
  • OpenType is one such format capable of defining a number of typographical features that one or more scalable computer fonts may support.
  • Features may include, for example, providing a typographical flourish on a glyph (referred to as a swash), two or more graphemes joined as a single glyph (referred to as a ligature), representing fractions as a single character (e.g., 1 ⁇ 2 ), etc.
  • Formats such as the OpenType may also support typographical features that provide contextual alternatives to a character, word, phrase, etc. For example, rather than presenting the character "I” in the phrase “I caught a stylish silver fish", a graphical alternative " " " may be inserted into the phrase to read " caught a stylish silver fish”. Subscripting and superscripting, variants on capital letters (e.g., small versions of capital letters) etc. may also be supported by formats (such as OpenType) for scalable fonts.
  • some devices, operating systems and software applications may or may not be capable of supporting OpenType format for scalable computer fonts.
  • a cellular telephone 100 is executing an asset presenter (e.g., web browser application 102) to present content transmitted by one or more networks (e.g., the Internet) from a variety of sources.
  • the web browser 102 does not support OpenType fonts and is unable to present content in typographical features provided by OpenType fonts. For example, rather than presenting a single character of the ligature "fi" 104, the web browser 102 presents two individual characters "f 106 and "i" 108.
  • font formats such as OpenType may or may not be supported and content from an author may not be presented as originally prepared.
  • information may be prepared and provided to the device so it can be capable of properly presenting the content as originally created.
  • a computing environment 200 includes a computing device (e.g., the cellular telephone 100) that a user may interact with (e.g., using a keypad, etc.) to identify a target web asset (e.g., website, webpage, etc.) for being presented by the computing device.
  • a target web asset e.g., website, webpage, etc.
  • the web browser 102 or other type of asset presenter e.g., a software application
  • operations of the web browser 102 may include requesting, via the Internet 202, content from one or more webpage sources 204 a,b,c for the target webpage(s).
  • a webpage page is requested from webpage source 204a and a corresponding web asset file or files 206 are sent from the source through the Internet 202 to the cellular telephone 100.
  • the web asset files 206 include a hypertext markup language (HTML) file that includes instructions for presenting the asset and a cascading style sheet (CSS) file that provides presentation semantics for the asset being provided by the HTML file.
  • HTML hypertext markup language
  • CSS cascading style sheet
  • one or more techniques and methodologies may be implemented. For example, operations may be executed at one or more locations for making the determination. In the illustrated example, operations may be executed by the cellular telephone 100 (or other types of user computing devices) and a font service provider 208, which is in communication with the computing device through one or more networks (e.g., the Internet 202).
  • the font service provider 208 may incorporate one or more architectures, layouts, etc.
  • the font service provider 208 may incorporate a relatively large distributions of systems, computing devices (e.g., servers), etc. deployed in one or more locations (e.g., different geographical locations) and can be considered a content delivery network.
  • a font file 210 represents the font information that is sent from the font service provider 208 to the user device (i.e., the cellular telephone 100). Once the font information (e.g., the font file 210) is received, the information is used by the user device (e.g., executed by an asset presenter such as a web browser) to present the typographical features of the scalable font format such as OpenType fonts.
  • a web asset presenter may be consider as one or more applications (referred to as a web-based application) that can access or be accessed over a network such as the Internet, an intranet, etc.
  • Such web-based applications may also be considered as software applications that are hosted over a network and coded in a browser supported programming language (such as JavaScript, combined with a browser-rendered markup language such as HTML, etc.).
  • a web asset presenter may also be one or more applications (e.g., native application) executed on a computing device (or multiple devices) such as a user device (e.g., the cellular telephone 100) that provide a view of a web asset (e.g., a web view). Similar applications executed locally, remotely, or in combination among multiple locations may be considered as a web asset presenter. Similar to making the determination for web asset presenters, such a determination may be made for asset presenters that do not communicate with networks such as the Internet. For example, an asset presenter may be considered as one or more applications locally executed by a computing device that is capable of presenting network based assets such webpages, websites, etc. without being in communication with the Internet.
  • applications e.g., native application
  • a computing device or multiple devices
  • a user device e.g., the cellular telephone 100
  • Similar applications executed locally, remotely, or in combination among multiple locations may be considered as a web asset presenter. Similar to making the determination for web asset presenters, such a determination
  • One or more architectures may be implemented by the font service provider 208 for determining if a web browser is capable of presenting OpenType fonts along with other functionality.
  • a font service manager 212 is executed by a server 214 located at the font service provider 208.
  • the font service manager 212 may access information from one or more sources such as a storage device 216 (e.g., one or more hard drives, CD-ROMs, etc.) located at the font service provider 208.
  • the font information provided by the server 214 may also be collected from one or more other sources located internal or external to the font service provider 208.
  • the web browser 102 may initiate a request to be delivered to the font service provider 208 that asks for a software agent to be sent to the user device (e.g., the cellular telephone 100).
  • a software agent can be considered as a software module that may be executable in a substantially autonomous manner.
  • a software agent may operate without considerable user interaction.
  • the software agent can adaptively identify if the web browser 102 being executed by the user device is capable of supporting scalable font formats such as OpenType fonts and features.
  • the software agent may be implemented as a file that includes scripting language that is capable of supporting a variety of programming styles (e.g., JavaScript).
  • the software agent may be executed (e.g., by the web browser 102) to determine if the executed browser 102 is capable of presenting OpenType fonts.
  • one or more techniques may be implemented. For example, by identifying the browser being executed (e.g., from information such as browser type, version, manufacturer, etc.) the software agent may use one or more predefined rules (e.g., Microsoft Internet Explorer version 10 supports OpenType fonts, Microsoft Internet Explorer version 8 does not support OpenType fonts, etc.) to determine if the web browser is capable of presenting such formatted typographical features.
  • the software agent may poll the web browser, test the browser, etc. to determine if the browser supports scalable font formats such as OpenType fonts.
  • the software agent may also gather other information for having typographical features of a target web asset presented by the user computing device. For example, the software agent may identify the particular typographical features that are included in the web asset to which font information is needed from the font service provider 208. In one arrangement, the software agent may scan the CSS file provided with the web asset file(s) 206 of the web asset to determine one or more styles to be applied for presenting typographical elements (referred to as classes) included in the web asset.
  • classes typographical elements
  • the software agent may also review the HTML file provided with the web asset file(s) 206 to identify the particular characters, glyphs and other typographical elements (e.g., an "fi" ligature, a single glyph fraction representing the character "1 ⁇ 2", etc.) being used by the asset. Once identified, this information may be provided to the font service provider 208 for processing and preparing the needed information for delivery to the user computing device (e.g., the cellular telephone 100) for presenting the content of the asset.
  • the user computing device e.g., the cellular telephone 100
  • the font service manager 212 may prepare one or more font subsets such that the only font information provided to the user device is the information needed to present the web asset and no addition font information (e.g., font characters not included in the web asset) is transmitted from the font service provider 208 to the user computing device.
  • no addition font information e.g., font characters not included in the web asset
  • a diagram 300 graphically illustrates data transfers such that appropriate information is provided to asset presenters (e.g., web browsers) for presenting web assets based upon whether or not the asset presenter supports scalable font formats such as OpenType.
  • asset presenters e.g., web browsers
  • one computing device i.e., the cellular telephone 100
  • another computing device i.e., a tablet computing device 302
  • Both devices respectively execute browsers 102, 304, which in this example, are directed to the same target web asset. From the source of the web asset, the corresponding web asset file(s) 206 are provided to each device 100, 302.
  • software agents 306, 308 are respectively provided to the devices (e.g., from the font service provider 208) and are executed to determine if each corresponding device is capable of supporting, for example, OpenType fonts.
  • the web asset file(s) 206 e.g., an HTML file and a CSS file
  • a software agent e.g., a JavaScript file
  • the font service provider 208 may perform other operations associated with the software agent. For example, at predefined times (e.g., intervals, event triggered times, etc.) the agent may be updated by the font service provider 208 as information is collected. Information regarding which types of browsers is capable of supporting OpenType fonts, incapable of supporting OpenType fonts, etc. may be gathered and included in updated versions of the software agent.
  • the font service manager 212 may execute other operations in some arrangements. For example, the font service manager 212 may determine if a web browser is capable of supporting or not supporting scalable font formats such as OpenType and corresponding features. Receiving information from a device (e.g., the type of browser being executed by the device in a request such as request 310), the font service manager 212 may be able to determine if scalable font formats are supported by the device and execute appropriate operations.
  • the software agents 306, 308 may be capable of performing other operations. For example, operations may be respectively executed by the software agents 306, 308 to collect information regarding the typographical features and content of the web asset being provided by the web asset file(s) 206.
  • each software agent reads a CSS file included with the web asset file(s) 206 to identify which font classes may be used by the asset.
  • the software agent may also read the HTML file included with the web asset file(s) 206 to identify the particular characters that may be used by the web asset.
  • the software agent may read information of the HTML file from other sources, for example, information from a document object model (DOM) or a node-based structure used to organize the information (e.g., a DOM tree).
  • DOM document object model
  • a node-based structure used to organize the information e.g., a DOM tree.
  • typographical features in scalable font formats may be identified by the software agent and provided to the font service provider 208 for preparing and providing appropriate subsets of the features.
  • Incremental subsetting techniques may also be employed. For example, after a subset is produced for the characters, typographical features, etc. present in a first page of a web asset, these identified characters may not be included in subset(s) for subsequent pages (e.g., a second page) of the web asset. By filtering out characters, typographical features, etc. already present in a subset, less processing time and memory may be consumed in a redundant manner.
  • operations of the software agents 306, 308 may be initiated by one or more conditions being satisfied, one or more events occurring, etc.
  • the software agents may not use the contents of the web asset file(s) 206 until appropriately signaled that one or more events have occurred.
  • applications such as a text-to-speech application may process the contents of the web asset file(s) 206 prior to being used by the software agents 306, 308.
  • one or more signals may be sent (or other type of signaling technique employed) to notify the software agents 306, 308 that the web asset files(s) 206 may be accessed and used.
  • each of the user devices 100, 300 may send a corresponding request 310, 312 to the font service provider.
  • each device is wirelessly connected to the one or more networks (e.g., the Internet) for exchanging information with the font service provider 208, as represented with the respective graphics 314, 316.
  • the font service manager 212 prepares font information for the devices based upon the information provided in each respective request.
  • a font file 318 is prepared and sent to the device 302 executing the web browser 304 that assists the device in supporting OpenType fonts.
  • the information included in the font file 318 allows the device 302 to present the typographical content of the web asset as authored (e.g., using OpenType fonts).
  • the font file 318 may include one or more tables for mapping information that identifies a character (e.g., represented by a character code) and the particular glyph to be presented (e.g., represented by a glyph index).
  • a character to glyph index mapping table may be provided that maps between character codes and glyph indices.
  • the font file 318 may include one or more tables that include information for substituting glyphs such as a glyph substitution table (GSUB), for example, to allow one or more glyph indices of a cmap table to be mapped to one or more indices representing glyph substitutes.
  • GSUB glyph substitution table
  • Some web browsers may only be able to support fonts that are absent scalable font format features such as OpenType font features.
  • a character code may not be assigned to the feature (e.g., a ligature) while a glyph index has been assigned to the feature (e.g., the font includes a glyph shape for an OpenType font feature but a character code has not been assigned to the feature).
  • an appropriate mapping table (a cmap table) may not include character codes for the needed OpenType features.
  • a cmap table may not include character codes for the needed OpenType features.
  • different font information may be sent to the user device (compared to the font file 318 sent to the user device 302 capable of supporting such fonts).
  • One or more techniques may be implemented to provide font information to non-supporting web browsers for presenting features of scalable font formats such as OpenType fonts.
  • multiple files are sent from the font service provider 208 to the non-supporting browser 102 of user device 100.
  • a font file 320 is delivered from the font service provider 208 that includes font information needed to present the content of the web asset.
  • the font file 320 can be considered a modified font file (compared to the font file 318) and may be absent the one or more tables provided in the font file 318 (e.g., a GSUB table). Portions of one or more tables may also be removed similar to removing an entire table or tables.
  • determining the particular features included in the web asset only the scalable font format features such as OpenType features identified in the web asset may be included in the font file 320.
  • memory may be conserved along with processing time and throughput (and/or other transmission characteristics).
  • Similar subsetting may also be executed for the font file provided to a browser that supports scalable font formats (such as the font file 318 provided to the browser 304).
  • memory, processing time, throughput etc. may be conserved by providing the subset of OpenType features (or features of other scalable font formats) identified as being included in the web asset and not providing the features absent from the web asset.
  • the font file 320 Since the font file 320 is being provided to a non-supporting browser, information is typically included in the file to assist with the web browser with presenting content using the features of scalable font formats.
  • the character codes included in the font file 320 may be modified (compared to the character codes of font file 318) by having one or more additional character codes added for OpenType features used in the web asset (e.g., a ligature, a single character fraction, etc.).
  • previously unused character codes (referred to as private codes) may be assigned to OpenType font features such that the codes can be used for presenting font features of the web asset by a non-supporting web browser (e.g., private codes may be added a cmap table).
  • OpenType features may be provided in one file (e.g., the font file 320) or more files. While all of the OpenType features may be provided in some instances, a subset of the features may be provided in some arrangements (e.g., based upon the information provided by a request such as the request 312). For example, multiple files may be used for delivering a complete OpenType feature set or the appropriate subset of OpenType features. In some arrangements each subsetted OpenType feature may be delivered in an individual file or the features may be concatenated together into a single file.
  • an executable file 322 may be provided by the font service provider 208.
  • the executable file 322 e.g., a JavaScript file
  • the executable file 322 includes logic for mapping character codes to glyphs for presenting the typographical content of the web asset.
  • the executable file 322 includes logic for inserting appropriate glyphs.
  • the executable file 322 may include a rule for inserting an OpenType font feature (e.g., a single character fraction such as "1 ⁇ 2”) when one or more conditions occur (e.g., detecting an integer such as "1” followed by a slanted line "/" and then by another integer such as "2").
  • satisfied conditions of detected instances for inserting such features may be implemented by using one or more other techniques individually or in combination. For example, as content of the web asset is scanned (e.g., by scanning a DOM tree, an HTML file, etc.), the scanned characters may be used to determine if one or more predefined executable operations (e.g., methods, functions, etc.) are present. In some architectures determining if a particular executable operation exists may be more computationally efficient than comparing scanned characters to a collection of rules.
  • predefined executable operations e.g., methods, functions, etc.
  • a relatively quick determination may be made if an operation (e.g., method, function, etc.) exists that uses the scanned character in the name of the operation (e.g., a method entitled "f and i ligature insertion method"). If the scanned characters are used and the operation does exist, then the operation (or operations) may then be executed. If determined that such an operation for the scanned characters does not exist, the next scanned characters (e.g., the next sequential group of scanned characters) may be used to determine if a corresponding operation (e.g., method, function, etc.) exists for those characters.
  • an operation e.g., method, function, etc.
  • One or more techniques may be implemented for inserting such features.
  • data e.g., a private character code
  • the modified font information e.g., including additional character codes for OpenType font features
  • the non-supporting web browser 102 can become capable of supporting such font features (e.g., OpenType font features) of web assets presented by the user device 100.
  • the contents of the executable file 322 may be reduced based upon the subset of material included in the web asset.
  • logic e.g., one or more rules for OpenType font feature
  • logic may be absent from the executable file 322 if corresponding features are not included in the content of the web asset (e.g., remove ligature rules if the asset includes no ligatures).
  • multiple executable files may be sent from the font service provider 208 to the device rather than a single executable file.
  • multiple files may be used for delivering the logic for a complete OpenType feature set or the appropriate subset of OpenType features.
  • each subsetted OpenType feature may be delivered in an individual file or the features may be concatenated together into a single file.
  • the information may be used for other applications.
  • this information may be utilized by an editor, executed locally (e.g., by a user device) or remotely (e.g., at the font service provider or other location), for corresponding applications (e.g., creating content, editing content, managing content, etc.).
  • a user interface 350 is presented that includes an editor that allows a user to select various types of characters (e.g., to create different types of presentations, assets, applications, etc.).
  • the user interface 350 Similar to providing characters for selection, the user interface 350 also provides glyphs, fonts, typographical features etc. for content creation. For example, features of scalable font formats such as OpenType font features may be presented for selection and use in creating content.
  • the user interface 350 includes an edit pane 352 for a user to input content (e.g., characters selected from a keyboard).
  • the user interface also includes a region 354 populated with selectable icons (e.g., buttons) that represent various features such as OpenType features that may be selected for applying a corresponding feature to the input content (e.g., a single character fraction by selecting the "FRAC" icon).
  • the user interface also includes a preview pane 356 that allows the user to view the applied features.
  • interfaces may be implemented that are directed toward use on a local computer.
  • interfaces may be implemented for use by remotely located computer systems (e.g., for cloud-based computer systems and services) and other types of computer and network architectures.
  • a graphical representation 400 is presented that includes typographical content of a web asset (e.g., as provided by the web asset file(s) 206) that is absent OpenType font features.
  • the text presented by the representation 400 correlates to the content of the web asset being presented by a web browser (e.g., browser 102) that does not support scalable font formats such as OpenType fonts.
  • Another graphical representation 402 is also presented that includes graphical alternatives as provided by an OpenType font feature.
  • I being replaced by the contextual alternative
  • an HTML file 500 is presented that includes instructions for producing the web asset presented in the graphical representation 400 (shown in FIG. 4) that is absent OpenType font features (e.g., contextual alternatives). Along with providing the text for presentation and corresponding instructions, the file also identifies the CSS file that provides stylistic information for presenting the asset. To provide the OpenType font features (e.g., contextual alternatives), one or more adjustments may be made to the HTML file 500. For example, referring to FIG. 6 another HTML file 600 is presented, which is an adjusted version of the HTML file 500 (shown in FIG. 5), and includes instructions and information such that OpenType font features are included in the graphical presentation provided by the executed file.
  • OpenType font features e.g., contextual alternatives
  • an instruction 602 has been included on the HTML file to provide a path to a server (e.g., the server 214) of the font service provider 208 for file retrieval.
  • the instruction 602 also identifies a JavaScript file (i.e., titled "otfmain.js"), which when executed initiates the requesting for a software agent (e.g., the software agent 306) to be provided by the font service provider 208.
  • a class name e.g., a four byte name
  • Contextual alternatives may be identified with "calt”, ligatures by "liga”, discretionary ligatures by “dlig”, swashes by “swsh”, one character fractions as “frac”, etc. Additionally, information regarding these OpenType features may be placed in the CSS file. For example, the features may be added as style elements to the CSS file.
  • the contextual alternative class (labeled "otf-calton") is inserted into the file to indicate portions of the presented asset that may incorporate contextual alternatives.
  • the OpenType feature class for contextual alternatives is inserted with an instruction 604 for a main header of the asset (indicated with an arrow 404 in FIG. 4).
  • contextual alternatives are included in the main text of the web asset as provided by the instruction 606 (and indicated with an arrow 406 in FIG. 4) and also included for the text presented in the right side of the representation 402 as provided by the instruction 608 (and indicated with an arrow 408 in FIG. 4).
  • the software agent can determine which OpenType feature classes are being used for producing the web asset (e.g., for example by scanning the HTML file and CSS file of the web asset) and accordingly requesting the classes from the font service provider 208. Further, by identifying the particular contextual alternatives (e.g., the "
  • a flowchart 700 represents operations of a font service manager (e.g., the font service manager 212 shown in FIG. 2).
  • Operations of the font service manager are typically executed by a single computing device (e.g., the server 214 also shown in FIG. 3); however, operations of the font service manager may be executed by multiple computing devices.
  • operation execution may be distributed among two or more locations.
  • Operations of the font service manager may include receiving 702 information that indicates whether an asset presenter (e.g., a web browser) being executed by a computing device is capable of presenting one or more typographic features of a web asset represented in a scalable font format. For example, a request may be sent from the computing device to the font service provider (where the font service manager is executed) that contains information indicative of whether a web browser executed by the device supports OpenType font features. Operations may also include, in response to receiving the information, sending 704 font information to the computing device to allow the one or more typographic features of the web asset represented in the scalable font format to be presented by the computing device.
  • an asset presenter e.g., a web browser
  • Operations may also include, in response to receiving the information, sending 704 font information to the computing device to allow the one or more typographic features of the web asset represented in the scalable font format to be presented by the computing device.
  • a font file may be sent by the font service provider that includes modified information (e.g., including additional character codes) along with an executable file (e.g., a JavaScript file) that includes logic (e.g., rules) for using the character codes provided by the font file.
  • modified information e.g., including additional character codes
  • executable file e.g., a JavaScript file
  • logic e.g., rules
  • FIG. 8 is a block diagram showing an example of a system 800 for providing hosted storage and accessing the hosted storage from a client device 802.
  • a hosted storage service 820 may provide access to stored data (e.g., font information) by applications (e.g., web browsers) running on computing devices operating separately from one another, provide offsite data backup and restore functionality, provide data storage to a computing device with limited storage capabilities, and/or provide storage functionality not implemented on a computing device.
  • stored data e.g., font information
  • applications e.g., web browsers
  • the system 800 may provide scalable stores for storing data resources.
  • the client device 802 may upload data resources to the hosted storage service 820 and control access to the uploaded data resources. Access control may include a range of sharing levels (e.g., private, shared with one or more individuals, shared with one or more groups, public, etc.). Data stored in hosted storage service 820 can be secured from unauthorized access.
  • the hosted storage service 820 can use a simple and consistent application programming interface, or API, which can allow arbitrary quantities of structured or unstructured data to be kept private or shared between individuals, organizations, or with the world at large.
  • the client device 802 may access, retrieve, be provided, store, etc. data in the hosted storage service 820 for any number of a variety of reasons. For example, data may be stored for business reasons (e.g., provide identification information to attain access clearance for font data at the hosted storage service 820), or for use in data processing by other services.
  • the client device 802 may be implemented using a computing device, such as the computing device 900 or the mobile device 950 described with respect to FIG. 9.
  • the client device 802 may communicate with the hosted storage service 820 via a network 804, such as the Internet.
  • the client device 802 may communicate across the network using communication protocols such as, for example, one or more of Transmission Control Protocol/Internet Protocol (TCP/IP), Hypertext Transfer Protocol (HTTP), Secure Shell Remote Protocol (SSH), or Application Program Interfaces (API). While only a single client device 802 is shown, there may be multiple client devices communicating across the network 804 with the hosted storage service 820 and/or other services and devices.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • HTTP Hypertext Transfer Protocol
  • SSH Secure Shell Remote Protocol
  • API Application Program Interfaces
  • the hosted storage service 820 may be implemented such that client applications executing on client device 802, such as a client application 803, may store, retrieve, or otherwise manipulate data resources in the hosted storage service 820.
  • the hosted storage service 820 may be implemented by one or more server devices, which may be implemented using a computing device, such as the computing device 900 or mobile device 950 described with respect to FIG. 9.
  • the hosted storage service 820 may be implemented by multiple server devices operating in the same, or different, data centers.
  • the hosted storage service 820 generally includes an interface frontend 806, an interface backend 808, a storage backend 810, and metadata 816 for resources stored in the storage backend 810.
  • the hosted storage service 820 may also include an authenticator 809 to verify that a user requesting one or more fonts should be provided access to the fonts (e.g., based on a service subscription, rental period, etc.).
  • the interface frontend 806 may receive requests from and send responses to the client device 802.
  • the hosted storage service 820 may be implemented as a Web Service with a corresponding set of Web Service Application Programming Interfaces (APIs).
  • the Web Service APIs may be implemented, for example, as a Representational State Transfer (REST)-based HTTP interface or a Simple Object Access Protocol (SOAP)- based interface.
  • Interface frontend 806 may receive messages from the client 802 and parse the requests into a format usable by the hosted storage service 820, such as a remote procedure call (RPC) to an interface backend 808.
  • the interface frontend 806 may write responses generated by the hosted storage service 820 for transmission to the client 802.
  • multiple interface frontends 806 may be implemented, for example to support multiple access protocols.
  • the interface frontend 806 may include a graphical front end, for example to display on a web browser for data access.
  • the interface frontend 806 may include a sub-system to enable managed uploads and downloads of large files (e.g., for functionality such as pause, resume, and recover from time-out).
  • the interface frontend 806 may monitor load information and update logs, for example to track and protect against denial of service (DOS) attacks.
  • DOS denial of service
  • the Web Service API may be a REST-based HTTP interface.
  • a data resource is accessed as a resource, uniquely named using a uniform resource identifier (URI), and the client application 803 and service 820 exchange representations of resource state using a defined set of operations.
  • requested actions may be represented as verbs, such as by HTTP GET, PUT, POST, HEAD, and DELETE verbs.
  • the GET verb may be used to retrieve a resource
  • the HEAD verb may be used to retrieve information about a resource without retrieving the resource itself.
  • the DELETE verb may be used to delete a resource from the hosted storage service 820.
  • the PUT and POST verbs may be used to upload a resource to the service 820.
  • PUT requests may come from the client 802 and contain authentication and authorization credentials and resource metadata in a header, such as an HTTP header.
  • POST requests may be received when a client 802 wants to upload from a web browser form.
  • the form POST upload protocol for the hosted storage service 820 may involve multiple form fields to provide authentication, authorization, and resource metadata. More generally, any of the API requests may include credentials for authentication and authorization, for example in a header of the request.
  • An authorization header may be included in the REST requests, which may include an access key to identify the entity sending the request.
  • a user may be authenticated based on credentials stored in a browser cookie, which may be appended to the API requests. If no valid cookie is present, a redirect to an authentication frontend may be generated, and the authentication frontend may be used to generate the browser cookie.
  • the authentication frontend may be used by systems and services in addition to the hosted storage service 820 (e.g., if the organization operating the hosted storage service 820 also operates other web services such as email service).
  • a user may also or alternatively be authenticated based on authentication credentials from an external credentialing service or an external service that includes credentialing functionality. User or group identifier information may be calculated from the external service's credential information.
  • Requests sent by the client 802 to the interface frontend 806 may be translated and forwarded to the external service for authentication.
  • resources stored in the hosted storage service 820 may be referenced by resource identifiers.
  • the hosted storage service 820 may define namespaces to which a valid resource identifier must conform.
  • the namespace may require that resource identifiers be a sequence of Unicode characters whose UTF-8 encoding is at most 1024 bytes long.
  • the namespace may require that resource identifiers be globally unique identifiers (GUIDs), which may be 128-bit integers.
  • GUIDs globally unique identifiers
  • Resources may be stored in hosted storage service 820 in buckets.
  • each bucket is uniquely named in the hosted storage service 820
  • each data resource is uniquely named in a bucket
  • every bucket and data resource combination is unique.
  • Data resources may be uniquely identified by a URI that includes the bucket name and the resource name, and identifies the hosted storage service 820.
  • a resource named "long/song.mp3" in a bucket named "music” could be specified using a URI pattern such as http://s.hostedstoragesystem.com/music/long/song.mp3 or http://musics.hostedstoragesystem.com/long/song.mp3.
  • the user of the client 802 may create a bucket named my.music.org, publish a CNAME alias redirected to http://musics.hostedstoragesystem.com, and address the resource as http://my.music.org/long/song.mp3. In some examples, buckets do not nest.
  • the interface backend 808 along with the authenticator 809 may handle request authentication and authorization, may manage data and metadata, and may track activity such as for billing. As one example, the interface backend 808 may query the authenticator 809 when a request for one or more fonts is received.
  • the interface backend 808 may also provide additional or alternative functionality. For example, the interface backend 808 may provide functionality for independent frontend / backend scaling for resource utilization and responsiveness under localized heavy loads. Data management may be encapsulated in the interface backend 808 while communication serving may be encapsulated in the interface frontend 806. The interface backend 808 may isolate certain security mechanisms from the client-facing interface frontend 806.
  • the interface backend 808 may expose an interface usable by both the interface frontend 806 and other systems.
  • some features of the interface backend 808 are accessible only by an interface frontend (not shown) used by the owners of the hosted storage service 820 (internal users). Such features may include those needed for administrative tasks (e.g., resolving a resource reference to a low level disk address).
  • the interface backend 808 may handle request authentication (e.g., ensuring a user's credentials are valid) and authorization (e.g., verifying that a requested operation is permitted).
  • the interface backend may also provide encryption and decryption services to prevent unauthorized access to data, even by internal users.
  • the interface backend 808 may manage metadata 816 associated with data resources, for example in a MySQL database or BigTable. User-specified names labeling the buckets can be completely defined within the metadata 816, and resource metadata 816 can map a resource name to one or more datastores 812 storing the resource.
  • the metadata 816 can also contain bucket and resource creation times, resource sizes, hashes, and access control lists 818 (ACL 818) for both buckets and resources.
  • the interface backend 808 can log activity and track storage consumption to support accounting for billing and chargebacks. In some examples, this includes quota monitoring in each dimension in which customers are charged (e.g., reads, writes, network transfers, total storage in use).
  • the ACLs 818 may generally define who is authorized to perform actions on corresponding buckets or resources, and the nature of the permitted actions.
  • the ACLs 818 may be an unordered list of ⁇ scope, role ⁇ pairs, plus Boolean flags.
  • the scope may define a user or group of users and the role may define the access permissions for the user or group.
  • the union of all ⁇ scope, role ⁇ pairs may define access rights.
  • more specific ⁇ scope, role ⁇ pairs override more general ones.
  • the storage backend 810 may contain multiple datastores 812a-812c. Although three datastores 812 are shown, more or fewer are possible. Each of the datastores 812a-812c may store data resources 814a-814c in a particular format. For example, data store 812a may store a data resource 814a as a Binary Large Object (BLOB), data store 812b may store a data resource 814b in a distributed file system (e.g., Network File System), and data store 812c may store a data resource 814c in a database (e.g., MySQL).
  • BLOB Binary Large Object
  • data store 812b may store a data resource 814b in a distributed file system (e.g., Network File System)
  • data store 812c may store a data resource 814c in a database (e.g., MySQL).
  • FIG. 9 shows an example of example computer device 900 and example mobile computer device 950, which can be used to implement the techniques described herein. For example, a portion or all of the operations of the font service manager 212 (shown in FIG. 2) may be executed by the computer device 900 and/or the mobile computer device 950.
  • Computing device 900 is intended to represent various forms of digital computers, including, e.g., laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
  • Computing device 950 is intended to represent various forms of mobile devices, including, e.g., personal digital assistants, tablet computing devices, cellular telephones, smartphones, and other similar computing devices.
  • the components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the techniques described and/or claimed in this document.
  • Computing device 900 includes processor 902, memory 904, storage device 906, high-speed interface 908 connecting to memory 904 and high-speed expansion ports 910, and low speed interface 912 connecting to low speed bus 914 and storage device 906.
  • processor 902 can process instructions for execution within computing device 900, including instructions stored in memory 904 or on storage device 906 to display graphical data for a GUI on an external input/output device, including, e.g., display 916 coupled to high speed interface 908.
  • multiple processors and/or multiple buses can be used, as appropriate, along with multiple memories and types of memory.
  • multiple computing devices 900 can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
  • Memory 904 stores data within computing device 900.
  • memory 904 is a volatile memory unit or units.
  • memory 904 is a non-volatile memory unit or units.
  • Memory 904 also can be another form of computer- readable medium, including, e.g., a magnetic or optical disk.
  • Storage device 906 is capable of providing mass storage for computing device 900.
  • storage device 906 can be or contain a computer-readable medium, including, e.g., a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
  • a computer program product can be tangibly embodied in a data carrier.
  • the computer program product also can contain instructions that, when executed, perform one or more methods, including, e.g., those described above.
  • the data carrier is a computer- or machine-readable medium, including, e.g., memory 904, storage device 906, memory on processor 902, and the like.
  • High-speed controller 908 manages bandwidth-intensive operations for computing device 900, while low speed controller 912 manages lower bandwidth-intensive operations. Such allocation of functions is an example only.
  • high-speed controller 908 is coupled to memory 904, display 916 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 910, which can accept various expansion cards (not shown).
  • low-speed controller 912 is coupled to storage device 906 and low-speed expansion port 914.
  • the low-speed expansion port which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be coupled to one or more input/output devices, including, e.g., a keyboard, a pointing device, a scanner, or a networking device including, e.g., a switch or router, e.g., through a network adapter.
  • input/output devices including, e.g., a keyboard, a pointing device, a scanner, or a networking device including, e.g., a switch or router, e.g., through a network adapter.
  • Computing device 900 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as standard server 920, or multiple times in a group of such servers. It also can be implemented as part of rack server system 924. In addition or as an alternative, it can be implemented in a personal computer including, e.g., laptop computer 922. In some examples, components from computing device 900 can be combined with other components in a mobile device (not shown), including, e.g., device 950. Each of such devices can contain one or more of computing device 900, 950, and an entire system can be made up of multiple computing devices 900, 950 communicating with each other.
  • Computing device 950 includes processor 952, memory 964, an input/output device including, e.g., display 954, communication interface 966, and transceiver 968, among other components.
  • Device 950 also can be provided with a storage device, including, e.g., a microdrive or other device, to provide additional storage.
  • a storage device including, e.g., a microdrive or other device, to provide additional storage.
  • Each of components 950, 952, 964, 954, 966, and 968, are interconnected using various buses, and several of the components can be mounted on a common motherboard or in other manners as appropriate.
  • Processor 952 can execute instructions within computing device 950, including instructions stored in memory 964.
  • the processor can be implemented as a chipset of chips that include separate and multiple analog and digital processors.
  • the processor can provide, for example, for coordination of the other components of device 950, including, e.g., control of user interfaces, applications run by device 950, and wireless communication by device 950.
  • Processor 952 can communicate with a user through control interface 958 and display interface 956 coupled to display 954.
  • Display 954 can be, for example, a TFT LCD (Thin- Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
  • Display interface 956 can comprise appropriate circuitry for driving display 954 to present graphical and other data to a user.
  • Control interface 958 can receive commands from a user and convert them for submission to processor 952.
  • external interface 962 can communicate with processor 942, so as to enable near area communication of device 950 with other devices.
  • External interface 962 can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces also can be used.
  • Memory 964 stores data within computing device 950.
  • Memory 964 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
  • Expansion memory 974 also can be provided and connected to device 950 through expansion interface 972, which can include, for example, a SIMM (Single In Line Memory Module) card interface.
  • SIMM Single In Line Memory Module
  • expansion memory 974 can provide extra storage space for device 950, or also can store applications or other data for device 950.
  • expansion memory 974 can include instructions to carry out or supplement the processes described above, and can include secure data also.
  • expansion memory 974 can be provided as a security module for device 950, and can be programmed with instructions that permit secure use of device 950.
  • secure applications can be provided through the SIMM cards, along with additional data, including, e.g., placing identifying data on the SIMM card in a non-hackable manner.
  • the memory can include, for example, flash memory and/or NVRAM memory, as discussed below.
  • a computer program product is tangibly embodied in a data carrier.
  • the computer program product contains instructions that, when executed, perform one or more methods, including, e.g., those described above.
  • the data carrier is a computer- or machine-readable medium, including, e.g., memory 964, expansion memory 974, and/or memory on processor 952, which can be received, for example, over transceiver 968 or external interface 962.
  • Device 950 can communicate wirelessly through communication interface 966, which can include digital signal processing circuitry where necessary. Communication interface 966 can provide for communications under various modes or protocols, including, e.g., GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication can occur, for example, through radio- frequency transceiver 968. In addition, short-range communication can occur, including, e.g., using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 970 can provide additional navigation- and location- related wireless data to device 950, which can be used as appropriate by applications running on device 950. Sensors and modules such as cameras, microphones, compasses, accelerators (for orientation sensing), etc. maybe included in the device.
  • GPS Global Positioning System
  • Device 950 also can communicate audibly using audio codec 960, which can receive spoken data from a user and convert it to usable digital data. Audio codec 960 can likewise generate audible sound for a user, including, e.g., through a speaker, e.g., in a handset of device 950. Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 950.
  • Audio codec 960 can receive spoken data from a user and convert it to usable digital data. Audio codec 960 can likewise generate audible sound for a user, including, e.g., through a speaker, e.g., in a handset of device 950. Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 950.
  • Computing device 950 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as cellular telephone 980. It also can be implemented as part of smartphone 982, personal digital assistant, or other similar mobile device.
  • Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
  • ASICs application specific integrated circuits
  • These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • machine-readable medium and computer-readable medium refer to a computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine- readable medium that receives machine instructions.
  • PLDs Programmable Logic Devices
  • the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying data to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in a form, including acoustic, speech, or tactile input.
  • feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback,
  • the systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such back end, middleware, or front end components.
  • the components of the system can be interconnected by a form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
  • LAN local area network
  • WAN wide area network
  • the Internet the global information network
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • the engines described herein can be separated, combined or incorporated into a single or combined engine.
  • the engines depicted in the figures are not intended to limit the systems described here to the software architectures shown in the figures.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

L'invention concerne un système comprenant un premier dispositif informatique qui comprend une mémoire configurée pour stocker des instructions. Le premier dispositif informatique comprend également un processeur permettant d'exécuter les instructions pour effectuer des opérations qui consistent entre autres à recevoir une information qui indique si un présentateur d'actifs en cours d'exécution par un dispositif informatique est capable de présenter une ou plusieurs fonctions typographiques d'un actif Web représenté dans un format de polices à échelle modifiable. Les opérations consistent également, en réponse à la réception de l'information, à envoyer des informations de police au dispositif informatique pour permettre à l'une ou aux plusieurs fonctions typographiques de l'actif de Web représenté dans le format de polices à échelle modifiable d'être présentées par le dispositif informatique.
PCT/US2012/064323 2012-11-09 2012-11-09 Prise en charge de polices à échelle modifiable Ceased WO2014074104A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2012/064323 WO2014074104A1 (fr) 2012-11-09 2012-11-09 Prise en charge de polices à échelle modifiable

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/064323 WO2014074104A1 (fr) 2012-11-09 2012-11-09 Prise en charge de polices à échelle modifiable

Publications (1)

Publication Number Publication Date
WO2014074104A1 true WO2014074104A1 (fr) 2014-05-15

Family

ID=50685033

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/064323 Ceased WO2014074104A1 (fr) 2012-11-09 2012-11-09 Prise en charge de polices à échelle modifiable

Country Status (1)

Country Link
WO (1) WO2014074104A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240378368A1 (en) * 2022-03-07 2024-11-14 Sandoll Inc. Web font service method of font service system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
KR20080089347A (ko) * 2005-12-15 2008-10-06 키오세라 와이어리스 코포레이션 가변 크기 폰트를 지원하는 텍스트 편집기를 이용하는 객체삽입하기
KR20090000485A (ko) * 2007-06-28 2009-01-07 엔에이치엔(주) 폰트 제공 방법 및 시스템
KR20090010358A (ko) * 2007-07-23 2009-01-30 (주) 엘지텔레콤 이동 통신망에서의 멀티미디어 메시지 전송을 통한 폰트제공 시스템 및 그 방법
US7940273B2 (en) * 2006-10-26 2011-05-10 Microsoft Corporation Determination of unicode points from glyph elements

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
KR20080089347A (ko) * 2005-12-15 2008-10-06 키오세라 와이어리스 코포레이션 가변 크기 폰트를 지원하는 텍스트 편집기를 이용하는 객체삽입하기
US7940273B2 (en) * 2006-10-26 2011-05-10 Microsoft Corporation Determination of unicode points from glyph elements
KR20090000485A (ko) * 2007-06-28 2009-01-07 엔에이치엔(주) 폰트 제공 방법 및 시스템
KR20090010358A (ko) * 2007-07-23 2009-01-30 (주) 엘지텔레콤 이동 통신망에서의 멀티미디어 메시지 전송을 통한 폰트제공 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240378368A1 (en) * 2022-03-07 2024-11-14 Sandoll Inc. Web font service method of font service system

Similar Documents

Publication Publication Date Title
US20140136957A1 (en) Supporting Scalable Fonts
US9626337B2 (en) Advanced text editor
US9569865B2 (en) Supporting color fonts
JP6800184B2 (ja) ドキュメント管理及びコラボレーション・システム
US20150074522A1 (en) Font Management for Editing Electronic Documents
US11100275B2 (en) Techniques for view capture and storage for mobile applications
US9817615B2 (en) Network based font management for imaging devices
US9880989B1 (en) Document annotation service
US9275024B2 (en) Identifiers for web font templates
US12086387B2 (en) Processing electronic signature data in a collaborative environment
US20120102176A1 (en) Extracting and managing font style elements
AU2017386055A1 (en) Image annotations in collaborative content items
CN103336774A (zh) 通过沙箱从网站检索内容
US20160182606A1 (en) Network Based Static Font Subset Management
US20140281916A1 (en) Supporting Font Character Kerning
US11803695B1 (en) Dynamic sharable web clippings
WO2014074104A1 (fr) Prise en charge de polices à échelle modifiable
CN119597723A (zh) 分布式数据处理方法、装置、电子设备及程序产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12887909

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12887909

Country of ref document: EP

Kind code of ref document: A1