專利名稱:用于打印路徑的優(yōu)化字體子集化的制作方法
用于打印路徑的優(yōu)化字體子集化
背景技術:
在打印解決方案中使用固定布局的文檔格式(例如XPS)—般包括創(chuàng)建以后作為假脫機文件向打印子系統(tǒng)傳遞的固定布局的文檔(例如XPS文檔)。這一固定布局的文檔經(jīng)常包含用來再現(xiàn)固定布局的文檔的字體資源。包括字體資源在從客戶端向另一計算設備(例如打印服務器)發(fā)送固定布局的文檔時是有幫助的,因為其它計算設備可能沒有客戶端有權訪問的字體。在固定布局的文檔中包括所有字體可能生成大文件,創(chuàng)建和在部件之間傳達該文件耗費時間。子集化(subset)字體(即創(chuàng)建相同字體的更小版本,該版本僅包含文件中使用的必需字體元素(例如字形))可以減少文件的大小;然而子集化字體可能延遲打印的開始。
發(fā)明內(nèi)容
本發(fā)明的實施例由所附權利要求而不是本發(fā)明內(nèi)容限定。這里出于該原因而提供本發(fā)明各種方面的高級概述以提供公開內(nèi)容的概述并且引入下文在具體實施方式
章節(jié)中進一步描述的概念選集。本發(fā)明內(nèi)容并非旨在于標識要求保護的主題內(nèi)容的關鍵特征或者實質(zhì)特征,它也并非旨在于用來孤立輔助確定要求保護的主題內(nèi)容的范圍。這里描述的主題內(nèi)容涉及提供可用來打印文檔的字體表現(xiàn)信息(例如XPS文件)。例如接收字體文件,該字體文件限定文檔中包括的字體類型。進行對文檔的頁面數(shù)量未超過子集化優(yōu)化閾值的確定。當頁面數(shù)量未超過閾值時,生成字體類型的子集化的字體文件。比如經(jīng)由假脫機文件向打印子系統(tǒng)提供子集化的文件。
下文參照附圖具體描述本發(fā)明的示例實施例,在附圖中
圖I是描繪適合于根據(jù)本發(fā)明實施例使用的示例計算設備的框 圖2是根據(jù)本發(fā)明一個實施例的示例操作環(huán)境的框 圖3是根據(jù)本發(fā)明一個實施例的示例操作環(huán)境的框圖;并且 圖4是根據(jù)本發(fā)明一個實施例的示例流程圖。
具體實施例方式這里具體描述本發(fā)明實施例的主題內(nèi)容以滿足法定要求。但是說明書本身并非旨在于必然限制權利要求的范圍。相反,可以結合其它當前或者將來技術用其它方式體現(xiàn)要求保護的主題內(nèi)容以包括與在本文中描述的步驟或者步驟組合類似或不同的步驟或者步驟組合。除非明確聲明個別步驟的順序以及除了在明確聲明個別步驟的順序時之外,術語不應解釋為意味著在這里公開的各種步驟之中或者之間的任何特定順序。一般而言,本發(fā)明的一個實施例涉及提供可用來打印文檔的字體表現(xiàn)信息(例如XPS文件)。簡要地參照圖2,接收字體文件216,該字體文件限定文檔214中包括的字體類型218。進行對頁面數(shù)量220未超過子集化優(yōu)化閾值的確定。生成字體類型(即字體類型A)的子集化的字體文件222。如箭頭224描繪的那樣,提供子集化的字體文件222以用來打印文檔214。已經(jīng)簡要地描述一個實施例,現(xiàn)在描述圖1,在該圖中示出了用于實施本發(fā)明實施例的示例操作環(huán)境并且大體上表示為計算設備100。計算設備100是適合的計算環(huán)境的僅一個例子并且未旨在于暗示關于本發(fā)明實施例的使用或者功能范圍的任何限制。計算設備100也不應解釋為具有與所示部件中的任何部件或者組合有關的任何依賴或者要求??梢栽谟嬎銠C或者其它機器、比如個人數(shù)據(jù)助理或者其它手持設備執(zhí)行包括計算機可執(zhí)行指令的計算機代碼或者機器可用指令的一般背景中描述本發(fā)明的實施例。一般而言,包括例程、程序、對象、部件、數(shù)據(jù)結構等的程序模塊指代執(zhí)行特定任務或者實施特定抽象數(shù)據(jù)類型的代碼??梢栽诎ㄊ殖衷O備、消費者電子設備、通用計算機、更特殊的計算設備等的多種系統(tǒng)配置中實現(xiàn)本發(fā)明的實施例。也可以在任務由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實現(xiàn)本發(fā)明的實施例。
本發(fā)明的實施例可以實現(xiàn)為方法、系統(tǒng)或者在一個或者多個計算機可讀介質(zhì)上實現(xiàn)的指令集以及其它方面。計算機可讀介質(zhì)包括易失性和非易失性介質(zhì)、可拆卸和不可拆卸介質(zhì)并且設想數(shù)據(jù)庫、交換機和各種其它網(wǎng)絡設備可讀的介質(zhì)。舉例而言,計算機可讀介質(zhì)包括在用于存儲信息的任何方法或者技術中實施的介質(zhì)。存儲的信息的例子包括計算機可用指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)表示。介質(zhì)例子包括但不限于信息遞送介質(zhì)、RAM、ROM、EEPR0M、閃存或者其它存儲器技術、CD-ROM、數(shù)字萬用盤(DVD )、全息介質(zhì)或者其它光盤儲存器、磁帶盒、磁帶、磁盤儲存器以及其它磁存儲設備。這些技術可以瞬態(tài)、暫時或者持久地存儲數(shù)據(jù)。參照圖1,計算設備100包括直接或者間接地耦合以下設備的總線110 :存儲器112、一個或者多個處理器114、一個或者多個呈現(xiàn)部件116、輸入/輸出端口 118、輸入/輸出部件120和電源122??偩€110代表如下總線,該總線可以是一個或者多個總線(比如地址總線、數(shù)據(jù)總線或者其組合)。雖然為了清楚而用線示出了圖I的各種塊,但是在現(xiàn)實中界定各種部件并非如此清楚,并且作為比喻,線將更準確地是灰色和模糊的。例如可以認為呈現(xiàn)部件、比如顯示設備是I/O部件。處理器也具有存儲器。我們認識到這是本領域的性質(zhì)并且重申圖I的圖僅舉例說明可以結合本發(fā)明的一個或者多個實施例使用的示例計算設備。在諸如“工作站”、“服務器”、“膝上型設備”、“手持設備”等類別之間未進行區(qū)分,因為在圖I的范圍和對“計算設備”的引用內(nèi)設想所有類別。計算設備100通常包括多種計算機可讀介質(zhì)。舉例而言,計算機可讀介質(zhì)可以包括隨機存取存儲器(RAM);只讀存儲器(ROM);電可擦除可編程只讀存儲器(EEPROM);閃存或者其它存儲器技術;CDR0M、數(shù)字萬用盤(DVD)或者其它光學或者全息介質(zhì);磁帶盒、磁帶、磁盤儲存器或者其它磁存儲設備、載波或者可以用來對所需信息編碼并且由計算設備100訪問的任何其它介質(zhì)。存儲器112包括形式為易失性和/或非易失性存儲器的計算機存儲介質(zhì)。存儲器可以可拆卸、不可拆卸或者其組合。示例硬件設備包括固態(tài)存儲器、硬盤驅動、光盤驅動等。計算設備100包括從各種實體、比如存儲器112或者I/O部件120讀取數(shù)據(jù)的一個或者多個處理器114。呈現(xiàn)部件116向用戶或者其它設備呈現(xiàn)數(shù)據(jù)指示。示例呈現(xiàn)部件包括顯示設備、揚聲器、打印部件、振動部件等。
I/O端口 118允許計算設備100邏輯地耦合到包括I/O部件120的其它設備,這些設備中的一些設備可以內(nèi)置。示例部件包括麥克風、操縱桿、游戲板、衛(wèi)星盤、掃描儀、打印機、無線設備等。現(xiàn)在回到圖2,描繪適合于實現(xiàn)本發(fā)明一個實施例的示例操作環(huán)境并且大體上由標號210標識。環(huán)境210包括文檔214、226和228、子集化優(yōu)化器230、字體子集化器232以及打印子系統(tǒng)234。在本發(fā)明的一個實施例中,子集化優(yōu)化器230和字體子集化器232在向打印子系統(tǒng)234發(fā)送每個文檔214、226和228之前在每個文檔的基礎上處理文檔214、226和228。例如當在向打印機友好格式(例如XPS或者其它固定布局的文檔格式)轉換文檔214時,子集化優(yōu)化器230和字體子集化器232配合以優(yōu)化假脫機文件大小和在發(fā)起打印之前經(jīng)過的時間量(即打印開始時間)的方式子集化字體218、236和238。文檔214、226和228可以包括在打印時可轉換成固定布局的文檔格式的多種格式、比如DIRECT2D。描繪文檔214、226和228中的每個文檔包括字體類型218、236和238。類似地,每個字體類型218、236和238包括字體文件216、240和242。一般而言,字體文件通過包括 元素(例如字形、字符、符號等)的集合來限定字體類型,這些元素可由計算設備用來產(chǎn)生字體類型的表現(xiàn)。例如字體文件216包括可用來在表現(xiàn)文檔214內(nèi)的字體類型218的元素的集合。出于示例目的,描繪字體類型218為“字體類型A”,也描繪字體類型236為“字體類型A”,并且描繪字體類型238為“字體類型ZX”。在本發(fā)明的一個實施例中,字體文件216、240和242無論是否在相應文檔中包括字體類型的字形都包括用來表現(xiàn)相應字體的元素的完整集合。例如字體文件216無論在文檔214中是否包括字體類型218的字形都包括用來表現(xiàn)字體類型218的元素的完整集合。在圖2中僅描繪每個文檔的一個字體類型;然而文檔214、226和228中的每個文檔也可以包括附加字體類型。也就是說,雖然出于示例目的而用一個字體類型描繪每個文檔214、226和228,但是文檔經(jīng)常包括每個頁面上和貫穿文檔的多個不同字體類型。此外,文檔214、226和228中的每個文檔包括頁面數(shù)量220、244和246。也就是說,圖2圖示了文檔214包括17頁并且在描繪17頁中的頁面I。類似地,文檔226包括22頁并且在描繪22頁中的頁面I。文檔228包括14頁并且在描繪14頁的頁面I。在另一實施例中,子集化優(yōu)化器230確定是否應當子集化字體文件(例如216、240和242)。子集化字體文件包括在生成固定布局的文檔時僅包括字體的在文檔中包括的那些元素(例如字形、字符、符號等)。另外,子集化優(yōu)化器230確定應當如何子集化字體文件。子集化優(yōu)化器230包括頁數(shù)評估器248,該評估器確定文檔中包括的頁數(shù)(例如220、244和246)是否滿足子集化優(yōu)化閾值(下文更具體描述)。例如當文檔中的頁數(shù)滿足子集化優(yōu)化閾值時,子集化字體文件。子集化優(yōu)化器230也包括字體大小評估器252,該評估器確定字體大小是否超過字體大小閾值。例如當字體超過字體大小閾值時,基于貫穿整個文檔的使用來子集化字體文件一一如與當在頁面集合中使用字體時子集化字體文件對比。參照圖3以進一步描述子集化優(yōu)化閾值。圖3描繪各種測試組文檔312、314、316和318。如箭頭320、322、324和326描繪的那樣,子集化每個測試組文檔,從而為每個測試組文檔生成多個子集化的字體文件。然后向相應打印子系統(tǒng)346、348、350和352提供每個子集化的字體文件。例如當子集化測試組文檔312時生成四個子集化的字體文件328、330、332和334。也就是說,測試組文檔312包括20頁并且在5頁面塊中被子集化、由此生成四個子集化的字體文件328、330、332和334。四個子集化的字體文件328、330、332和334各自適用于文檔312的20頁內(nèi)的相應頁面范圍。也就是說,子集化的字體文件328包括字體類型的在文檔314的頁面1-5內(nèi)包括的元素并且省略頁面1-5內(nèi)未包括的元素。在與應用于文檔314的5頁面塊不同的頁面塊中子集化測試組文檔314。如箭頭322描繪的那樣,在4頁面塊中子集化文檔314、由此生成五個子集化的字體文件336、338、340、342和344。五個子集化的字體文件336、338、340、342和344各自適用于文檔314的20頁內(nèi)的相應頁面范圍。例如子集化的文件336包括字體類型的在文檔314的頁面1_4內(nèi)包括的元素并且省略頁面1-4中未包括的元素。在與文檔312和文檔314 二者不同的頁面塊中子集化測試組文檔316。文檔318和箭頭326圖示了測試組文檔可以包括任何頁數(shù)(即1-N)并且可以在具有任何頁數(shù)(即1-Z)的頁面塊中被子集化。子集化具有不同頁數(shù)的測試組文檔312、314、316和318在考慮各種打印性能度量、比如效率、為了打印文檔而需要的時間和在發(fā)起打印之前的時間時對總打印性能具有不同的影響。例如在與5頁面塊對比的4頁面中子集塊化可以允許比子集化的字體文件328 更快地(例如箭頭345描繪時間)向打印子系統(tǒng)提交文檔314的子集化的字體文件336,因為子集化五頁比子集化四頁需要更久。也重要的是這樣直至已經(jīng)完成頁面集合的所有繪圖才可以向打印機發(fā)送字體批次的事實。因此延遲可以不僅包括預備子集化的字體而且包括預備全部下一頁面所需要的時間。然而在4頁面塊中子集化可能生成在每個子集化的文件336、338、340、342和344之間的更高(即所不希望的)數(shù)量的子集化字體元素重疊。例如,如果文檔314是字處理文檔,則文檔314的頁面1-4和文檔314的頁面4_8可以包括字體的大量相同元素(例如字母),從而當在4頁面塊中子集化時反復地子集化相同元素。反復地子集化相同元素可能造成不希望的低效率。本發(fā)明的一個實施例涉及平衡打印性能度量,比如打印開始時間和效率。例如通過控制允許子集化的文檔大小(例如頁數(shù))來平衡打印-性能度量。此外,通過控制為字體生成的子集化的文件數(shù)量以及子集化的頁面集合大小(即頁數(shù)大小)、即通過控制在批處理之前子集化多少頁面來平衡度量。另外,通過控制子集化的字體文件大小來平衡度量。也就是說,向子集化優(yōu)化分析器354提交通過子集化并且打印文檔312、314、316和318來生成的數(shù)據(jù)。子集化優(yōu)化分析器354收集的示例數(shù)據(jù)包括為了生成假脫機文件而需要的時間量、開始打印請求所需要的時間量、完成打印請求所需要的時間量、假脫機文件的大小和子集化字體元素重疊量。在一個實施例中,子集化優(yōu)化分析器354處理收集的數(shù)據(jù)以試探地確定最優(yōu)子集化參數(shù)。子集化優(yōu)化分析器354包括出于示例目的而在分解圖372中描繪的信息370。分解圖372描繪最優(yōu)子集化參數(shù)包括每個文檔最優(yōu)頁面集合數(shù)量356和頁面集合中的最優(yōu)頁數(shù)358。例如每個文檔最優(yōu)頁面集合數(shù)量356可以提供通常產(chǎn)生滿足元素重疊閾值的子集化字體元素重疊量的每個文檔頁面集合數(shù)量。另外,通常可以在滿足持續(xù)時間閾值的持續(xù)時間內(nèi)子集化頁面集合中的最優(yōu)頁數(shù)358,該持續(xù)時間閾值設置為了生成假脫機文件而希望的最大時間。每個文檔最優(yōu)頁面集合數(shù)量356與頁面集合中的最優(yōu)頁數(shù)358的乘積產(chǎn)生可以用來管理與其它文檔有關的子集化的子集化優(yōu)化閾值360。分解圖372描繪如下示例實施例,在該實施例中,最優(yōu)頁面集合數(shù)量(k)等于每個文檔4個集合,并且集合中的最優(yōu)頁數(shù)(X)等于每個集合5頁,從而子集化優(yōu)化閾值(Y)等于20頁。
除了分析頁面集合數(shù)量和每個頁面集合的頁數(shù)之外,子集化優(yōu)化分析器354還可以考慮影響打印性能度量的其它因素。例如子集化優(yōu)化分析器354可以分析應當在確定如何子集化時如何考慮字體大小。也就是說,字體有時包括大字體大小和在文檔中實際使用的元素的大型超集合。在這樣的場景中,可以確定通過如與在頁面塊中對比完全轉換文檔來優(yōu)化打印性能度量。這樣,子集化優(yōu)化分析器354可以確定字體大小閾值,并且當字體類型的字體大小超過字體大小閾值時完全子集化文檔。盡管可能在完全子集化文檔時延遲打印發(fā)起,但是當字體包括大字體大小和在文檔中實際使用的元素的大型超集合時實現(xiàn)字體處理時間和假脫機大小的優(yōu)點。回到圖2,頁數(shù)評估器248包括信息250。在實施例中,信息250包括子集化優(yōu)化閾值,比如圖3中描述的子集化優(yōu)化閾值360。這樣,當處理打印請求時,頁數(shù)評估器248可以參考子集化優(yōu)化閾值以確定待打印頁數(shù)是否在子集化優(yōu)化閾值以上或者以下。子集化優(yōu)化器230也包括字體大小評估器252,該評估器可用于確定字體類型(例 如字體類型A)的字體大小超過字體大小閾值。在本發(fā)明的一個實施例中,當字體類型的字體大小超過字體大小閾值時,貫穿整個文檔子集化字體類型,從而生成一個子集化的字體文件,如與在頁面集合中子集化字體類型對比。在一個替代實施例中,字體大小評估器252可以包括如下字體類型的列表,已知這些字體類型具有超過字體大小閾值的字體大小。這樣,當字體大小評估器252接收字體文件時,字體大小評估器252可以參考列表以確定字體文件已經(jīng)視為包括如下字體大小,該字體大小提示完全子集化字體。又一實施例包括字體子集化器232,該子集化器與來自子集化優(yōu)化器230的指引一致地子集化字體文件。例如生成子集化的字體文件可以包括生成多個子集化的字體文件,每個字體文件用于文檔的相應頁面集合。在這樣的場景中,字體子集化器232可以提供第一子集化的字體文件以用來在生成第二子集化的字體文件之前打印文檔。就這一點而言,可以在完成假脫機之前發(fā)起打印。例如可以發(fā)起第一頁面的打印而未等待假脫機第一批頁面、即可以在子集化該批頁面的字體之時發(fā)起打印??梢曰陧撁婕现械淖顑?yōu)頁數(shù)(例如圖3的358)確定文檔的相應頁面集合。在又一實施例中,一旦已經(jīng)向打印子系統(tǒng)提供子集化的文件,字體子集化器232傳達子集丟棄指令,該指令通知打印子系統(tǒng)丟棄子集化的字體文件。通過提供子集丟棄指令,打印子系統(tǒng)可以更高效地管理它的存儲器資源,因為它知道不會在該打印作業(yè)期間再次參考該特定字體文件。在另一實施例中,字體子集化器232如與在頁面塊中子集化對比貫穿全部文檔子集化字體。例如當字體類型的字體大小超過字體大小閾值時,字體子集化器232貫穿整個文檔子集化字體類型,從而生成一個子集化的字體文件。參照圖4,描繪如下流程圖,該流程圖概括在本發(fā)明的一個實施例中執(zhí)行的操作集合。操作集合大體上由標號410描繪,并且在描述圖4時也可以參照圖2和圖3。操作410涉及提供可用來打印文檔的字體表現(xiàn)信息。操作411包括確定子集化優(yōu)化閾值。例如可以根據(jù)圖3的描述確定子集化優(yōu)化閾值。類似地,可以比如在子集化優(yōu)化器230參考信息250時通過參考存儲的值來確定子集化優(yōu)化閾值。在又一實施例中,操作412包括接收字體文件,該字體文件限定文檔中包括的字體類型,該文檔在被打印時生成某一數(shù)量的頁面。例如子集化優(yōu)化器230可以接收字體文件216、240和242中的任何字體文件。也就是說,線215、227和229各自描繪在向子集化優(yōu)化器230傳遞的相應字體文件。字體文件216限定文檔214中的字體類型218,該文檔在被打印時生成17頁。字體文件240限定文檔226中的字體類型236,該文檔在被打印時生成22頁。如描繪的那樣,字體文件216和240均限定相同字體類型,該字體類型包括“字體類型A”。字體文件242限定文檔228中的字 體類型238,該文檔在被打印時生成14頁。字體文件242限定與字體文件216和240限定的字體類型不同的“字體類型ZX”。如先前指示的那樣,雖然用一個字體類型描繪每個文檔214、226和228,但是文檔經(jīng)常包括每個頁面上和貫穿文檔的多個不同字體類型。操作414包括確定頁面數(shù)量是否滿足子集化優(yōu)化閾值、比如關于圖3描述的子集化優(yōu)化閾值。例如,如果限定子集化優(yōu)化閾值為20頁,則子集化優(yōu)化器30可以確定頁面數(shù)量220 (該數(shù)量描繪“17”頁)未超過子集化優(yōu)化閾值。類似地,如果限定子集化優(yōu)化閾值為20頁,則子集化優(yōu)化器230可以確定頁面數(shù)量246 (該數(shù)量描繪“14”頁)未超過子集化優(yōu)化閾值。另一方面,如果限定子集化優(yōu)化閾值為20頁,則子集化優(yōu)化器230可以確定頁面數(shù)量244 (該數(shù)量描繪“22”頁)超過子集化優(yōu)化閾值。在頁面數(shù)量超過子集化優(yōu)化閾值的場景中,如在操作415中描繪的那樣在固定布局的文檔中嵌入字體類型的全部。操作416包括確定字體類型的字體大小是否超過字體大小閾值。例如字體大小評估器252可以確定字體類型218、236或者238的字體大小是否超過字體大小閾值。也就是說,如果字體大小閾值包括IOMB并且字體類型218是5MB,則字體大小評估器252可以確定字體類型218的字體大小未超過字體大小閾值。在另一例子中,字體類型238可以是15MB,從而字體大小評估器252將確定字體類型238的大小超過IOMB閾值。在又一實施例中,字體大小閾值是動態(tài)的、比如通過應用閾值百分比。例如字體大小閾值可以是60%,從而如果字體文件是IOMB并且字體類型包含5MB,則子集化字體文件。然而在這一例子中,如果字體類型包含7MB,則完全發(fā)送字體。在另一實施例中,字體大小評估器252可以參考如下已知字體類型的列表以確定是否列舉字體類型218、236或者238,這些已知字體類型包括比字體大小閾值更高的字體大小。操作410也包括生成頁面塊418的子集化的字體文件或者生成整個文檔420的子集化的字體文件。例如從子集化優(yōu)化器傳達信息254、信息256和信息258。信息254標識為“Doc. I”并且對應于文檔214。信息256標識為“Doc. 3”并且對應于文檔228。信息258標識為“Doc. 2”并且對應于文檔226。字體子集化器232與子集化優(yōu)化器提供的指引一致地子集化“Doc. I”。例如當文檔214的頁面數(shù)量220未超過子集化優(yōu)化閾值時以及當字體類型218的字體大小未超過字體大小閾值時,在頁面塊中子集化字體類型218(即操作418)、由此生成多個子集化的字體文件222、260、262和264。多個子集化的字體文件中的每個字體文件適用于文檔214的相應頁面范圍。例如子集化的字體文件222僅包括字體類型218的在文檔214的頁面1-5中包括的元素(例如字形)并且排除頁面1-5中未包括的元素。在又一實施例中,當生成第一子集化的字體文件(例如222)時,在生成第二子集化的字體文件(例如260)之前向打印子系統(tǒng)轉發(fā)第一子集化的字體文件、由此比如果子集化整個文檔時更早地發(fā)起打印。如先前描述的那樣,頁面塊中的頁數(shù)可以基于如子集化優(yōu)化分析器354確定的在頁面集合中的最優(yōu)頁面數(shù)量。在又一實施例中,在向打印子系統(tǒng)234傳遞子集化的字體文件222、260、262和264之后,也傳達丟棄控制指令266、268、270和272。也就是說,在傳遞子集化的字體文件222之后,發(fā)送丟棄控制指令266、由此通知打印子系統(tǒng)234以丟棄該時間點已經(jīng)提供的字體資源。作為另一例子,當文檔228的頁面數(shù)量246未超過子集化優(yōu)化閾值時以及當字體類型238的字體大小未超過字體大小閾值時,字體類型238基于它貫穿Doc. 3的使用來子集化、由此生成單個子集化的字體文件274 (即操作420)。在又一實施例中,當文檔226的頁面數(shù)量244 (即“22”頁)超過子集化優(yōu)化閾值(例如20頁)時,未子集化Doc. 2。代之以在待打印的固定布局的文檔中嵌入字體類型236的全部(即操作415)。操作422包括提供子集化的字體文件以用來打印文檔。例如向打印子系統(tǒng)234提供子集化的字體文件222、260、262、264和274。如先前指示的那樣,在向打印子系統(tǒng)234傳遞子集化的字體文件222、260、262和264之后,也傳達丟棄控制指令266、268、270和272。本發(fā)明的一個實施例涉及一種提供可用來打印文檔的字體表現(xiàn)信息的方法。該方法包括接收字體文件,該字體文件限定文檔中包括的字體類型,該文檔在被打印時生成某一數(shù)量的頁面。另外進行對頁面數(shù)量未超過子集化優(yōu)化閾值的確定。該方法也包括生成字·體類型的子集化的字體文件,該子集化的字體文件未包括字體類型的不在文檔的至少部分中的元素。提供子集化的字體文件以用來打印文檔。本發(fā)明的另一實施例涉及一個或者多個計算機可讀介質(zhì),該介質(zhì)具有存儲于其上的計算機可執(zhí)行指令,這些指令在被執(zhí)行時有助于一種提供可用來打印文檔的字體表現(xiàn)信息的方法。該方法包括基于一個或者多個測試組文檔確定子集化優(yōu)化閾值,其中測試組文檔可劃分成某一數(shù)量的頁面集合,并且頁面集合包括待打印的相應頁面集合。子集化優(yōu)化閾值等于最優(yōu)頁面集合數(shù)量與頁面集合中的最優(yōu)頁面數(shù)量的乘積。接收字體文件,該字體文件限定待打印的文檔中包括的字體類型,該文檔包括某一數(shù)量的頁面。進行對頁面數(shù)量未超過子集化優(yōu)化閾值的確定。該方法也包括生成文檔的頁面集合的子集化的字體文件,其中頁面集合的頁數(shù)大小基于最優(yōu)頁面數(shù)量。向打印子系統(tǒng)提供子集化的字體文件。又一實施例涉及如下系統(tǒng),該系統(tǒng)使用計算設備來實施并且有助于提供可用來打印文檔的字體表現(xiàn)信息。該系統(tǒng)包括接收字體文件的子集化優(yōu)化器,該字體文件限定待打印的文檔中包括的字體類型,該文檔包括某一數(shù)量的頁面。該系統(tǒng)也包括確定頁面數(shù)量是否超過子集化優(yōu)化閾值的頁數(shù)評估器。該系統(tǒng)也包括字體子集化器,該子集化器生成字體類型的子集化的字體文件,該子集化的字體文件未包括字體類型的不在文檔的至少部分中的元素,其中向打印子系統(tǒng)提供子集化的字體文件。描繪的各種部件的許多不同布置以及未示出的部件是可能的而未脫離所附權利要求的范圍。已經(jīng)描述本發(fā)明的實施例旨在于舉例說明而非限制。替代實施例將在閱讀它之后并且由于閱讀它而變得為本公開內(nèi)容的讀者所清楚??梢酝瓿蓪嵤┣笆龇矫娴奶娲侄味幻撾x所附權利要求的范圍。某些特征和子組合有實用性并且可以被運用而不參考其它特征和子組合并且在權利要求的范圍內(nèi)被設想。
權利要求
1.一種提供可用來打印文檔的字體表現(xiàn)信息的方法,所述方法包括 接收字體文件,所述字體文件限定所述文檔中包括的字體類型,所述文檔在被打印時生成某一數(shù)量的頁面; 確定所述頁面數(shù)量未超過子集化優(yōu)化閾值; 生成所述字體類型的子集化的字體文件,所述子集化的字體文件未包括所述字體類型的不在所述文檔的至少部分中的元素;并且 提供所述子集化的字體文件以用來打印所述文檔。
2.根據(jù)權利要求I所述的方法,其中提供所述子集化的字體文件包括在固定布局的文檔中嵌入所述子集化的字體文件。
3.根據(jù)權利要求2所述的方法,其中所述固定布局的文檔是XPS文檔。
4.根據(jù)權利要求I所述的方法, 其中使用一個或者多個測試組文檔來確定所述子集化優(yōu)化閾值, 其中測試組文檔可劃分成某一數(shù)量的頁面集合,并且頁面集合包括待打印的相應頁面集合,并且 其中所述子集化優(yōu)化閾值等于最優(yōu)頁面集合數(shù)量與頁面集合中的最優(yōu)頁面數(shù)量的乘積。
5.根據(jù)權利要求4所述的方法,其中試探地確定所述最優(yōu)頁面集合數(shù)量,從而適用于所述最優(yōu)頁面集合數(shù)量的多個子集化的字體文件包括滿足元素重疊閾值的子集化字體元素重疊量。
6.根據(jù)權利要求4所述的方法,其中試探地確定所述最優(yōu)頁面數(shù)量,從而為了生成所述最優(yōu)頁面數(shù)量的子集化的字體而需要的持續(xù)時間滿足持續(xù)時間閾值。
7.根據(jù)權利要求I所述的方法, 其中所述文檔可劃分成頁面集合;并且 其中生成所述子集化的字體文件包括生成各自適用于相應頁面集合的多個子集化的字體文件。
8.根據(jù)權利要求7所述的方法,其中當生成第一子集化的字體文件時,在生成第二子集化的字體文件之前向打印子系統(tǒng)轉發(fā)所述第一子集化的字體文件。
9.根據(jù)權利要求8所述的方法,還包括發(fā)送通知所述打印子系統(tǒng)丟棄所述第一子集化的字體文件的子集丟棄指令。
10.根據(jù)權利要求I所述的方法,其中當所述字體類型的字體大小超過字體大小閾值時,完全子集化所述文檔,從而生成一個子集化的字體文件。
11.根據(jù)權利要求I所述的方法, 其中所述文檔可劃分成頁面集合;并且 其中當所述字體類型的字體大小未超過字體大小閾值時,生成所述子集化的字體文件包括生成各自適用于相應頁面集合的多個子集化的字體文件。
12.—個或者多個計算機可讀介質(zhì),具有存儲于其上的計算機可執(zhí)行指令,所述計算機可執(zhí)行指令在被執(zhí)行時有助于一種提供可用來打印文檔的字體表現(xiàn)信息的方法,所述方法包括 確定基于一個或者多個測試組文檔的子集化優(yōu)化閾值,其中測試組文檔可劃分成某一數(shù)量的頁面集合并且頁面集合包括待打印的相應頁面集合,并且 其中所述子集化優(yōu)化閾值等于最優(yōu)頁面集合數(shù)量與頁面集合中的最優(yōu)頁面數(shù)量的乘積; 接收字體文件,所述字體文件限定待打印的所述文檔中包括的字體類型,所述文檔包括某一數(shù)量的頁面; 確定所述頁面數(shù)量未超過所述子集化優(yōu)化閾值; 生成所述文檔的頁面集合的子集化的字體文件,其中所述頁面集合的頁數(shù)大小基于所述最優(yōu)頁面數(shù)量;并且 向打印子系統(tǒng)提供所述子集化的字體文件。
13.根據(jù)權利要求12所述的一個或者多個計算機可讀介質(zhì),其中試探地確定所述最優(yōu)頁面集合數(shù)量,從而適用于所述最優(yōu)頁面集合數(shù)量的多個子集化的字體文件包括滿足元素重疊閾值的子集化字體元素重疊量。
14.根據(jù)權利要求12所述的一個或者多個計算機可讀介質(zhì),其中生成所述文檔的子集化的字體文件以所述字體類型的大小滿足字體大小閾值為條件,并且其中當所述字體類型的所述大小超過所述字體大小閾值時,完全子集化所述文檔。
15.一種系統(tǒng),使用計算設備來實施并且有助于提供可用來打印文檔的字體表現(xiàn)信息,所述系統(tǒng)包括 子集化優(yōu)化器,接收字體文件,所述字體文件限定待打印的所述文檔中包括的字體類型,所述文檔包括某一數(shù)量的頁面;以及 頁數(shù)評估器,確定所述頁面數(shù)量是否超過子集化優(yōu)化閾值;以及字體子集化器,生成所述字體類型的子集化的字體文件,所述子集化的字體文件未包括所述字體類型的不在所述文檔的至少部分中的元素,其中向打印子系統(tǒng)提供所述子集化的字體文件。
全文摘要
本文描述的主題涉及提供可用來打印文檔的字體表現(xiàn)信息(例如XPS文件)。例如接收字體文件,該字體文件限定文檔中包括的字體類型。進行對文檔的頁面數(shù)量未超過子集化優(yōu)化閾值的確定。當頁面數(shù)量未超過閾值時,生成字體類型的子集化的字體文件。比如經(jīng)由假脫機文件向打印子系統(tǒng)提供子集化的文件。
文檔編號G06F9/44GK102971699SQ201180030917
公開日2013年3月13日 申請日期2011年6月20日 優(yōu)先權日2010年6月22日
發(fā)明者A.古爾肯, H.維加加, H.伊娃諾夫, H.辛赫, K.維德布拉特, A.克瑙夫, 陸建業(yè) 申請人:微軟公司