SVGExporter

SVGExporterをSqueak3.9用に直してみました。http://squeaksource.blueplane.jp/SVGExporter.html(SqueakSourceJ)
経由でMonticello Browserからインストールできます。ちょっと現在解説ページがなくなってしまったのでその下書きを兼ねて書いておきます。

SVGExporterとは

Squeakには印刷機能としてPS出力(Postscript)しかありませんでした。そこでその属性を保持しつつファイルとして保存するためにSVG(Scalable Vector Graphics)形式に変換するものを作りました。SVGExporterではMorphicを画像として格納するのではなく、極力Vector/Text情報として保存するので、SVG Viewerなどで拡大してもジャギーが出ず、高精度に閲覧・描画が可能となっています。

インストール後

SqueakSourceJからインストールしたパッケージではメニューから操作できません。以下のようにMorph>>addCopyItemsTo:を修正してください。修正はclipSVG,printSVGToFileを含む行を追加します。

addCopyItemsTo: aMenu
	"Add copy-like items to the halo menu"

	| subMenu |
	subMenu _ MenuMorph new defaultTarget: self.
	subMenu add: 'copy to paste buffer' translated action: #copyToPasteBuffer:.
	subMenu add: 'copy text' translated action: #clipText.
	subMenu add: 'copy Postscript' translated action: #clipPostscript.
	subMenu add: 'print Postscript to file...' translated target: self selector: #printPSToFile.
	subMenu add: 'copy SVG' translated action: #clipSVG.
	subMenu add: 'print SVG to file...' translated target: self selector: #printSVGToFile.
	aMenu add: 'copy & print...' translated subMenu: subMenu

使用方法

赤ハロメニューより'copy & print...'を選択して、copy SVG/print SVG to file...を選択します。'copy SVG'はクリップボードに出力されます。'print SVG to file...'はファイル出力されます。ファイル出力ではファイル名を入力してください。自動的に拡張子'.svg'が付けられます。

使用例

  • 印刷:SVGから直接プリント出力できませんが、例えばInkspaceのようなSVGベースのドローソフトで印刷が可能です。
  • 編集:InkspaceなどのSVGベースのドローソフトを使えば出力したSVGより個々のMorphicを1つの図形として扱えますので、修正などして他ソフトで活用できます。


通常のスクリーンショット(拡大するとジャギーが目立つ)

Inkscapeで取り込んだ状態

2回Ungroupして、Morphicレベルで修正した状態(StringMorphはテキストとして,EllipseMorphは図形として扱われている)