2017-04-03 52 views
1

我一直在使用report4pdf(bob nemec)包來生成PDF報告。一切都很順利,除非我想在右邊有一些漂亮的單元格填充。想要更新會修復這個問題。如何解決visualWorks 8.1中'未找到字體'錯誤?

於是我連接到公共庫和更新如下:

Report4PDF 1.4.0.1 (評論說,這是爲了配合PDF開發1.4.3.0和字體開發1.3.3.2所以更新這些呢)。

但是,當我更新並運行代碼它說'字體未找到'。 果然,當我運行調試器和從調試器對自loadedFonts部分「檢查」:

^self loadedFonts at: aSymbolOrFilenameString ifAbsent: [ 
     FontNotFound raiseSignal: aSymbolOrFilenameString , ' was not found'] 

其中:A symbolOrFilenameString =#「黑體粗體」

我打開字典對象,字體在那裏。只是它的密鑰不匹配。我猜測更新改變了除此之外的所有按鍵。 無論如何,我希望你們能幫助我。

在此先感謝!

UPDATE 1:

嗨,鮑勃!所以我在loadedFonts上運行了ifNil塊。但是我遇到了新的錯誤。它說:OrderedCollection(Collection)>> notFoundError。 因此,它試圖從 Graphic.Fonts.OpenType.CmapSubtable類>> classFor ::`

的代碼之中得到的東西:

classFor: formatInteger 
^self allSubclasses detect: [:sc | sc subclasses isEmpty and: [ sc formatNumber = formatInteger]] 

======= 其中formatInteger是4 。

ScreenShot of Debugger

+0

一個快速和髒的修復將包括用'(aSymbolOrFilenameString copyWithout:$ - )asSymbol'替換'at:'的參數。但我不確定這是您尋找的解決方案。 –

+0

是的。我正在尋找一個更優雅的解決方案,但如果沒有其他作品,我會試試這個...謝謝:) – Mujasoft

回答

1

字體類>> loadedFonts在最新的「字體基礎」包裝改變,Report4PDF改爲使用新名稱。但是,Graphics.Fonts.Font中的LoadedFonts類變量會在第一個引用上初始化。要獲取新列表,加載最新代碼後,需要在Font class >> loadedFonts中運行ifNil:[]塊。

在我的圖片中,加載了最新的代碼,在LoadedFonts中定義了#'Helvetica-Bold'。

+0

嗨,鮑勃!所以我在loadedFonts上運行了ifNil塊。但是我遇到了新的錯誤。它說:OrderedCollection(Collection)>> notFoundError。 <><><><><> 所以它試圖從Graphic.Fonts.OpenType中獲取一些東西。CmapSubtable類>> classFor :: <><><><>< 代碼感: ================ classFor:formatInteger \t ^自allSubclasses檢測: [:sc | \t \t SC子類的isEmpty和:[ \t \t SC formatNumber = formatInteger]] ======= 其中formatInteger是4 ============== 我不不知道從哪裏出發。歉意的窮人格式。我似乎可以在評論中獲得編碼權。 – Mujasoft

相關問題