【问题标题】:Generating printable output within Squeak在 Squeak 中生成可打印输出
【发布时间】:2009-08-02 17:49:52
【问题描述】:

我想在 Squeak 中创建一个可打印的输出文件,例如创建一个报告。

我在 Google 上进行了一些搜索,但令我惊讶的是,与创建可打印文件相关的示例中几乎没有材料。但是,我发现了几个名为 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. 为什么第一个示例会因不理解 #pageBBox 而崩溃?
  3. 为什么第二个示例几乎可以工作,但不能渲染圆角?

谢谢 凯文

【问题讨论】:

    标签: squeak


    【解决方案1】:

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

    很抱歉没有提供更多帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2023-03-07
      相关资源
      最近更新 更多