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)

残念ながら、上記は機能せず、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. 2番目の例はほとんど機能するのに、丸みを帯びた角がレンダリングされないのはなぜですか?

ありがとうケビン

4

1 に答える 1

2

それはSqueakだけではありません-印刷可能な出力を生成することは、どのプログラミング言語でも恐ろしく困難です。私がプロジェクト計画を行い、人々がレポートについて言及するときはいつでも、私はプロジェクトの見積もりを(少なくとも)2倍にします。個人的には、XMLやCSVなどのよく知られた形式でデータをファイルに書き込んでから、レポート作成パッケージを使用して実際のレポートを作成することをお勧めします。

これ以上役に立たないことをお詫びします!

于 2009-08-02T09:49:52.523 に答える