在Squeak中生成可打印输出

时间:2009-08-02 09:23:15

标签: squeak

我想在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)

遗憾的是,上述内容不起作用,并使用doesnotUnderstand #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. 为什么第一个示例会与doesnotUnderstand #pageBBox崩溃?
  3. 为什么第二个例子几乎可以工作,但不会渲染圆角?
  4. 由于 凯文

1 个答案:

答案 0 :(得分:2)

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

抱歉不要更有帮助!