たとえば、レポートを作成するために、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ファイルで丸められていません(画面上で丸められています)。
だから、私の質問は次のとおりです。
- 印刷可能な出力を生成する限り、私は正しい方向に進んでいますか、それとも別の手法を使用する必要がありますか?
- 最初の例がdoesnotUnderstand#pageBBoxでクラッシュするのはなぜですか?
- 2番目の例はほとんど機能するのに、丸みを帯びた角がレンダリングされないのはなぜですか?
ありがとうケビン