我想从 Squeak 中创建一个可打印的输出文件,例如创建一个报告。
我做了一点谷歌搜索,令我惊讶的是,与创建可打印文件有关的示例中存在的材料如此之少。但是,我发现了几个名为 PostscriptCanvas 和 EPSCanvas 的类以及其中一个名为 morphAsPostscript 的方法。
为了尝试这些类,我创建了一个小代码示例,我的第一个工作区示例是:
p := PasteUpMorph new.
p extent: 300@300.
p position: 20@20.
p borderColor: Color black.
p setProperty: #cornerStyle toValue: #rounded.
p openInWorld.
(FileStream newFileNamed: 'test1.ps') nextPutAll: (PostscriptCanvas morphAsPostscript: p)
不幸的是,上面的内容不起作用,并因不理解 #pageBBox 而停止。
当我再次尝试该示例但这次使用 EPSCanvas 类时:
p := PasteUpMorph new.
p extent: 300@300.
p position: 20@20.
p borderColor: Color black.
p setProperty: #cornerStyle toValue: #rounded.
p openInWorld.
(FileStream newFileNamed: 'test2.eps') nextPutAll: (EPSCanvas morphAsPostscript: p).
这次我生成输出,但框的角在 eps 文件中没有圆角(它们在屏幕上是圆角的)。
所以,我的问题是:
- 就生成可打印输出而言,我是否走在正确的轨道上,还是应该使用替代技术?
- 为什么第一个示例会因不理解 #pageBBox 而崩溃?
- 为什么第二个示例几乎可以工作但不渲染圆角?
谢谢凯文