TWI448909B - 具有圖形影像之字形檔案 - Google Patents
具有圖形影像之字形檔案 Download PDFInfo
- Publication number
- TWI448909B TWI448909B TW100139636A TW100139636A TWI448909B TW I448909 B TWI448909 B TW I448909B TW 100139636 A TW100139636 A TW 100139636A TW 100139636 A TW100139636 A TW 100139636A TW I448909 B TWI448909 B TW I448909B
- Authority
- TW
- Taiwan
- Prior art keywords
- character
- glyph
- graphic image
- image data
- characters
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- 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
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1827—Accessing generic data, e.g. fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Controls And Circuits For Display Device (AREA)
- Display Devices Of Pinball Game Machines (AREA)
- User Interface Of Digital Computer (AREA)
Description
本發明係關於字形呈現及列印。
隨著許多文書處理應用程式及數位出版應用程式變得更加廣泛地被使用,已開發出許多新字形以向使用者提供在建立或編寫文件(例如,書籍、幻燈片、傳單、產品文宣(product literature)、網頁、菜單,等)方面的更多選項及靈活性。按照慣例,字形包括定義字形中之字元的外觀之字符(glyph)之一集合。此外,可在字形之一或多個字形表中提供定義字符之各種特性的參數。此等特性可包括字符之尺寸、間距及色彩。為了恰當地定義此等特性,字形可包括以複雜方式組織的極大量之參數。舉例而言,一種習知的true type(理想類型)字形可具有一字形檔案,該字形檔案具有含有用以定義該true type字形之字符之各種參數的三十個或三十個以上之表。由於組織及使用此等參數之複雜性,習知色彩之true type字形的字符限於單色。換言之,習知色彩之true type字形的每一字符僅呈單一色彩。
一些實施例在一環境中包括一或多個應用程式設計介面(API),其中呼叫程式碼經由該一或多個介面而與被呼叫之其他程式碼互動。可經由該等API在呼叫程式與被呼叫程式碼之間傳送可進一步包括各種參數的各種函式呼叫、訊息或其他類型之調用。另外,API可為呼叫程式碼提供使用在API中定義且實施於被呼叫程式碼中之資料類型或類別之能力。
至少某些實施例包括呼叫軟體組件經由一API與一被呼叫軟體組件互動之一環境。用於在此環境中經由一API進行操作之方法包括經由該API傳送一或多個函式呼叫、訊息、其他類型之調用或參數。
本發明之一些實施例包括一種用於支援具有多色字符之字形的方法。在一些實施例中,針對包括一或多個多色字符之字形建立一字形檔案。該字形檔案包括每一多色字符之特性的一集合,諸如,一各別字符之大小及輪廓。該字形檔案進一步包括針對每一字符之圖形影像資料。該圖形影像資料可呈任何圖形格式,諸如,可攜式網路圖形(PNG)、圖形互換格式(GIF)、標籤影像檔案格式(TIFF)、聯合照相專家群格式(JPEG),等。因此,該字形檔案亦可稱作基於圖形影像之字形檔案。由於該圖形影像資料可含有各別字符之有色影像(其可再現(例如,呈現或列印)為一圖形影像),且因此不需要在字形檔案中包括用以指定字符之(若干)色彩的複雜編碼或參數。在一些實施例中,字形檔案進一步包括對每一字符之參照(reference)(例如,指標)以參照至對應圖形影像檔案之定位。該字形檔案可儲存於可由排版引擎及字形剖析器存取之電腦可讀儲存媒體上。排版引擎(layout engine)及字形剖析器可存取字形檔案以擷取字形之一或多個字符之資訊,以便呈現及/或列印該等字符。
本發明之一些實施例包括一種用於列印多色字符之方法。在一實施例中,排版引擎將一指令發送至圖形引擎以繪製字形之字符。作為回應,圖形引擎將一請求發送至字形剖析器以請求關於字符之一些預定特性(通常稱作字符度量)之資訊。字形剖析器存取可儲存於獨立字形檔案中或內嵌於其他檔案中之字形以擷取該資訊,且將該資訊傳回至圖形引擎。在一些實施例中,字符度量包括字符之原點(亦即,相對於繪製位置之定位)、前移(advance)(亦即,在繪製字符之後移動之距離),及周框方塊(亦即,由字符佔用之矩形區域)。基於字符度量,圖形引擎在列印媒體上留出一區域,保持該區域空白。排版引擎進一步向字形剖析器請求字符之色彩點陣圖。作為回應,字形剖析器自字形擷取所請求之色彩點陣圖,且將其發送至排版引擎。使用色彩點陣圖中之參照,排版引擎自字形擷取字符之一些圖形影像資料。接著,排版引擎指示圖形引擎根據該圖形影像資料在該空白區域中繪製字符之影像,因此,有效地將字符列印於空白區域之定位處。
亦描述執行前述方法中之一或多者的各種器件及當藉由處理系統執行時使得該處理系統執行此等方法之機器可讀媒體。
亦描述其他方法、器件及機器可讀媒體。
作為實例參看隨附圖式描述本發明。
將參考以下所論述之細節來描述本發明之各種實施例及態樣,且隨附圖式將說明該等各種實施例。以下描述及圖式說明本發明,且不應解釋為限制本發明。描述眾多特定細節以提供對本發明之各種實施例的透徹理解。然而,在某些情形下,不描述熟知或習知細節以便提供對本發明之實施例的簡明論述。
根據包括對儲存於電腦記憶體內之資料之操作的演算法來呈現以下詳細描述之一些部分。演算法大體上為導致所要結果之自相一致之操作序列。該等操作通常需要或涉及物理量之物理操縱。通常(但未必),此等量採取能夠儲存、傳送、組合、比較及以其他方式操縱之電信號或磁信號之形式。已證明將此等信號稱作位元、值、元素、符號、字元、項、數字或以上各者之類似者時常(主要為了普通用途)為便利的。
然而,應記住,所有此等及類似術語應與適當物理量相關聯,且僅為應用於此等量之便利標記。如自以下論述顯而易見,除非另外明確陳述,否則應瞭解,貫穿該描述,利用諸如「處理」或「計算(computing)」或「推算(calculating)」或「判定」或「顯示」或以上各者之類似者之術語的論述可指明一資料處理系統或類似電子器件之動作及處理,該資料處理系統或類似電子器件操縱被表示為系統暫存器及記憶體內之物理(電子)量的資料且將該資料變換為類似地表示為系統記憶體或暫存器或其他此種資訊儲存器、傳輸或顯示器件內之物理量的其他資料。
本發明可係關於用於執行本文中所描述之操作中之一或多者的裝置。此裝置可經特別建構以用於所需目的,或此裝置可包含一通用電腦,該通用電腦藉由儲存於該電腦中之電腦程式而選擇性地啟動或重組態。此電腦程式可儲存於一機器(例如,電腦)可讀儲存媒體中,諸如(但不限於)包括軟性磁碟、光碟、CD-ROM及磁光碟之任何類型的磁碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式化ROM(EPROM)、電可抹除可程式化ROM(EEPROM)、快閃記憶體、磁性或光學卡或適合於儲存電子指令之任何類型的媒體,且每一者耦合至一匯流排。
機器可讀媒體包括用於以可由機器(例如,電腦)讀取之形式儲存或傳輸資訊的任何機構。舉例而言,機器使用諸如機器可讀儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體器件;相變記憶體)及機器可讀通信媒體之機器可讀媒體儲存及傳達(在內部傳達及經由網路與其他器件通信)程式碼及資料。
本發明之至少某些實施例在搜尋軟體與軟體應用程式互動之環境中包括一或多個應用程式設計介面。經由該等應用程式設計介面在搜尋軟體與軟體應用程式之間傳送各種函式呼叫或訊息。傳送函式呼叫或訊息可包括發佈、起始、調用或接收該等函式呼叫或訊息。實例應用程式設計介面傳送函式呼叫以針對具有顯示區域之器件實施各種操作(例如,搜尋、網路連接、服務發現,等)。API亦可實施具有參數、變數或指標之函式。API可接收如所揭示之參數或參數之其他組合。除了所揭示之API以外,其他API可個別地或組合地執行與所揭示之API類似的功能性。
顯示區域可呈視窗之形式。視窗為可具有或可不具有邊界之顯示區域,且可為顯示器之整個顯示區域或區。在一些實施例中,顯示區域可具有至少一視窗及/或至少一視圖(例如,網頁、文字或影像內容)。可藉由顯示區域、視窗及/或視圖來實施所揭示之方法、系統及裝置。
在一些實施例中,一平台提供各種編輯及網路連接操作。該平台包括硬體組件及一作業系統。該等硬體組件可包括耦合至一輸入面板之處理單元及耦合至該處理器之記憶體。該作業系統包括儲存於該記憶體中且經組態以由該處理單元執行之一或多個程式。一或多個程式包括用於經由應用程式設計介面(API)傳送函式呼叫或訊息以便執行各種編輯及網路連接操作的各種指令。
在一些實施例中,可使用一或多個API。API為由程式碼組件或硬體組件(在下文中稱為「API實施組件」)實施的介面,其允許不同程式碼組件或硬體組件(在下文中稱為「API呼叫組件」)存取並使用由API實施組件所提供之一或多個函式、方法、程序、資料結構、類別及/或其他服務。API可定義在API呼叫組件與API實施組件之間傳遞的一或多個參數。
API允許API呼叫組件之開發者(其可為第三方開發者)利用由API實施組件提供之指定特徵。可存在一個API呼叫組件,或可存在一個以上此種組件。API可為電腦系統或程式庫提供以便支援來自應用程式之對服務之請求的原始程式碼介面。作業系統(OS)可具有多個API以允許在OS上執行之應用程式呼叫彼等API中之一或多者,且服務(諸如,程式庫)可具有多個API以允許使用該服務之應用程式呼叫彼等API中之一或多者。可在建置應用程式時根據可被解譯或編譯之程式設計語言來指定API。
在一些實施例中,API實施組件可提供一個以上API,每一API提供由API實施組件實施之功能性的不同態樣之不同視圖或具備存取由API實施組件實施之功能性的不同態樣之不同態樣。舉例而言,API實施組件之一個API可提供功能之第一集合且可曝露於第三方開發者,且API實施組件之另一API可被隱藏(未曝露),且提供功能之第一集合之一子集且亦提供功能之另一集合(諸如,不在功能之第一集合中之測試或除錯功能)。在其他實施例中,API實施組件自身可經由基礎API呼叫一或多個其他組件,且因此既為API呼叫組件亦為API實施組件。
API定義API呼叫組件在存取及使用API實施組件之指定特徵時使用之語言及參數。舉例而言,API呼叫組件經由API所曝露之一或多個API呼叫或調用(例如,由函式或方法呼叫來體現)來存取API實施組件之指定特徵,且經由API呼叫或調用使用參數來傳遞資料及控制資訊。API實施組件可回應於來自API呼叫組件之API呼叫而經由API傳回一值。雖然API定義API呼叫之語法及結果(例如,如何調用API呼叫及API呼叫進行何操作),但API可不顯露API呼叫如何完成API呼叫所指定之功能。各種API呼叫係經由該一或多個應用程式設計介面而在呼叫(API呼叫組件)與API實施組件之間傳送。傳送API呼叫可包括發佈、起始、調用、呼叫、接收、傳回或回應函式呼叫或訊息;換言之,傳送可描述由API呼叫組件抑或API實施組件中之任一者進行之動作。API之函式呼叫或其他調用可經由參數清單或其他結構來發送或接收一或多個參數。參數可為常數、密鑰、資料結構、物件、物件類別、變數、資料類型、指標、陣列、函式或方法之清單或指標,或用以參照至待經由API傳遞之資料或其他項目之另一方式。
此外,資料類型或類別可由API提供且由API實施組件實施。因此,API呼叫組件可藉由使用API中所提供之定義來宣告變數、使用此等類型或類別之定值之指標、使用或具現化此等類型或類別之定值。
大體而言,API可用以存取由API實施組件提供之服務或資料,或起始由API實施組件提供之操作或計算之執行。作為實例,API實施組件及API呼叫組件可各自為作業系統、程式庫、器件驅動程式、API、應用程式或其他模組中之任一者(應理解,API實施組件及API呼叫組件可為彼此相同或不同類型之模組)。在一些情況下,API實施組件可至少部分地以韌體、微碼或其他硬體邏輯來體現。在一些實施例中,API可允許用戶端程式使用由軟體開發套件(SDK)程式庫提供之服務。在其他實施例中,應用程式或其他用戶端程式可使用由應用程式框架(Application Framework)提供之API。在此等實施例中,應用程式或用戶端程式可併有對由SDK提供及由API提供之函式或方法之呼叫,或使用定義於SDK中且由API提供之資料類型或物件。在此等實施例中,應用程式框架可提供程式之主要事件迴圈,該程式對由該框架定義之各種事件作出回應。API允許應用程式使用應用程式框架來指定事件及對事件之回應。在一些實施中,API呼叫可向應用程式報告硬體器件之能力或狀態,包括與諸如輸入能力及狀態、輸出能力及狀態、處理能力、功率狀態、儲存容量及狀態、通信能力等之態樣相關的能力或狀態,且API可部分地由韌體、微碼或部分地在硬體組件上執行之其他低階邏輯實施。
API呼叫組件可為本端組件(亦即,在與API實施組件相同的資料處理系統上)或經由API經由網路與API實施組件通信之遠端組件(亦即,在不同於API實施組件的資料處理系統上)。應理解,API實施組件亦可充當API呼叫組件(亦即,該組件可進行對由不同API實施組件曝露之API之API呼叫),且API呼叫組件亦可藉由實施曝露於不同API呼叫組件之API來充當API實施組件。
API可允許以不同程式設計語言撰寫之多個API呼叫組件與API實施組件通信(因此,API可包括用於在API實施組件與API呼叫組件之間轉譯呼叫及傳回項的特徵);然而,可根據特定程式設計語言實施API。在一實施例中,API呼叫組件可呼叫來自不同提供者之API,諸如,來自OS提供者之API之一集合及來自外掛程式提供者之API之另一集合及來自另一提供者(例如,軟體程式庫之提供者)或API之另一集合之建立者的API之另一集合。
圖1為說明可在本發明之一些實施例中使用之例示性API架構的方塊圖。如圖1中所展示,API架構100包括實施API120之API實施組件110(例如,作業系統、程式庫、器件驅動程式、API、應用程式、軟體或其他模組)。APT 120指定API實施組件之可供API呼叫組件130使用之一或多個函式、方法、類別、物件、協定、資料結構、格式及/或其他特徵。API 120可指定至少一呼叫慣例,該至少一呼叫慣例指定API實施組件中之函式如何自API呼叫組件接收參數及該函式如何將結果傳回至API呼叫組件。API呼叫組件130(例如,作業系統、程式庫、器件驅動程式、API、應用程式、軟體或其他模組)經由APT 120進行API呼叫,以存取及使用API實施組件110之由API 120所指定之特徵。API實施組件110可回應於一API呼叫而經由API 120將一值傳回至API呼叫組件130。
將瞭解,API實施組件110可包括未經由API 120指定且API呼叫組件130不可用之額外函式、方法、類別、資料結構及/或其他特徵。應理解,API呼叫組件130可在與API實施組件110相同之系統上,或可遠端地定位且使用API 120經由網路存取API實施組件110。雖然圖1說明與API 120互動之單一API呼叫組件130,但應理解,可能以不同於API呼叫組件130之語言(或相同語言)撰寫之其他API呼叫組件可使用API 120。
API實施組件110、API 120及API呼叫組件130可儲存於一機器可讀媒體中,該機器可讀媒體包括用於儲存呈可由機器(例如,電腦或其他資料處理系統)讀取之形式之資訊的任何機構。舉例而言,機器可讀媒體包括磁碟、光碟、隨機存取記憶體、唯讀記憶體、快閃記憶體器件等。
在圖2(「軟體堆疊」)(一例示性實施例)中,應用程式可使用若干服務API進行對服務1或服務2之呼叫,且使用若干OS API進行對作業系統(OS)之呼叫。服務A及服務B可使用若干OS API進行對OS之呼叫。
請注意,服務2具有兩個API,其中一者(服務2 API 1)接收來自應用程式1之呼叫且將值傳回至應用程式1,且另一者(服務2 API 2)接收來自應用程式2之服務且將值傳回至應用程式2。服務1(其可為(例如)軟體程式庫)進行對OS API 1之呼叫且接收來自OS API 1之傳回值,且服務2(其可為(例如)軟體程式庫)進行對OS API 1及OS API 2兩者之呼叫且接收來自OS API 1及OS API 2兩者之傳回值。應用程式2進行對OS API 2之呼叫且接收來自OS API 2之傳回值。
圖3A至圖3D說明用以支援包括多色字符之字形之列印的方法之一實施例。在一些實施例中,該方法係藉由彼此操作之排版引擎310、圖形引擎320及字形剖析器330執行。排版引擎310、圖形引擎320、字形剖析器330可藉由軟體、硬體、韌體或以上各者中之任一者的一組合來實施。另外,排版引擎310、圖形引擎320、字形剖析器330可在諸如個人電腦、膝上型電腦、個人數位助理(PDA)、智慧型電話等之一或多個計算器件上執行。以下詳細論述圖7中所展示之一例示性計算器件。
參看圖3A,排版引擎310以將一指令(1)發送至圖形引擎320以在一列印媒體(其可包括實體列印媒體(例如,紙、幻燈片、紡織品,等))或數位列印媒體(例如,在一顯示器件(例如,電腦監視器、觸控螢幕,等)上呈現之可攜式文件格式(PDF)檔案)上之一預定定位處繪製字形之字符開始。寬泛而言,字形之字符為字形中之一書寫元素。在一些實施例中,該字符為一多色字符。換言之,該字符可具有一種以上色彩。另外,字形之每一字符可具有相同或不同色彩或色彩之組合。在儲存於字形之字形檔案340中的圖形影像資料(例如,PNG資料、JPEG資料,等)中俘獲字符之有色影像。或者,字形檔案340可儲存對字符之圖形影像資料的參照(例如,指標)。在另一實施例中,字形檔案340可儲存字符之圖形影像資料及對該圖形影像資料之參照兩者。字形檔案340大體上包括定義字形之資料之一集合。請注意,字形檔案340可為一獨立檔案或內嵌於一或多個檔案(其可為本端的或遠端的)中之資料的一集合。
在一些實施例中,字形檔案340包括字形之每一字符之特性的一集合,諸如,各別字符之大小及輪廓。在一些實施例中,字形檔案340包括字符度量,該字符度量包括字符之原點(亦即,相對於繪製位置之定位)、前移(亦即,在繪製字符之後移動之距離),及周框方塊(亦即,由字符佔用之矩形區域)。字形檔案340進一步包括含有每一字符之影像之圖形影像資料。圖形影像可為有色影像。該圖形影像資料可呈任何圖形格式,諸如,PNG、GIF、TIFF、JPEG等。字形檔案340可儲存於可由排版引擎310及字形剖析器330存取之電腦可讀儲存媒體中。
回應於來自排版引擎310之指令(1),圖形引擎320將對字符之字符度量之一集合的請求(2)發送至字形剖析器330,該字形剖析器330自字形檔案340擷取字符之字符度量(3)。在一些實施例中,字形檔案340將對應於一空白區域之空向量清單傳回(4)至字形剖析器330。字形剖析器330將該空向量清單(5)轉遞至圖形引擎320,該圖形引擎320使得以可通信方式耦合至圖形引擎320之印表機(例如,噴墨印表機、雷射印表機,等)根據該空向量清單而在列印媒體上之預定定位處留出一空白區域(6)。
參看圖3B,排版引擎310進一步將對字符之色彩點陣圖檔案的請求(7)發送至圖形引擎320,該圖形引擎320又向字形剖析器330請求該色彩點陣圖檔案(8)。字形剖析器330自字形檔案340擷取所請求之色彩點陣圖檔案(9)。字形檔案340將色彩點陣圖檔案發送至字形剖析器330(10),且接著該字形剖析器330將該色彩點陣圖檔案轉遞至圖形引擎320(11),該圖形引擎320將該色彩點陣圖檔案轉遞至排版引擎310(12)。
在一些實施例中,色彩點陣圖檔案含有對字符之某一圖形影像資料之參照。該參照可為一指標,且該圖形影像資料可儲存於字形檔案340中由指標所參照之定位處。圖形影像資料可含有字符之有色影像。另外,圖形影像資料可呈可由排版引擎310及圖形引擎320使用之任何圖形格式,諸如,PNG、GIF、TIFF、JPEG等。
參看圖3C,排版引擎310使用對字符之圖形影像資料之參照以自字形檔案340擷取圖形影像資料(13)。回應於該請求(13),字形檔案340將字符之圖形影像資料傳回至排版引擎310(14)。
參看圖3D,排版引擎310將另一指令(15)發送至圖形引擎320以繪製如在圖形影像資料中所含有的字符之影像。作為回應,圖形引擎320使印表機在先前繪製於列印媒體350上之空白區域中繪製字符之影像(16)。因此,印表機有效地將字符之影像列印於空白區域中。
因為字形之字符係儲存為字形檔案340中之圖形影像,所以圖形引擎320及印表機兩者皆可將其視為圖形影像(替代字符),且因此,印表機可在字符出現於圖形影像資料中時將其準確地列印。換言之,不需要在字形檔案340中包括複雜編碼以便定義字符之(若干)色彩及不透明度,同時排版引擎310、圖形引擎320、字形剖析器330及印表機不必併有顯著程式碼改變以便解譯字符之任何複雜定義、字符在字形檔案340中之(若干)色彩及不透明度。因此,排版引擎310、圖形引擎320及字形剖析器330可容易地將字符(其可為多色的)呈現及/或列印為一圖形影像,以便在不具有對基礎字形處理程式碼之任何顯著修改的情況下支援字形。請注意,以上技術與字符呈現之許多習知技術相容。因此,排版引擎310、圖形引擎320、字形剖析器330及印表機可如以上所論述繪製習知字符與由字符影像資料所定義之多色字符之組合。
圖4說明用以支援具有多色字符之字形之列印的方法之一實施例的流程圖。該方法可藉由包括硬體、軟體、韌體或以上各者中之任一者之組合的處理邏輯執行。舉例而言,在一些實施例中,該方法可由圖3A至圖3D中所說明之排版引擎310來執行。
最初,排版引擎指示圖形引擎在列印媒體上之預定定位處繪製字形之字符(處理區塊410)。作為回應,圖形引擎可自字形之字形檔案獲得字符之字符度量之一集合,且根據該等字符度量留出一空白區域。在一些實施例中,字符度量包括字符之原點(亦即,相對於繪製位置之定位)、前移(亦即,在繪製字符之後移動之距離),及周框方塊(亦即,由字符佔用之矩形區域)。排版引擎進一步向字形剖析器請求字符之色彩點陣圖表(處理區塊412)。作為回應,字形剖析器自字形檔案獲得字符之色彩點陣圖表,且將該色彩點陣圖表發送至排版引擎。排版引擎自字形剖析器接收色彩點陣圖表(處理區塊414)。
在一些實施例中,排版引擎使用色彩點陣圖表中之參照以自字形檔案擷取字符之圖形影像資料(處理區塊416)。最後,排版引擎指示圖形引擎根據所擷取之圖形影像資料在先前所留出之空白區域中繪製字符之影像(處理區塊418)。
在一些替代實施例中,以上所描述之方法可排他性地由圖形引擎(諸如,圖3A至圖3D中之圖形引擎320)替代排版引擎來執行。使用圖形引擎來執行以上方法之一個優點係圖形引擎通常為用以公然繪製字符之許多作業系統之最低層級,且因此圖形引擎可容易地處置色彩點陣圖。
圖5說明字形呈現及列印裝置之一實施例的方塊圖。裝置500可實施於諸如圖7中所展示之計算器件之計算器件上。在一些實施例中,裝置500包括彼此耦合之處理器件510、網路介面515、輸入/輸出介面530及電腦可讀儲存媒體550。裝置500進一步包括在處理器件510上執行之作業系統520。裝置500可經由輸入/輸出介面530通信地耦合至其他器件,諸如,如圖5中所展示之印表機581、輸入器件583及顯示器件585。
在一些實施例中,排版引擎541、圖形引擎543及字形剖析器545在作業系統520上執行。大體而言,排版引擎541、圖形引擎543及字形剖析器545彼此操作以處理、呈現及列印不同字形之文字。排版引擎可量測字符之大小、判定字符之定位,且指示圖形引擎543繪製字符。圖形引擎543可操作以繪製不同字形之文字,以及圖形影像。字形剖析器545可藉由存取字形檔案556來判定待繪製之字符之各種特性,諸如,字符之輪廓、點陣圖及大小。
在一些實施例中,字形檔案556係儲存於一電腦可讀儲存媒體550中,諸如,硬體驅動器、快閃記憶體器件,等。或者,可藉由網路介面515經由網絡存取駐留於遠端之字形檔案。在一些實施例中,針對裝置500所支援之每一字形提供一字形檔案。此外,字形檔案556可為獨立檔案或內嵌於一或多個檔案中。字形檔案556包括關於字形之每一字符之各種特性的資訊及含有字符中之至少一者之影像的圖形影像資料。在圖6中說明字形檔案之一實施例的細節。
使用來自字形檔案556之資訊,圖形引擎543可根據字符之輪廓留出一空白區域(或空白空間)。接著,排版引擎541可自字形檔案556擷取字符之圖形影像資料,且指示圖形引擎543根據空白區域中之圖形影像資料來繪製字符之影像。
在一些實施例中,圖形引擎543經由輸入/輸出介面530可通信地耦合至印表機581。圖形引擎543可將指令發送至印表機581以使該印表機在列印媒體(例如,紙)上之預定定位處留出一空白區域,且接著以與圖形影像資料相同之色彩來在空白區域中繪製字符之影像。換言之,圖形引擎543及印表機581可簡單地將字符視為普通圖形影像。因此,裝置500可在不需要對圖形引擎543及/或印表機581之程式碼之顯著改變的情況下容易地支援具有多色字符之字形。
圖6展示字形檔案之一實施例。字形檔案600與一特定字形相關聯,且含有字形之字符之一集合中之每一者的資訊及圖形影像資料。請注意,在一些實施例中,字形檔案600可包括根據一或多個習知方案定義之額外字符。在一些實施例中,字形600包括針對不同解析度最佳化的字符之多個表示。以下論述一例示性字符之細節以說明將圖形影像資料併入至字形檔案600中之概念。
在一實例中,與字形檔案600相關聯之字形包括字符「G」。「G」610之各種資訊(諸如,「G」之輪廓、「G」之大小,等)係儲存於字形檔案600中。另外,字形檔案600包括對「G」之圖形影像資料630的參照620(例如,指標),在當前實例中,該參照620亦儲存於字形檔案600中。
在一些實施例中,圖形影像資料630含有字符「G」之色彩影像。該字符可具有多種色彩。另外,字符之影像之部分可為不透明的。圖形影像資料630之格式可為PNG、GIF、TIFF、JPEG,等。請注意,字形檔案600中之所有圖形影像資料之格式可為相同的,或在一些實施例中為不同的。
使用字符之資訊610,圖形引擎可在列印媒體650上留出一空白區域(例如,空白方格652),該列印媒體650可包括實體列印媒體(例如,紙、幻燈片,等)及/或數位列印媒體(例如,呈現於諸如電腦監視器或觸控螢幕之顯示器件上的PDF檔案)。接著,圖形引擎可進一步根據圖形影像資料630來在空白方格652中繪製字符之影像658。以上已論述了用以使用此字形檔案600之方法之一些實施例的細節。
在一些實施例中,可藉由以字符之新圖形影像資料來替換字符之現有圖形影像資料中之一或多者來更新字形檔案600。舉例而言,當字符中之一些字符的色彩改變時,可產生字符之新圖形影像資料以替換字形檔案600中所參照的字符之現有圖形影像資料。為了替換字形檔案600中之字符之一些現有圖形影像資料,可簡單地改變對現有圖形影像檔案之參照以參照至字符之新圖形影像資料之定位。
在一些實施例中,字形檔案600作為個別檔案駐留於諸如個人電腦中之記憶體、緊密光碟(CD)、快閃驅動器等之電腦可讀儲存媒體中。或者,字形檔案600可內嵌於一或多個應用程式及/或其他檔案(例如,PDF檔案)中。在一些實施例中,字形檔案600可經由網路(例如,區域網路(LAN)、網際網路,等)而駐留於遠端。
圖7展示根據本發明之實施例之計算器件的另一實例。此器件700可包括諸如微處理器702之處理器件及一記憶體704,該處理器件及該記憶體704經由匯流排706彼此耦合。器件700可視情況包括耦合至微處理器702之快取記憶體708。該器件可視情況包括一儲存器件740,該儲存器件740可為(例如)任何類型之固態或磁性記憶體器件。儲存器件740可為機器可讀媒體或可包括機器可讀媒體。
此器件亦可視情況包括經由匯流排706耦合至其他組件之顯示控制器及顯示器件710。一或多個輸入/輸出控制器712亦可耦合至匯流排706以提供針對輸入/輸出器件714之介面及提供針對用於感測使用者活動之一或多個感測器716的介面。匯流排706可包括經由如此項技術中所熟知之各種橋接器、控制器及/或配接器彼此連接之一或多個匯流排。輸入/輸出器件714可包括小鍵盤或鍵盤或諸如觸控式輸入面板之游標控制器件。此外,輸入/輸出器件714可包括一網路介面,該網路介面係用於有線網路抑或無線網路(例如,RF收發器)。感測器716可為本文中所描述之感測器(例如,包括近接感測器或環境光感測器)中之任一者。在器件700之至少某些實施中,微處理器702可接收來自一或多個感測器716之資料,且可以本文中所描述之方式對彼資料執行分析。
在本發明之某些實施例中,器件700可用以實施本發明中所論述之方法中之至少一些。
在前述說明書中,已參考本發明之特定例示性實施例描述了本發明。將顯然,在不脫離如以下申請專利範圍中闡明的本發明之較廣泛精神及範疇之情況下,可對本發明進行各種修改。因此,應按說明性意義而非限制性意義來看待本說明書及圖式。
100...API(應用程式設計介面)架構
110...API(應用程式設計介面)實施組件
120...API(應用程式設計介面)
130...API(應用程式設計介面)呼叫組件
310...排版引擎
320...圖形引擎
330...字形剖析器
340...字形檔案
350...列印媒體
500...裝置
510...處理器件
515...網路介面
520...作業系統
530...輸入/輸出介面
541...排版引擎
543...圖形引擎
545...字形剖析器
550...電腦可讀儲存媒體
556...字形檔案
581...印表機
583...輸入器件
585...顯示器件
600...字形檔案/字形
610...「G」/資訊
620...參照
630...圖形影像資料
650...列印媒體
652...空白方格
658...影像
700...器件
702...微處理器
704...記憶體
706...匯流排
710...顯示控制器及顯示器件
712...輸入/輸出控制器
714...輸入/輸出器件
716...感測器
740...儲存器件
圖1說明可用於本發明之一些實施例中之例示性API架構的方塊圖;
圖2為可用於本發明之一些實施例中之軟體堆疊的例示性實施例;
圖3A至圖3D說明用以支援具有多色字符之字形之列印的方法之一實施例;
圖4說明用以支援具有多色字符之字形之列印的方法之一實施例的流程圖;
圖5說明字形呈現及列印裝置之一實施例的方塊圖;
圖6展示字形檔案之一實施例;及
圖7展示可用於本發明之一些實施例中之計算器件的一實施例。
310...排版引擎
320...圖形引擎
330...字形剖析器
340...字形檔案
350...列印媒體
Claims (20)
- 一種儲存在由一資料處理系統執行時使得該資料處理系統執行一方法之可執行程式指令的機器可讀儲存媒體,該方法包含:自一字形檔案擷取一字符之字符度量之一集合;使一圖形引擎基於字符度量之該集合而在一列印媒體上留出一空白區域;自該字形檔案擷取該字符之圖形影像資料,其中該圖形影像資料包含全部字符之一圖形影像;及使該圖形引擎根據該圖形影像資料在該列印媒體上之該空白區域中繪製該字符之一影像。
- 如請求項1之電腦可讀儲存媒體,其中該方法進一步包含:自該字形檔案擷取該字符之一色彩點陣圖表,其中該色彩點陣圖表含有對該字符之該圖形影像資料的一參照,且自該字形檔案擷取該字符之該圖形影像資料包含使用該參照來存取該圖形影像資料。
- 如請求項1之機器可讀儲存媒體,其中該字符之該圖形影像之一格式為聯合照相專家群格式(JPEG)。
- 如請求項1之電腦可讀儲存媒體,其中該字符之該圖形影像為一多色圖形影像。
- 一種電腦實施方法,其包含:將一字形之一字形檔案儲存於一電腦可讀儲存媒體中,該字形包含複數個多色字符,且該字形檔案包含與 該複數個多色字符相關聯之複數個空向量清單,該字形檔案進一步包含圖形影像資料,該圖形影像資料含有該複數個多色字符中之每一者之全部之一多色影像;及根據該複數個空向量清單中相對應之一者及儲存在該字形檔案之該圖形影像資料中該等多色影像之相對應一者,將該字形之該複數個多色字符之一者列印於一列印媒體上。
- 如請求項5之方法,其中該圖形影像資料具有不同圖形影像資料格式。
- 如請求項5之方法,其中該字形檔案進一步包含用以參照至該圖形影像資料之定位的複數個參照。
- 如請求項5之方法,其中該字形檔案進一步包含該複數個多色字符中之每一者之複數個表示,其中該複數個表示中之每一者針對一相異解析度而經最佳化。
- 如請求項5之方法,其中列印該字形之該複數個多色字符包含:針對該複數個多色字符中之每一者,根據該複數個空向量清單中對應於一各別多色字符之一空向量清單而在該列印媒體上留出一空白區域。
- 如請求項9之方法,其中列印該字形之該複數個多色字符進一步包含:根據對應於該各別多色字符之該圖形影像資料之至少部分而在該空白區域中繪製該各別多色字符之一影像。
- 如請求項5之方法,其進一步包含: 藉由以多色字符之新圖形影像資料替換該圖形影像資料之至少部分來更新該字形檔案。
- 一種用於在一列印媒體上呈現一字形之一字符之裝置,其包含:一字形剖析器,其用以存取一字形檔案以擷取該字符之複數個字符度量及該字符之一色彩點陣圖表;一排版引擎,其用以自該字形剖析器接收該字符之該色彩點陣圖表,且使用該色彩點陣圖表中之對圖形影像資料之一參照而自該電腦可讀儲存媒體擷取該字符之該圖形影像資料,其中該圖形影像資料包含全部字符之一圖形影像;及一圖形引擎,其用以自該字形剖析器接收該字符之該複數個字符度量,且根據該複數個字符度量在該列印媒體上留出一空白區域。
- 如請求項12之裝置,其中該圖形引擎進一步回應於來自該排版引擎之一指令而根據該圖形影像資料在該列印媒體上之該空白區域中繪製該字符之一影像。
- 如請求項13之裝置,其中該圖形引擎進一步根據該圖形影像資料以複數個預定色彩繪製該字符之該影像。
- 如請求項12之裝置,其中該字符之該複數個字符度量包括該字符之一原點、一前移及一周框方塊。
- 如請求項12之裝置,其進一步包含:用以儲存該字形檔案之一電腦可讀儲存媒體。
- 如請求項12之裝置,其進一步包含: 用以與一網路介接以便在遠端存取該字形檔案之一網路介面。
- 如請求項12之裝置,其進一步包含:用以回應於來自該圖形引擎之指令而將該字符列印於該列印媒體上的一印表機,其中該列印媒體包括一實體列印媒體及一數位列印媒體中之至少一者。
- 一種用於繪製一字形之一字符的一影像之裝置,其包含:用於儲存具有複數個字符之一字形之一字形檔案的構件,該字形檔案包含該複數個字符之每一者之圖形影像資料,其中該圖形影像資料包含全部字符一圖形影像;用於使用該字形檔案判定該複數個字符中之一字符之一大小、一輪廓及一定位的構件;及用於使用該字符之該圖形影像並以該所判定之大小且在該所判定之定位處繪製該字符之該影像的構件。
- 如請求項19之裝置,其中該字符為一多色字符,且其中該圖形影像資料具有不同影像資料格式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/917,288 US8687004B2 (en) | 2010-11-01 | 2010-11-01 | Font file with graphic images |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201234200A TW201234200A (en) | 2012-08-16 |
TWI448909B true TWI448909B (zh) | 2014-08-11 |
Family
ID=44925347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100139636A TWI448909B (zh) | 2010-11-01 | 2011-10-31 | 具有圖形影像之字形檔案 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8687004B2 (zh) |
EP (1) | EP2447885B1 (zh) |
TW (1) | TWI448909B (zh) |
WO (1) | WO2012061178A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063363A (zh) * | 2013-03-19 | 2014-09-24 | 福建福昕软件开发股份有限公司北京分公司 | 在pdf文档中快速插入艺术字的方法 |
US9047511B1 (en) * | 2013-05-15 | 2015-06-02 | Amazon Technologies, Inc. | Describing inter-character spacing in a font file |
US20160147791A1 (en) * | 2013-07-09 | 2016-05-26 | Jung Ha RYU | Method for Providing Sign Image Search Service and Sign Image Search Server Used for Same |
WO2015005664A1 (ko) * | 2013-07-09 | 2015-01-15 | Ryu Jungha | 기호 이미지를 이용한 디자인 설계 장치 및 설계 방법과 기호 이미지가 적용된 설계 대상물 분석 장치 및 분석 방법 |
US9881395B2 (en) | 2015-08-21 | 2018-01-30 | Sap Se | Rendering multi-part glyphs |
CN110209457A (zh) * | 2019-06-04 | 2019-09-06 | 深圳云里物里科技股份有限公司 | 应用于电子价签的字体渲染方法、系统及电子设备和介质 |
CN114625460B (zh) * | 2022-02-24 | 2024-02-06 | 北京百度网讯科技有限公司 | 图文混排方法、装置、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715473A (en) * | 1992-12-29 | 1998-02-03 | Apple Computer, Inc. | Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font |
US6426751B1 (en) * | 1999-04-01 | 2002-07-30 | Adobe Systems Incorporated | Font feature file processing |
TW200540653A (en) * | 2004-02-27 | 2005-12-16 | Research In Motion Ltd | Font data processing system and method |
US20060017733A1 (en) * | 2004-07-26 | 2006-01-26 | Microsoft Corporation | Font representations |
US20060129632A1 (en) * | 2004-12-14 | 2006-06-15 | Blume Leo R | Remote content rendering for mobile viewing |
US20080238927A1 (en) * | 2007-03-26 | 2008-10-02 | Apple Inc. | Non-linear text flow |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6404433B1 (en) | 1994-05-16 | 2002-06-11 | Apple Computer, Inc. | Data-driven layout engine |
EP0770301B1 (en) * | 1995-05-09 | 2001-04-04 | Apple Computer, Inc. | Method and apparatus for compressing image data |
EP0902378A3 (en) | 1997-09-15 | 2003-07-16 | Canon Kabushiki Kaisha | A font architecture and creation tool for producing richer text |
US6332040B1 (en) * | 1997-11-04 | 2001-12-18 | J. Howard Jones | Method and apparatus for sorting and comparing linear configurations |
US6445458B1 (en) | 1998-12-03 | 2002-09-03 | International Business Machines Corporation | Method and system for virtual machine rendering of non-Latin1 Unicode glyphs |
US7064757B1 (en) | 1999-05-07 | 2006-06-20 | Apple Computer, Inc. | Automatic synthesis of font tables for character layout |
US6457651B2 (en) * | 1999-10-01 | 2002-10-01 | Xerox Corporation | Dual mode, dual information, document bar coding and reading system |
US6762770B1 (en) | 1999-10-29 | 2004-07-13 | Apple Computer, Inc. | Method and system for the representation of color and other attributes in bitmap fonts |
US7046848B1 (en) * | 2001-08-22 | 2006-05-16 | Olcott Peter L | Method and system for recognizing machine generated character glyphs and icons in graphic images |
US6731288B2 (en) | 2002-03-01 | 2004-05-04 | 3Dlabs Inc., Ltd. | Graphics engine with isochronous context switching |
US7523111B2 (en) | 2002-12-02 | 2009-04-21 | Silverbrook Research Pty Ltd | Labelling of secret information |
US6856317B2 (en) | 2003-04-16 | 2005-02-15 | Hewlett-Packard Development Company, L.P. | System and method for storing public and secure font data in a font file |
US7583397B2 (en) * | 2003-09-30 | 2009-09-01 | Canon Kabushiki Kaisha | Method for generating a display list |
US7136067B2 (en) * | 2004-01-26 | 2006-11-14 | Microsoft Corporation | Using externally parameterizeable constraints in a font-hinting language to synthesize font variants |
US7667871B1 (en) * | 2004-01-30 | 2010-02-23 | Roskind James A | Visual cryptography and voting technology using a pair of enhanced contrast glyphs in overlay |
US7612897B2 (en) * | 2004-09-24 | 2009-11-03 | Seiko Epson Corporation | Method of managing the printing of characters and a printing device employing method |
US7295206B2 (en) * | 2005-01-31 | 2007-11-13 | Microsoft Corporation | Ink input region adjustments |
US7623130B1 (en) | 2005-04-25 | 2009-11-24 | Apple Inc. | Text rendering with improved command stream operations |
US7576749B2 (en) * | 2005-09-15 | 2009-08-18 | Microsoft Corporation | Positioning screen elements |
US7535471B1 (en) | 2005-11-23 | 2009-05-19 | Apple Inc. | Scale-adaptive fonts and graphics |
US20070211062A1 (en) * | 2006-03-13 | 2007-09-13 | International Business Machines Corporation | Methods and systems for rendering complex text using glyph identifiers in a presentation data stream |
US20080068383A1 (en) * | 2006-09-20 | 2008-03-20 | Adobe Systems Incorporated | Rendering and encoding glyphs |
JP4402138B2 (ja) * | 2007-06-29 | 2010-01-20 | キヤノン株式会社 | 画像処理装置、画像処理方法、コンピュータプログラム |
US20090102846A1 (en) * | 2007-10-18 | 2009-04-23 | Andreas Flockermann | Rendering Graphics Using Fonts |
US8261186B2 (en) * | 2009-01-02 | 2012-09-04 | Apple Inc. | Methods for efficient cluster analysis |
-
2010
- 2010-11-01 US US12/917,288 patent/US8687004B2/en active Active
-
2011
- 2011-10-26 WO PCT/US2011/057918 patent/WO2012061178A1/en active Application Filing
- 2011-10-27 EP EP11186902.0A patent/EP2447885B1/en active Active
- 2011-10-31 TW TW100139636A patent/TWI448909B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715473A (en) * | 1992-12-29 | 1998-02-03 | Apple Computer, Inc. | Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font |
US6426751B1 (en) * | 1999-04-01 | 2002-07-30 | Adobe Systems Incorporated | Font feature file processing |
TW200540653A (en) * | 2004-02-27 | 2005-12-16 | Research In Motion Ltd | Font data processing system and method |
US20060017733A1 (en) * | 2004-07-26 | 2006-01-26 | Microsoft Corporation | Font representations |
US20060129632A1 (en) * | 2004-12-14 | 2006-06-15 | Blume Leo R | Remote content rendering for mobile viewing |
US20080238927A1 (en) * | 2007-03-26 | 2008-10-02 | Apple Inc. | Non-linear text flow |
Also Published As
Publication number | Publication date |
---|---|
EP2447885A2 (en) | 2012-05-02 |
US20120105454A1 (en) | 2012-05-03 |
WO2012061178A1 (en) | 2012-05-10 |
US8687004B2 (en) | 2014-04-01 |
TW201234200A (en) | 2012-08-16 |
EP2447885A3 (en) | 2014-10-15 |
EP2447885B1 (en) | 2019-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI448909B (zh) | 具有圖形影像之字形檔案 | |
EP0664023B1 (en) | Operating system with object-oriented printing interface | |
JP6157210B2 (ja) | 文書変換装置、文書変換方法、及びプログラム | |
EP1633125A1 (en) | Electronic album editing apparatus and control method therefor | |
JP2008070831A (ja) | 文書表示装置及び文書表示プログラム | |
JP2016014919A (ja) | 情報処理装置、情報処理方法、プログラム | |
KR20110088521A (ko) | 프로그램 스크립팅 언어를 이용하는 라벨 프린터 api | |
JP7293652B2 (ja) | 情報処理システム、サーバ装置、情報処理方法、及びプログラム | |
JP2010040048A (ja) | ドキュメントを選択的に編集するシステムおよび方法 | |
KR100657324B1 (ko) | XHTML-Print 데이터를 이용한 화상형성방법 및시스템 | |
US20100042946A1 (en) | System and method for web-based soft keyboard character entry | |
US20150169508A1 (en) | Obfuscating page-description language output to thwart conversion to an editable format | |
US9575702B2 (en) | Information processing apparatus, information processing method, and storage medium storing program having a layered structure | |
US8804170B2 (en) | Printing system, print data generating device, multi-function device, and non-transitory recording medium | |
US9116643B2 (en) | Retrieval of electronic document using hardcopy document | |
JP2023161552A (ja) | 情報処理装置及びその制御方法、プログラム | |
US20080278517A1 (en) | System and method for manipulation of document data intercepted through port redirection | |
JP6687801B1 (ja) | 文書表示システム、サーバ装置、情報端末装置、文書表示方法、および文書表示プログラム | |
US11748048B2 (en) | Methods for processing documents for use in variable data printing operations | |
JP2006065204A (ja) | 電子文書閲覧システム及び仮想プリンタドライバ | |
US20110181913A1 (en) | Image processing apparatus, control method, and storage medium | |
JP2004303077A (ja) | 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 | |
US20230325126A1 (en) | Information processing apparatus and method and non-transitory computer readable medium | |
JP7271208B2 (ja) | プログラム、および情報処理装置 | |
JP2020136835A (ja) | 情報処理装置、画像処理システム、及びプログラム |