如何解决visualWorks 8.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 。
字体类>> loadedFonts在最新的“字体基础”包装改变,Report4PDF改为使用新名称。但是,Graphics.Fonts.Font中的LoadedFonts类变量会在第一个引用上初始化。要获取新列表,加载最新代码后,需要在Font class >> loadedFonts中运行ifNil:[]块。
在我的图片中,加载了最新的代码,在LoadedFonts中定义了#'Helvetica-Bold'。
嗨,鲍勃!所以我在loadedFonts上运行了ifNil块。但是我遇到了新的错误。它说:OrderedCollection(Collection)>> notFoundError。 所以它试图从Graphic.Fonts.OpenType中获取一些东西。CmapSubtable类>> classFor :: Mujasoft
一个快速和脏的修复将包括用'(aSymbolOrFilenameString copyWithout:$ - )asSymbol'替换'at:'的参数。但我不确定这是您寻找的解决方案。 –
是的。我正在寻找一个更优雅的解决方案,但如果没有其他作品,我会试试这个...谢谢:) – Mujasoft