TW201530322A - 字型處理方法及字型處理系統 - Google Patents
字型處理方法及字型處理系統 Download PDFInfo
- Publication number
- TW201530322A TW201530322A TW103102025A TW103102025A TW201530322A TW 201530322 A TW201530322 A TW 201530322A TW 103102025 A TW103102025 A TW 103102025A TW 103102025 A TW103102025 A TW 103102025A TW 201530322 A TW201530322 A TW 201530322A
- Authority
- TW
- Taiwan
- Prior art keywords
- font
- file
- display
- characters
- query
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
- G06F40/129—Handling non-Latin characters, e.g. kana-to-kanji conversion
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)
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Abstract
當開啟一文件時,將該文件中包含的所有標準字母的字碼送至一網路字型伺服器,再由該網路字型伺服器中存有屬於一字型之複數個顯示字符的一字型檔,選出該文件之該標準字母中所有屬於該字型之標準字母的字碼可能會出現的所有顯示字符係為該字型檔的一顯示字符子集合,並下載該顯示字符子集合。
Description
本發明係揭露一種字型處理方法,尤指一種根據使用者端裝置的文件內容提供顯示字符子集合的方法。
在先前技術中,當使用者欲於與網路(可能為有線網路或無線網路)相連之使用者端裝置(其係為一裝置,如手機或電腦)上開啟文件時,若使用者端裝置尚未安裝為了顯示文件中有使用到的標準字母(character)所需的字型檔(font file),則該使用者端裝置無法正確顯示文件。此時可由網路上下載字型檔,並藉由下載後的字型檔內儲存的「顯示字符」(glyph)據以顯示文件。然而一字型檔中佔用檔案尺寸最大的,即為字型檔中的「顯示字符表」,因為顯示字符表所儲存的每個「顯示字符」係為圖樣。因此若可僅下載開啟該文件所需的一或多個顯示字符,而非將完整且檔案尺寸巨大、可能高達十數百萬位元(mb)的全部顯示字符都下載,則可節省下載時間,進而加快開啟文件的速度。上述之「標準字母」,係指一語言中,具有相對應之萬國碼(Unicode)或ASCII碼等字碼的字母,下文中的「標準字母」亦如此定義。舉例而言:拉丁語系的字母「A」,因具有萬國碼0x 0041,故可視為一標準字母;然而,例如印度文顯示字符「」,因其不具有萬國碼或ASCII碼,故不被視為印度文之標準字母。
為了達到「僅下載為了正確開啟該文件所需要的一或多個顯示字符至使用者端裝置之裝置」的目的,但又要避免下載後的顯示字符不敷使用,
先前技術係於裝置開啟文件且偵測到使用者端裝置尚未安裝所需之字型檔時,將該文件傳送到網路字型伺服器,由網路字型伺服器內部的佈局引擎(layout engine)即時動態分析文件中包含的多個標準字母及其與其他標準字母之前後文組合,分析後方得知為了正確顯示該文件所需要的至少一顯示字符,再從該網路字型伺服器僅下載一字型檔子集合到使用者端裝置,其中,該字型檔子集合與原始之字型檔格式相同,但其中並非包括全部顯示字符,而僅包括為了正確顯示文件所需的至少一顯示字符。等到使用者端裝置接收到該字型檔子集合,再由使用者端裝置的佈局引擎(例如內建於智慧手機之瀏覽器中)根據複雜語系(如印度文、泰文及西藏文等)的組字規則將該文件中之多個標準字母前後文組合以正確顯示。
此方法雖可避免下載完整的全部顯示字符而降低下載的字型檔檔案尺寸,以減少下載時間,但即時動態分析所需的時間,會造成文件開啟時間的延遲,造成使用者的漫長等待。此外,由於為了得知正確顯示該文件所需要的至少一顯示字符,網路字型伺服器需先用佈局引擎分析該文件,待字型檔子集合下載到使用者端裝置後,為了組合已下載之顯示字符以正確顯示該文件,使用者端裝置的佈局引擎又需要再分析該文件中至少一標準字母的前後文排列關係,故若網路字型伺服器之佈局引擎與使用者端裝置之佈局引擎的分析方法不一致,就有可能導致最後顯示的結果錯誤。
上述缺點尤其在開啟以複雜語系語言(如印度文、泰文、阿拉伯文或緬甸文等)之文件時更易發生。因此,本領域確實需要一字型處理方法,以期能更快速地下載顯示文件所需要的顯示字符,據以在使用者端裝置迅速且正確地開啟文件,尤指以複雜語系語言如印度文、泰文、阿拉伯文、孟加拉文及/或緬甸文等撰寫的文件。
相較於先前技術,本發明可節省從網路字型伺服器下載字型檔子集合的傳送時間,可避免產生字型檔子集合之前即時動態分析文件中各標準字母之前後文相依性的處理器運算量,亦可減少使用者端裝置與網路字型伺服器之排版引擎因演算法或版本不同造成之顯示錯誤。對於複雜語系文字如印度文(Hindi)與泰文(Thai)等文字的廣大使用者而言,本發明揭露之字型處理方法與系統實可增進於該些文字的使用者於手機或電腦上閱讀文件的正確與便利程度。
本發明之一實施例揭露了一種字型處理方法,包含以一網路字型伺服器儲存一字型檔,該字型檔存有屬於一字型的複數個顯示字符;分析該字型檔包含之一特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生一查詢表;將一文件中所有標準字母之字碼由一使用者端裝置傳送至該網路字型伺服器;該網路字型伺服器接收後依據該查詢表,比對該文件中所包含之標準字母的字碼進行查詢,並由該字型檔中擷取所需字型之標準字母的字碼所對應之所有的待查詢顯示字符,及所需字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合;及該網路字型伺服器將該顯示字符子集合傳送至該使用者端裝置。
本發明之另一實施例揭露了一種字型處理方法,包含以一網路字型伺服器儲存一字型檔,該字型檔存有屬於一字型的複數個顯示字符;分析該字型檔包含之一特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生一查詢表;將一文件中所有標準字母之字碼
由一使用者端裝置傳送至該網路字型伺服器;該網路字型伺服器依據該查詢表,由該字型檔中擷取該文件中所有屬於該字型之標準字母的字碼所對應之所有的待查詢顯示字符,及所有屬於該字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合;將該字型檔中顯示字符以外的部份與該顯示字符子集合組合,以形成一字型檔子集合;及該網路字型伺服器將該字型檔子集合傳送至該使用者端裝置。
本發明之另一實施例揭露了一種字型處理系統,包含一使用者端裝置及一網路字型伺服器;該使用者端裝置包含一文件;該網路字型伺服器包含一字型檔及一查詢表;該字型檔存有屬於一字型的複數個顯示字符,且該字型檔包含一特徵表;該查詢表,其產生係藉由分析該特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生該查詢表;其中該使用者端裝置將該文件中所有標準字母之字碼傳送至該網路字型伺服器;該網路字型伺服器依據該查詢表,由該字型檔中擷取該文件中所有屬於該字型之標準字母的字碼所對應之所有的查詢輸入顯示字符,及所有屬於該字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合,並將該字型檔中顯示字符以外的部份與該顯示字符子集合組合,以形成一字型檔子集合,再將該字型檔子集合傳送至該使用者端裝置。
為了能更進一步瞭解本發明為達成既定目的所採取之技術、方法及功效,請參閱以下有關本發明之詳細說明、圖式,相信本發明之目的、特徵與特點,當可由此得以深入且具體之瞭解,然而所附圖式與附件僅提供參考與說明用,並非用來對本發明加以限制。
100‧‧‧字型檔
101‧‧‧字碼對應檔
102‧‧‧顯示字符表
103‧‧‧特徵表
104‧‧‧其他部份
1011‧‧‧字碼
1021‧‧‧顯示字符索引
1022‧‧‧顯示字符
105‧‧‧查詢表
401‧‧‧特徵表規則
402‧‧‧特徵表輸入顯示字符
403‧‧‧特徵表輸出顯示字符
405‧‧‧特徵表前文規則
406‧‧‧特徵表後文規則
5001~5008‧‧‧查詢規則
1051‧‧‧查詢表輸入資料
1052‧‧‧查詢可能結果
602‧‧‧使用者端裝置
6001‧‧‧文件
6002‧‧‧文件內含字碼
6003‧‧‧待查詢顯示字符索引
601‧‧‧網路字型伺服器
620‧‧‧字型檔
6201‧‧‧顯示字符表
6211‧‧‧顯示字符子集合
605‧‧‧查詢表
621‧‧‧字型檔子集合
680‧‧‧伺服器收發單元
701至712‧‧‧步驟
第1圖為本發明實施例之字型檔之示意圖。
第2圖為第1圖字型檔中的字碼對應檔之示意圖。
第3圖為第1圖字型檔中的顯示字符表之示意圖。
第4圖為第1圖字型檔中的特徵表之示意圖。
第5圖為本發明實施例所需的查詢表之示意圖。
第6圖為本發明實施例字型處理方法與系統產生字型檔子集合的示意圖。
第7圖為本發明實施例字型處理方法的流程圖。
下文依本發明字型處理方法,特舉實施例配合所附圖式作詳細說明,但所提供之實施例並非用以限制本發明所涵蓋的範圍。
當使用者欲於一使用者端裝置如手機、筆記型電腦、桌上型電腦、工業電腦、電視、穿戴裝置(如智慧眼鏡或智慧手錶)、智慧型家電(如網路冰箱)或車用裝置等任何可上網之顯示裝置閱讀一文件時,文件所包含的標準字母(character)所對應的內容需要以正確的「顯示字符」(glyph)表示,才能於裝置上正確地顯示文件以供使用者閱讀。
舉例來說,若文件中包含若干印度文(Hindi)內容,則例如一印度文標準字母「」(其萬國碼Unicode為0x0928)於某些印度文組字規則下,必需被顯示為「」、「」或者「」才正確。在這例子中,裝置上所顯示的「」、「」、「」或「」係皆對應於同一印度文標準字母「」(Unicode為0x0928),但根據印度文語言規則,在不同的情況下,顯示的圖樣並不相同,此相異的顯示圖樣,乃是由不同的「顯示字符」(glyph)予以顯示。在此例中,顯示字符(glyphs)「」即為標準字母「」之「原形型式」(original
form);而「」、「」或「」這三種顯示圖型,即可稱為標準字母「」的三種「變形型式」(variation forms)。由此可知,標準字母「」,可對應到四個「顯示字符」(glyphs):「」、「」、「」或「」。
又舉例來說,若一文件包含以下標準字母:「A」(其Unicode為0x0041)與「E」(其Unicode為0x0045),則二標準字母A與E相連時可能於某些語言規則下(如丹麥文規則中),經處理器判斷需以一「連結字」(ligature)Æ(其Unicode係為0x00C6)表示。在此例中,A、E與其連結字Æ,均有一對應之顯示字符(glyph),記載其顯示之圖樣。在另一個例子中,標準字母O與E(其Unicode分別為0x004F與0x0045)亦可對應於一連結字Œ(其Unicode係為0x0152)。
由以上的舉例可知,當一文件中包含一標準字母(character)時,根據該標準字母的語言的規則,對應於該標準字母,開啟該文件時可能需要顯示:(a)該標準字母本身的一原形型式(original form),如標準字母A的A本身;(b)該標準字母的一個或複數個變形型式(variation form),如標準字母A的變形、、、Å、及等;及/或(c)該標準字母與其他至少一標準字母互相組合而成的至少一連結字(ligature),如標準字母E,與標準字母A組合而成之Æ,及與標準字母O組合而成之Œ。
其中,上述之原形型式(如標準字母A之A本身)、至少一變形型式(如標準字母A的變形、、、Å、及等)及/或至少一連結字(如標準字母E與其他標準字母組合而成之Æ與Œ),皆各自有相對應之「顯示字符」(glyph),以圖樣記載其應顯示的圖樣。在一裝置上,若欲以一字型(font)
正確地顯示以上所述的各標準字母相對應之原形型式、變形型式及/或連結字,則需由該字型之字型檔(font file)中所儲存的一個或複數個顯示字符(glyphs)中擷取相對應的顯示字符,並將之顯示於裝置上。
在以上的例子中,所提到的「連結字」(ligature),例如對應於標準字母E之連結字Æ或Œ,其係為一具有相對應之Unicode的字母,例如Æ之Unicode係為0x00C6,而Œ之Unicode係為0x0152。此種連結字(例如Æ與Œ),本身亦可被視為一標準字母。然而,當處理複雜語系如印度文、阿拉伯文與泰文等撰寫之文件時,若根據該語言的規則,需將複數個標準字母再進一步組合成一更長的「連結字」時(通常為一字彙),則需先正確地選擇複數個標準字母的原形型式顯示字符(glyph of original form)及/或變形型式顯示字符(glyph of variation form),再以一「排版引擎」(layout engine),將該些被選出之顯示字符根據該語言的規則執行組合後,據以顯示出連結字。舉例來說,若一印度文文件中,有一個字彙其係為以下六個印度文標準字母之組合:「+++++」(其Unicode分別為0x0939、0x093F、0x0928、0x094D、0x0926與0x0940),則根據印度文規則,該些字母不應各自分開單獨顯示,而應該互相組合後,顯示為「」才正確。在此,「」即為印度文中的一字彙「Hindi」(也就是「印度文」的意思)。在此例中:標準字母(0x0939)可對應到一種顯示字符:;標準字母(0x093F)可對應到八種顯示字符:、、、、、、與;標準字母(0x0928)可對應到四種顯示字符:、、與;標準字母(0x094D)可對應到一種顯示字符:;標準字母(0x0926)可對應到二種顯示字符:與;且
標準字母(0x0940)可對應到七種顯示字符:、、、、、與。
故此六個印度文標準字母總共可對應到1+8+1+4+1+2+7共23種顯示字符。根據印度文規則分析後,需選擇用以組合此六個標準字母所需之顯示字符,並進一步將該六個印度文標準字母根據印度文規則組合後顯示為「」。在此例中,組合此六個標準字母的過程,其實僅用到了對應於該六個標準字母各自之原形型式、變形型式及/或連結字的23種顯示字符中的五種顯示字符(、、、與)。以上是一用以說明複雜語系如印度文進行排版組合之例。
請參考第1至4圖。第1圖係本發明字型檔100之示意圖,第2圖係字型檔100之字碼對應檔(CMAP;Character Code To Glyph Index Mapping Table)101的示意圖,第3圖係字型檔100之顯示字符表(glyph part)102的示意圖,第4圖係字型檔100之特徵表(feature table)103的示意圖。其僅是用以示意,而非用以限制本發明之範圍或表示真正的程式碼。字型檔100除了包含字碼對應檔101、顯示字符表102及特徵表103,另包含其他部份104。
請參考第2圖。第2圖的字碼對應檔(CMAP)101係為一字碼(character code,其可為萬國碼Unicode或者ASCII碼)1011與顯示字符索引(glyph index)1021的對照表,其係用以記載字型檔100中,各字碼1011(其可為萬國碼即Unicode,或ASCII碼)與相對應之顯示字符1022的顯示字符索引(glyph index)1021的相互對照關係。顯示字符表所對應的顯示字符1022係為圖樣,每個顯示字符1022都有一個顯示字符索引1021,其係為顯示字符1022的編號。請參考第2圖,舉例來說,印度文的一標準字母「」
的字碼1011為Unicode 0x0936,且其顯示字符1022「」之相對應顯示字符索引1021是編號57;又舉例來說,印度文的另一標準字母「」的字碼1011為Unicode之0x0928,且其顯示字符1022「」之相對應顯示字符索引1021是編號43。在字碼對應檔(CMAP)101中,僅會記載可對應於字碼1011的顯示字符1022。也就是說,完整的字型檔100內,還有其他顯示字符1022是具有顯示字符索引1021(每個顯示字符1022必定具有一相對應之顯示字符索引1021),但沒有相對應之字碼1011,這些不具有字碼1011的顯示字符1022就不會被記載於字碼對應檔101。舉例來說,上述的是具有字碼(Unicode 0x0928)的顯示字符,就被記載於字碼對應檔101中,但顯示字符的三種變形型式顯示字符、顯示字符與顯示字符因為不具有字碼,就不會被記載於字碼對應檔101中。
請參考第3圖。第3圖是字型檔100中,紀錄所有的顯示字符1022與其相對應的顯示字符索引1021的「顯示字符表」102。由於顯示字符1022數量太多,例如以印度文為例有將近1000個,故第3圖只是示意圖,無法全數列出。因顯示字符1022係為圖樣,故顯示字符表102會佔用字型檔100中最多的儲存空間。無論是否具有字碼1011的顯示字符1022,都具有各自的顯示字符索引1021,且都會被紀錄於顯示字符表102。
請參考第4圖。第4圖是本發明實施例中字型檔100中的特徵表(feature table)103的示意圖。特徵表(feature table)103記載了各標準字母的顯示字符1022對應之的原形型式之顯示字符1022、變形型式之顯示字符1022及/或該標準字母與其他至少一標準字母互相組合而成的連結字之顯示字符1022的組合規則。關於「原形型式」、「變形型式」與「連結字」的定義介紹,請參閱上文,於此不再重述。第4圖僅為本發明實施例中特徵表103之一部分,因為特徵表103中記載之特徵表規則401繁多,故無法全部列舉,
第4圖僅以一條特徵表規則401為例。根據本發明實施例,第4圖之特徵表103係如此解讀:在文件中,當顯示字符「」(印度文之標準字母「Halant」,其顯示字符索引例如為81,且其字碼為Unicode 0x094d)排列在前,且顯示字符「」(印度文之標準字母「fullRa」,其顯示字符索引例如為154,且其字碼為Unicode 0x0930)排列在後,則與兩顯示字符之前後組合係為一組特徵表輸入顯示字符402,且當「」與「」之前並不存在「FullRakar」群組的顯示字符時(於第4圖中,此條件係以特徵表前文條件405紀錄,其紀錄方式可為「EXCEPT<FullRakar>|」,且第4圖之「」係為印度文FullRakar群組的第一個顯示字符,在此,「」係作為代表印度文FullRakar群組示意之用),則「」與「」可進一步組合出一特徵表輸出顯示字符403,也就是顯示字符「」(印度文之連結字「Vattu」,其顯示字符索引例如為89,且其不具有字碼,意即並不具有相對應之Unicode)。上述係以特徵表前文條件405為例,說明組字時,當前文不存在(或存在)某些顯示字符時可滿足的條件,而關於組字時,後文不存在(或存在)某些顯示字符時可滿足的條件,則可設定為特徵表後文條件406。由第4圖所示的本發明實施例之特徵表103,可知特徵表103如何記載各顯示字符本身、及其與其他顯示字符間的組字規則與變化關係。
如上所述,在第1圖的字型檔100中,顯示字符表102會佔用最大的儲存空間。因為顯示字符表102係儲存供使用者閱覽之圖樣,故若可以僅下載為了正確開啟該文件所需要的一或多個顯示字符至該裝置,而非將整套顯示字符完整地下載,則可大幅度減少下載時間,以使開啟文件的速度更快速。但為了找出正確開啟該文件所需的一或多個顯示字符,又需較長的分析時間,故本領域需要一可同時減少分析時間又不必下載整套顯示字符之解決方案。
請參考第5圖。第5圖是本發明一實施例之查詢表(lookup table)105的示意圖。查詢表105是將字型檔100中的字碼對應檔101、顯示字符表102與特徵表103經分析後所得到的對照表,其中記載了字碼與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引的規則對照。本發明實施例中,第5圖所示的查詢表105會儲存於網路字型伺服器中。當使用者端裝置開啟文件時,依照本發明實施例,並不需要於使用者端裝置或於網路字型伺服器,對於該文件中的一或多個字碼1011及其前後文關係執行即時動態相依性分析,也就是說查詢表105中並不具有如特徵表前文條件405或特徵表後文條件406等顯示字符前後排列之前後文條件,對於多個顯示字符同時存在於一文件中之順序孰先孰後亦不需考慮,而只要把文件中出現的字碼1011傳送給顯示字符伺服器,就可以藉由對查詢表105執行一或多次查詢(look up),得到為了正確顯示該些字碼1011所需的(一或多個)顯示字符1022。在查詢表105中,並不需考慮複雜語系中根據前後文將標準字母或顯示字符組合或變形的規則,而僅記載當文件中出現一個或多個標準字母及/或顯示字符時(例如當文件中出現如第5圖之查詢表輸入資料1051所示之各組顯示字符組合),可能會相對應出現的連結字之顯示字符或變形型式之顯示字符(係如第5圖之查詢可能結果1052記載)。舉例來說,若該文件開啟後,偵測到包括以下印度文字母的字碼1011:Unicode之0x0937,0x094d,0x0920及0x0901(其顯示字符索引分別為159、81、139與561;且其對應之顯示字符分別為、、及),則搭配第5圖的查詢表105,其查表步驟係如下:第一次查詢:因為Unicode 0x0901符合查詢規則5005,故得到顯示字符索引85之顯示字符;且因為Unicode 0x0937與0x094d的組合符合查詢規則5008,故可得到顯示字符索引231之顯示字符。目前已經得到顯示字符索引159、81、139、561、85與231的顯示字符。
第二次查詢:因為第一次查詢得到之顯示字符231(顯示字符)
搭配文件中原有的Unicode 0x0920可符合查詢規則5007,故得到顯示字符437(顯示字符)。目前已經得到顯示字符索引159、81、139、561、85、231與437之顯示字符。
第三次查詢:因為第二次查詢已得到顯示字符索引437(顯示字符),根據查詢表105,發現:可符合查詢規則5002,也就是當文件中有顯示字符索引437(顯示字符)與顯示字符索引561(顯示字符)時,就可能會隨之出現顯示字符索引615之顯示字符;以及可符合查詢規則5006,也就是當文件中有顯示字符索引437之顯示字符與顯示字符索引81之顯示字符時,就可能會隨之出現顯示字符索引659之顯示字符。目前已經得到顯示字符索引561、159、81、85、139、231、437、615與659的顯示字符。
第四次查詢:根據查詢表105,查無符合結果,結束。
根據上述的例子,當一印度文文件內出現字碼為Unicode之0x0937,0x094d,0x0920及0x0901之標準字母時,最後會得到顯示字符索引561、159、81、85、139、231、437、615與659的顯示字符,即:,,,,,,,與,這些最後得到的顯示字符,即可傳送到使用者端裝置(例如為智慧手機或筆記型電腦),以供使用者端裝置之排版引擎分析該文件與顯示該文件所用。
第5圖所示之查詢表105僅為一很小的查詢表(只包括查詢規則5001~查詢規則5008,八個查詢規則),其係用以示範說明本發明實施例中的查詢表之應用原理,但本發明實施例中的查詢表,於實際應用時應會包括更多查詢規則。與先前技術相比,本發明實施例因為已建置查詢表105於網路字型伺服器內,故使用者端裝置打開文件後,只要直接把該文件中所有的字碼傳送到網路字型伺服器,就可以依照上述所示的查詢方法,不斷重複進
行查詢,再把查詢後新得到的顯示字符亦作為下次查詢時的輸入資料,根據查詢表再次執行查詢,直到查無符合查詢規則的查詢表可能結果,方可結束查詢,此時所累積得到的一組(一或多個)顯示字符,係為整套顯示字符的子集合(稱為顯示字符子集合),其包含用以顯示該文件所需之顯示字符。換句話說,根據本發明實施例,網路字型伺服器會依據查詢表與顯示字符子集合,進行查詢,並將查詢得到的一或多個顯示字符加入該顯示字符子集合,以更新顯示字符子集合。結束查詢後的顯示字符子集合即可傳送到使用者端裝置供使用者端裝置的排版引擎進行組字後顯示所用。
先前技術中,網路字型伺服器必須依照語言規則(如印度文規則)利用排版引擎分析文件中多個標準字母的前後文排列,再產生用以顯示該些標準字母必須用到的顯示字符(含原形形式、變形形式及連結字),因為排版引擎進行的分析較為精確,故產生之顯示字符個數較少,但分析時間也較久,此外,待網路字型伺服器以排版引擎分析得到所需的若干顯示字符並傳送到使用者端裝置後,為了正確顯示該文件中的該些標準字母,使用者端裝置之排版引擎(例如內建於智慧手機之瀏覽器內)仍必須再根據語言規則將該些顯示字符予以分析後進行變形或組合,若網路字型伺服之排版引擎與使用者端裝置之排版引擎的演算法或版本相異,就有可能造成最後於使用者端裝置之顯示結果不正確,甚至出現空白或亂碼。然而,本發明實施例之查詢表105係為研發人員將字型檔100中的字碼對應檔101、顯示字符表102與特徵表103,依照複雜語系之語言規則,以軟體預先分析產生,並可由該複雜語系語言的專家以人工審核校正後定版。因此簡言之,採用本發明實施例之查詢表105的內容相當於已將複雜語系語言規則之前後文分析,預先分析完畢,因此使用查詢表105進行查詢時並不需要考慮標準字母的前後文關係作動態分析,而只需考慮當一或多個顯示字符及/或標準字母(每個標準字母都有對應的至少一顯示字符,但有些顯示字符並不具有字碼)同時出現於同一文件時,
有可能會隨之對應出現的顯示字符。因此,採用本發明實施例之查詢表105查詢得到的顯示字符數量會先前技術略多,但分析速度會加快,也可避免網路字型伺服器與使用者端裝置之排版引擎不一致產生的錯誤顯示。
在本發明的另一實施例中,又以上述六個印度文標準字母「+++++」組合後顯示之「」(即印度文中的「Hindi」這個字彙)為例,當使用者端裝置的使用者端裝置開啟包含印度文標準字母「、、、、與」之組合的文件時,若此六個印度文標準字母於文件中都被設定為屬於同一字型(此處所謂「字型」可例如為印度文之Ar Hebe Sans Hi Regular字型),則此六個標準字母、、、、與組成的一組字碼(係為Unicode:0x0939、0x093F、0x0928、0x094D、0x0926與0x0940)被傳送至網路字型伺服器,網路字型伺服器根據事先分析所建立的查詢表,於本發明一實施例中,可據以查詢出當此六個標準字母都存在於一文件中時,後續為了組合與變形該些標準字母所需的一組共23個顯示字符:、、、、、、、、、、、、、、、、、、、、、與(其顯示字符索引可例如為0939、1019~1026、1004~1007、094D、999~1000、1029~1035,執行此查詢不需要對該文件作前後文分析,只要網路字型伺服器知道文件中有何字碼即可),並將此23個顯示字符,由字型檔100的顯示字符表102擷取出來,整合成「顯示字符子集合」,再將顯示字符子集合與字型檔中顯示字符表102以外的部份(意即第1圖之字碼對應檔101、特徵表103與其他部份104),再整合成「字型檔子集合」,並將字型檔子集合由網路字型伺服器傳送至使用者端裝置,使用者端裝置的排版引擎即可根據字型檔子集合內包含的顯示字符子集合中的23個顯示字符,根據印度文規則進行顯示字符的變形與組合連結(此時才需要對該文件作前後文分析),以正確顯示文件的該六個印度文標準字母之各種可能的組合。若不採
用本發明揭露之技術,則必須於網路字型伺服器先根據印度文規則,以處理器對該六個標準字母之組合與相依性作前後文分析,則可得知為了組合此六個印度文標準字母,僅需下載由5個顯示字符組成的字型檔子集合即可,但由於印度文係為一複雜語系語言,其顯示字符之數量高達約1000個,故下載23個顯示字符相較於下載5個顯示字符,其下載的負荷量僅差異不到2%(計算方式:23/1000-5/1000=0.018=1.8%),若考量下載字型檔子集合時,顯示字符子集合以外的部份亦須隨之下載,則此下載負荷量之差異更小,但本發明實施例揭露的方法卻可大量節省於網路字型伺服器即時動態分析文件之前後文的時間,亦可減少網路字型伺服器與使用者端裝置伺服器相異造成的錯誤顯示。
請參考第6圖,第6圖係為本發明字型處理方法及系統產生字型檔子集合的示意圖,其僅用以說明本發明,而非用以限制本發明的範圍或表示真正的程式碼與系統架構。第6圖中包含使用者端裝置602、文件6001、一個或複數個字碼6002、網路字型伺服器601、字型檔620、查詢表605與字型檔子集合621。由圖中可知,當使用者欲於使用者端裝置602開啟文件6001時,若使用者端裝置602缺乏顯示文件6001包含之一個或複數個字碼6002所屬之字型的字型檔620,也就是說,字碼6002被設定為屬於一字型,然而使用者端裝置602並未安裝相對應於該字型之字型檔620時,則可將文件6001包含的一個或複數個字碼6002傳送至網路字型伺服器601,根據字碼6002與查詢表605,由檔案較大之字型檔620中完整的顯示字符表6201,擷取字碼6002所對應的所有顯示字符,再將擷取出的顯示字符整合為一顯示字符子集合6211,然後再將顯示字符子集合6211與字型檔620中顯示字符表6201以外的部份組合為一字型檔子集合621,最後將字型檔子集合621傳送至使用者端裝置602,以根據字型檔子集合621開啟文件6001。第6圖的實施例中,使用者端裝置602發送字碼6002至網路字型伺服器601前,不會對
文件6001中複數個標準字母之間的組合依照語言規則分析。比對第6圖中本發明實施例之顯示字符表6201與顯示字符子集合6211可知,在顯示字符子集合6211中,對於不被選入顯示字符子集合6211的顯示字符,其顯示字符索引還是保留,但原本儲存顯示字符(其為圖樣)的部份係留為空白,如此即可縮減需下載資料的檔案尺寸。
請搭配第6圖,一併參考第7圖。第7圖是本發明一實施例中字型處理方法的流程圖,其步驟如下:步驟702:於使用者端裝置602開啟文件6001,文件6001具有屬於字型檔620對應之字型的文件內含字碼6002;步驟703:將文件6001中所有屬於該字型的文件內含字碼6002(可能為Unicode碼或ASCII碼,數量為一或多個)以有線或無線方式傳送到網路字型伺服器601之伺服器收發單元680;步驟704:網路字型伺服器601的伺服器收發單元680接收文件內含字碼6002,轉換為相對應於之一組待查詢顯示字符索引6003;步驟705:將該組待查詢顯示字符索引6003利用查詢表605進行查詢;步驟706:是否可進一步找到新出現的顯示字符索引1021;若否,則進入步驟708;若是,進入步驟707;步驟707:將進行查詢後找出之顯示字符索引1021,也就是一組查詢輸出顯示字符的顯示字符索引1021,加入該組待查詢顯示字符索引6003中以更新待查詢顯示字符索引6003之內容,並重複執行步驟705;步驟708:經查詢已經無法再找到更多顯示字符索引1021,將此時的待查詢顯示字符索引6003包含之至少一顯示字符索引1021及其對應的顯示字符1022,整合為一組顯示字符子集合6211,並將顯示字符子集合6211與字型檔620除了顯示字符表6201以外的部份(包括:字碼對應檔、特徵表
與其他部份)整合為字型檔子集合621;步驟709:將字型檔子集合621透過伺服器收發單元680以有線或無線方式傳輸到使用者端裝置602;步驟710:使用者端裝置602的排版引擎分析文件6001之前後文,並使用字型檔子集合621中的顯示字符,顯示文件6001,進入步驟712;步驟712:結束。
上述的文件內含字碼6002,係為文件6001內包含的屬於字型檔620的標準字母之字碼(可例如為Unicode)。若文件6001中包含有屬於多套字型(font)的標準字母之字碼,舉例而言,若文件6001同時包含Prabhki Font與Krishna Italic Font二套字型之印度文標準字母,則根據本發明實施例,可依照上述流程步驟,同時處理二套(或更多亦可)之字型的標準字母之字碼。
將「待查詢顯示字符索引6003」作為查詢表605的輸入後,若可查詢得到一組「查詢輸出顯示字符」之顯示字符索引,則於上述之步驟707中,將該組「查詢輸出顯示字符」之顯示字符索引加入「待查詢顯示字符索引6003」以更新該組「待查詢顯示字符索引6003」,再執行步驟705,將已更新之待查詢顯示字符索引6003,再輸入查詢表605進行查詢,若還是可符合查詢表605之條件而找到更多顯示字符(於步驟706中判斷),則可求得一組「查詢再輸出顯示字符」的顯示字符索引,然後便可再將此組「查詢再輸出顯示字符」的顯示字符索引,加入待查詢顯示字符索引6003,以更新待查詢顯示字符索引6003,並再次輸入查詢表605,進行查詢,根據本發明實施例,可如此不斷進行迴圈式查詢,直到無法滿足查詢表605記載的條件,再也查無新的顯示字符索引為止。
上述之步驟708中,產生的顯示字符子集合6211,其中包含的顯
示字符數量必定小於等於字型檔620之顯示字符表6201包括之顯示字符數量,顯示字符子集合6211中,可如第6圖所示,保留顯示字符索引1021但將儲存顯示字符1022圖樣的空間清除,此外,亦可為顯示字符子集合6211中數量已減少之各個顯示字符1022各自重新編排顯示字符索引1021。舉例而言,若原先於字型檔之顯示字符表中,具有1000個顯示字符,其顯示字符索引分別為0000至0999,且經上述步驟後,得到的顯示字符子集合僅包括顯示字符索引為0025、0028與0555之顯示字符,則在顯示字符子集合中,可如下安排:(a)保留顯示字符索引0000至0999之儲存位置,但除了顯示字符索引為0025、0028與0555的位置以外均不儲存顯示字符;或(b)重新為顯示字符子集合中,該三個顯示字符編排顯示字符索引,因此原先顯示字符索引係為0025、0028與0555之顯示字符,其於顯示字符子集合中之新的顯示字符索引可分別為0000、0001與0002。
綜上所述,本發明相較於先前技術,可同時節省從網路字型伺服器下載字型檔子集合的傳送時間,可避免產生字型檔子集合之前即時動態分析文件中各標準字母之前後文相依性的處理器運算量,還可以減少使用者端裝置與網路字型伺服器之排版引擎因演算法或版本不同造成之顯示錯誤。對於複雜語系文字如:印度文(Hindi)、泰文(Thai)、孟加拉文(Bengali)與泰米爾文(Tamil)等文字的廣大使用者而言,本發明揭露之字型處理方法與系統實可大幅增進於該些文字的使用者於手機或電腦上閱讀文件的正確與便利程度。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
602‧‧‧使用者端裝置
6001‧‧‧文件
6002‧‧‧文件內含字碼
6003‧‧‧待查詢顯示字符索引
601‧‧‧網路字型伺服器
620‧‧‧字型檔
6201‧‧‧顯示字符表
6211‧‧‧顯示字符子集合
605‧‧‧查詢表
621‧‧‧字型檔子集合
680‧‧‧伺服器收發單元
1021‧‧‧顯示字符索引
1022‧‧‧顯示字符
Claims (10)
- 一種字型處理方法,包含:以一網路字型伺服器儲存一字型檔,該字型檔存有屬於一字型的複數個顯示字符;分析該字型檔包含之一特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生一查詢表;將一文件中所有標準字母之字碼由一使用者端裝置傳送至該網路字型伺服器;該網路字型伺服器接收後依據該查詢表,比對該文件中所包含之標準字母的字碼進行查詢,並由該字型檔中擷取所需字型之標準字母的字碼所對應之所有的待查詢顯示字符,及所需字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合;及該網路字型伺服器將該顯示字符子集合傳送至該使用者端裝置。
- 一種字型處理方法,包含:以一網路字型伺服器儲存一字型檔,該字型檔存有屬於一字型的複數個顯示字符;分析該字型檔包含之一特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生一查詢表;將一文件中所有標準字母之字碼由一使用者端裝置傳送至該網路字型伺服器; 該網路字型伺服器依據該查詢表,由該字型檔中擷取該文件中所有屬於該字型之標準字母的字碼所對應之所有的待查詢顯示字符,及所有屬於該字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合;將該字型檔中顯示字符以外的部份與該顯示字符子集合組合,以形成一字型檔子集合;及該網路字型伺服器將該字型檔子集合傳送至該使用者端裝置。
- 如請求項1或2所述之方法,其中將該文件中所有標準字母之字碼由該使用者端裝置傳送至該網路字型伺服器係於產生該查詢表之後執行。
- 如請求項1或2所述之方法,其中該查詢表包含至少一對照關係,該對照關係係為一組輸入資料與一組輸出資料的對照關係,該組輸入資料包含至少一顯示字符及/或至少一字碼,該輸出資料包含至少一顯示字符。
- 如請求項1或2所述之方法,更包括該網路字型伺服器依據該查詢表再次進行迴圈式查詢以更新該顯示字符子集合,其係以該字型檔中擷取之所有的待查詢顯示字符及所有的查詢輸出顯示字符依據該查詢表再次進行迴圈式查詢所對應得到之所有的查詢再輸出顯示字符,更新該顯示字符子集合;該字型檔子集合係藉由將該字型檔中顯示字符以外的部份與該更新後之顯示字符子集合組合以產生。
- 一種字型處理系統,包含:一使用者端裝置,包含一文件;及一網路字型伺服器,包含:一字型檔,存有屬於一字型的複數個顯示字符,該字型檔包含: 一特徵表;及一查詢表,其產生係藉由分析該特徵表,將該字型檔包含的每一標準字母對應之字碼,與對應於該標準字母的原形型式、變形型式及/或連結字之顯示字符的顯示字符索引,互相對照後經整理而產生該查詢表;其中該使用者端裝置將該文件中所有標準字母之字碼傳送至該網路字型伺服器;該網路字型伺服器依據該查詢表,由該字型檔中擷取該文件中所有屬於該字型之標準字母的字碼所對應之所有的待查詢顯示字符,及所有屬於該字型之標準字母的字碼之組合所對應之所有的查詢輸出顯示字符,以形成一顯示字符子集合,並將該字型檔中顯示字符以外的部份與該顯示字符子集合組合,以形成一字型檔子集合,再將該字型檔子集合傳送至該使用者端裝置。
- 如請求項6所述之方法,其中該查詢表係藉由分析一語言規則以產生。
- 如請求項6所述之方法,其中該查詢表係部分藉由以人工審核校對之方式產生。
- 如請求項6所述之系統,其中該使用者端裝置係為一手機、一筆記型電腦、一桌上型電腦、一工業電腦、一電視、一穿戴裝置、一智慧型家電、一車用裝置或一可上網之顯示裝置。
- 如請求項6所述之方法,更包括該網路字型伺服器依據該查詢表再次進行迴圈式查詢以更新該顯示字符子集合,其係以該字型檔中擷取之所有的待查詢顯示字符及所有的查詢輸出顯示字符依據該查詢表再次進行迴圈式查詢所對應得到之所有的查詢再輸出顯示字符,更新該顯示字符子 集合;該字型檔子集合係藉由將該字型檔中顯示字符以外的部份與該更新後之顯示字符子集合組合以產生。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102025A TW201530322A (zh) | 2014-01-20 | 2014-01-20 | 字型處理方法及字型處理系統 |
CN201410085233.6A CN104794142A (zh) | 2014-01-20 | 2014-03-10 | 字型处理方法及字型处理系统 |
US14/304,978 US20150205765A1 (en) | 2014-01-20 | 2014-06-15 | Font process method and font process system |
GB1410849.2A GB2522286A (en) | 2014-01-20 | 2014-06-18 | Font process method and font process system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103102025A TW201530322A (zh) | 2014-01-20 | 2014-01-20 | 字型處理方法及字型處理系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201530322A true TW201530322A (zh) | 2015-08-01 |
Family
ID=51266777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103102025A TW201530322A (zh) | 2014-01-20 | 2014-01-20 | 字型處理方法及字型處理系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150205765A1 (zh) |
CN (1) | CN104794142A (zh) |
GB (1) | GB2522286A (zh) |
TW (1) | TW201530322A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170091155A1 (en) * | 2015-09-30 | 2017-03-30 | Microsoft Technology Licensing, Llc. | Font typeface preview |
US10169670B2 (en) | 2015-11-30 | 2019-01-01 | International Business Machines Corporation | Stroke extraction in free space |
CN105975448A (zh) * | 2016-05-04 | 2016-09-28 | 北京华熙动博网络科技有限公司 | 一种字体加载方法及装置 |
AU2016266083A1 (en) * | 2016-12-02 | 2018-06-21 | Canon Kabushiki Kaisha | Method, system and apparatus for displaying an electronic document |
CN113536005B (zh) * | 2021-09-17 | 2021-12-24 | 网娱互动科技(北京)股份有限公司 | 一种相似图片或字体查找方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526477A (en) * | 1994-01-04 | 1996-06-11 | Digital Equipment Corporation | System and method for generating glyphs of unknown characters |
US7064757B1 (en) * | 1999-05-07 | 2006-06-20 | Apple Computer, Inc. | Automatic synthesis of font tables for character layout |
US7155672B1 (en) * | 2000-05-23 | 2006-12-26 | Spyglass, Inc. | Method and system for dynamic font subsetting |
US7580038B2 (en) * | 2003-09-30 | 2009-08-25 | Microsoft Corporation | System and method of caching glyphs for display by a remote terminal |
EP1736895A1 (en) * | 2005-06-21 | 2006-12-27 | PDFlib GmbH | Method of determining Unicode values corresponding to the text in digital documents |
US20080079730A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Character-level font linking |
US8769405B2 (en) * | 2009-10-16 | 2014-07-01 | Celartem, Inc. | Reduced glyph font files |
US20110115797A1 (en) * | 2009-11-19 | 2011-05-19 | Kaplan Gregory A | Dynamic Streaming of Font Subsets |
US8643652B2 (en) * | 2010-08-31 | 2014-02-04 | Adobe Systems Incorporated | Dynamic augmentation of extensible font subsets |
US8860732B2 (en) * | 2010-09-27 | 2014-10-14 | Adobe Systems Incorporated | System and method for robust physically-plausible character animation |
US20120079374A1 (en) * | 2010-09-29 | 2012-03-29 | Apple Inc. | Rendering web page text in a non-native font |
EP2763050A1 (en) * | 2013-01-31 | 2014-08-06 | Google, Inc. | Serving font glyphs |
-
2014
- 2014-01-20 TW TW103102025A patent/TW201530322A/zh unknown
- 2014-03-10 CN CN201410085233.6A patent/CN104794142A/zh active Pending
- 2014-06-15 US US14/304,978 patent/US20150205765A1/en not_active Abandoned
- 2014-06-18 GB GB1410849.2A patent/GB2522286A/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20150205765A1 (en) | 2015-07-23 |
CN104794142A (zh) | 2015-07-22 |
GB2522286A (en) | 2015-07-22 |
GB201410849D0 (en) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639631B2 (en) | Converting XML to JSON with configurable output | |
US7623710B2 (en) | Document content and structure conversion | |
TWI477985B (zh) | 用於在網頁上顯示文件的字型處理 | |
US8542235B2 (en) | System and method for displaying complex scripts with a cloud computing architecture | |
RU2316814C2 (ru) | Способ выбора шрифта | |
CN104185845B (zh) | 用于提供网页的二进制表示的系统和方法 | |
US9639767B2 (en) | Context-aware handwriting recognition for application input fields | |
US11030389B2 (en) | Acquisition of a font portion using a compression mechanism | |
TW201530322A (zh) | 字型處理方法及字型處理系統 | |
US11216658B2 (en) | Utilizing glyph-based machine learning models to generate matching fonts | |
JP7493937B2 (ja) | 文書における見出しのシーケンスの識別方法、プログラム及びシステム | |
EP2845147B1 (en) | Re-digitization and error correction of electronic documents | |
US20180260389A1 (en) | Electronic document segmentation and relation discovery between elements for natural language processing | |
KR102531507B1 (ko) | 정보 출력 방법, 장치, 기기 및 저장 매체 | |
CN109923538B (zh) | 文本检索装置、文本检索方法以及计算机程序 | |
US9940305B2 (en) | Preparation of textual content | |
CN112035408B (zh) | 文本处理方法、装置、电子设备及存储介质 | |
US9740667B2 (en) | Method and system for generating portable electronic documents | |
CN102169478A (zh) | 用于呈现多语言文本的装置和方法 | |
JP2017091024A (ja) | 入力支援装置 | |
US20130311489A1 (en) | Systems and Methods for Extracting Names From Documents | |
US10762279B2 (en) | Method and system for augmenting text in a document | |
KR20110012890A (ko) | 소형 이동 단말기를 위한 웹 기반 텍스트 요약 방법 및 시스템 | |
JP2017068307A (ja) | 情報検索装置及びその制御方法、情報検索用プログラム | |
CA2862955C (en) | Kernel based string descriptors |