1

我想从 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 文件中没有圆角(它们在屏幕上是圆角的)。

所以,我的问题是:

  1. 就生成可打印输出而言,我是否走在正确的轨道上,还是应该使用替代技术?
  2. 为什么第一个示例会因不理解 #pageBBox 而崩溃?
  3. 为什么第二个示例几乎可以工作但不渲染圆角?

谢谢凯文

4

1 回答 1

2

这不仅仅是 Squeak - 在任何编程语言中生成可打印输出都非常困难。每当我完成项目规划并且人们提到报告时,我都会立即(至少)将项目估算翻一番。就个人而言,我建议将数据以某种众所周知的格式(例如 XML 或 CSV)写入文件,然后使用报告编写包来生成实际报告。

抱歉没有提供更多帮助!

于 2009-08-02T09:49:52.523 回答