1

我一直在使用 report4pdf(bob nemec) 包将报告生成为 PDF。一切都很顺利,除了当我试图在右边有一些漂亮的单元格填充时。认为更新会解决这个问题。

所以我连接到公共存储库并更新了以下内容:

Report4PDF 1.4.0.1(评论说这是为了与 PDF Development 1.4.3.0 和 Font Development 1.3.3.2 相匹配。所以也更新了这些)。

但是,当我更新并运行代码时,它会显示“未找到字体”。果然,当我运行调试器并从调试器中对 self-loadedFonts 部分“检查”时:

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

其中: A symbolOrFilenameString= #'Helvetica-Bold'

当我打开字典对象时,字体就在那里。只是钥匙不匹配。我猜这个更新改变了除了这个之外的所有键。无论如何,我希望你们能帮助我。

提前致谢!

更新 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。

调试器的屏幕截图

4

1 回答 1

1

字体类>>loadedFonts 在最新的“Fonts Basics”包中发生了变化,并且 Report4PDF 被更改为使用新名称。但是,Graphics.Fonts.Font 中的 LoadedFonts 类变量在第一次引用时被初始化。要获取新列表,在加载最新代码后,您需要运行 Font 类>>loadedFonts 中的 ifNil: [] 块。

在我的图像中,加载了最新代码后,#'Helvetica-Bold' 在 LoadedFonts 中定义。

于 2017-04-03T22:57:29.460 回答