CLIM mail archive
[Prev][Next][Index][Thread]
Re: postscript output with scaling and draw-text* in CLIM 1.1
Date: Thu, 10 Sep 1992 12:15 EDT
From: gmw@cypress.mitre.org (Gregory M. Whittaker)
Scott,
Perhaps I'm not being clear enough about this problem; there are really two
separate issues involved. First, why isn't the start-point of the text glyph
being transformed, and second, why aren't the glyphs themselves transformed.
I think it is a simple bug in CLIM 1.1 that the start/end points are
being transformed, although I find it somewhat surprising that there is
a bug there at all.
You have, I think, explained away the second problem, although I think that
CLIM ought to supply some vector-based font for this kind of thing; but I
CLIM is not in any position to supply this sort of thing, since it is
explicitly not one of CLIM's goals to do rasterization or rendering of
text. CLIM has to depend on what the underlying platform gives it.
still don't understand why the starting point for the draw-text* is not being
transformed uniformly with the graph arcs. I'd be happy if the "nodes"
remained fat or whatever font-size I specified, as long as they actually were
planted in the right positions relative to the graph arcs. This is in fact
what happens in the previous version that I sent when I use with-text-size.
Previous version:
(defmethod print-subclass-tree ((name symbol) &optional (size :tiny))
(let* ((class (find-class name))
(filename (concatenate 'string (string (class-name class))
"-subclass-tree.ps")))
(with-open-file (file filename :direction :output :if-exists :supersede)
(clim:with-output-to-postscript-stream (stream file :multi-page t)
(clim:with-text-size (size stream)
(clim:format-graph-from-root class
#'(lambda (object s)
(write-string (string (class-name object)) s))
#'clos:class-direct-subclasses :stream stream))))
(excl:run-shell-command (concatenate 'string "lpr " filename))))
The trouble with this approach is that the degree of compaction or expansion
of the graph is determined by the text-size and does not cover the range of
contraction that I need.
If the starting points of the transformed arcs began at the end-points of the
textual-nodes, and the start-points of the textual-nodes were at the end-points
of the arcs then I could live with "untransformed" glyphs, but the way things
stand now, the postscript output for the textual-nodes portion of the graph is
identical no matter what I put in for a transformation size (using the code
included below). I think that this much at least is a bug in the CLIM implemen-
tation of 1.1. I only have documentation for CLIM 1.0 and 2.0.alpha. There is
no mention of towards-x or towards-y in the 1.0 documentation, and the 2.0
documentation is irrelevant at this point since 2.0.alpha dose not yet include
with-output-to-postscript-stream.
By the way, there are also problems in the PostScript port that cause
the formatted output engines not to lay things out accurately. This may
be biting you as well.
Finally, I think it would be very useful for the with-output-to-postscript-stream
to accept an additional keyword (:eps nil) for the purposes of including these
views into standard document preparation software. I'm not grossly offended by
the earlier suggestion you made of offering a kludgey :scale keyword also, but
it does seem to clash with the overall transformation protocol.
What does :EPS NIL do?
0,,
References:
Main Index |
Thread Index