2009-08-02 36 views
1

我想從Squeak中創建可打印的輸出文件,例如創建報告。在Squeak中生成可打印的輸出

我已經做了一些Google搜索,我很驚訝於有關創建可打印文件的示例方式中存在很少材料。然而,我發現了一些名爲PostscriptCanvas和EPSCanvas的類類以及一個名爲morphAsPostscript的方法。

要嘗試這些類了我創建了一個很小的代碼示例和我的第一個工作區的例子是:

p := PasteUpMorph new. 
p extent: [email protected] 
p position: [email protected] 
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: [email protected] 
p position: [email protected] 
p borderColor: Color black. 
p setProperty: #cornerStyle toValue: #rounded. 
p openInWorld. 
(FileStream newFileNamed: 'test2.eps') nextPutAll: (EPSCanvas morphAsPostscript: p). 

這個時候,我產生輸出,但盒子的角落EPS文件不圓(他們的四捨五入屏幕)。

所以,我的問題是:

  1. 我在正確的軌道上,只要生成打印輸出,或者我應該使用一種替代技術?
  2. 爲什麼第一個例子會崩潰with doesnotUnderstand #pageBBox?
  3. 爲什麼第二個例子差不多可以工作但不會渲染圓角?

感謝 凱文

回答

2

這不只是吱 - 生產打印輸出是絲毫不馬虎很難在任何編程語言。每當我完成項目規劃和人員提交報告時,我立即將項目估計翻倍(至少)。就個人而言,我建議將數據以XML或CSV等一些衆所周知的格式寫入文件,然後使用報告編寫包生成實際報告。

對不起,更有幫助!