[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: print -landscape/portrait
From: |
John W. Eaton |
Subject: |
Re: print -landscape/portrait |
Date: |
Wed, 24 Jun 2009 13:54:12 -0400 |
On 14-Jun-2009, Ben Abbott wrote:
| On Jun 13, 2009, at 10:02 PM, Ben Abbott wrote:
|
| > After the bug-report by José, regarding unexpected behavior of
| > "print -landscape ...", I was encouraged to re-examine the
| > implementation of how the print command handles the figure paper
| > properties.
| >
| > A simple summary of how the compatible interaction of the figure
| > paper properties is itemized below.
| >
| > (1) When the paperorientation is changed, a listener is needed to
| > flip the papersize but should not modify the paperposition. This,
| > indicates that the paperorientation can be ignored when printing.
| >
| > (2) When the papertype is changed, a listener is needed to set the
| > papersize while accounting for the paperorientation. This indicates
| > that the papertype can also be ignored when printing.
| >
| > (3) When the papersize is changed, a listener is needed to set the
| > papertype, but should not modify the paperorientation.
| >
| > (4) When the paperunits is changed, a listener is needed to convert
| > the values for the papersize and paperposition.
| >
| > (5) When paperpositionmode is 'auto' the paperposition property is
| > set to produce a figure, centered on the page, and the same size as
| > that the screen.
| >
| > Presently, Octave has no paper property listeners in place. However,
| > we can implement printing functionality in such a manner that it
| > will function properly the absence of the listeners (under the
| > assumption that paperunits==inches and units==pixels), and work
| > correctly when those listeners are eventually implemented.
| >
| > (a) When printing output, Octave will ignore the paperorientation &
| > papertype, and rely upon the papersize and paperposition.
| >
| > (b) Octave will use an unwind_protect block to temporally change the
| > paperunits to inches (the default) to allow the listener (which is
| > not yet implemented) to change the papersize and paperposition
| > values. This block may also be used to temporally change the
| > paperposition when paperpositionmode == 'auto'.
| >
| > (c) with the -landscape option and paperoriention==portrait, rotate
| > both the papersize and the paperposition.
| >
| > (d) with the -portrait option and paperoriention==landscape, rotate
| > both the papersize and the paperposition.
| >
| > The attached changeset has been tested with (i) gnuplot 4.2.2 using
| > devices ps and pdf, and with (ii) gnuplot 4.3.0 using devices ps and
| > pdf.
| >
| > Ive also attached a m-file script to test the print function
| > (test_print.m)
| >
| > Jaroslav, this changeset should apply cleanly the both the
| > developers sources as well as the 3.2 sources. Presently the -
| > landscape option does not produce the expected result (imo). Thus,
| > I recommend this change be pulled to 3.2. However, before doing so
| > I'd like it to be tested on Linux (and hopefully Windows).
| >
| > I hope to push this tomorrow after I've done a bit more testing
| > (specifically I need to verity printing a hard-copy works correclty).
| >
| > Ben
| >
| > <changeset.patch><test_print.m>
|
| My first attempt had some problems when the papersize and
| paperorientation were in conflict (which is one problem I sought to
| overcome). I've attached a second attempt, with a modified text script.
|
| I've tried printing hardcopies directly and had not problem on Mac
| OSX. If there are no objections, I'll push this changeset tomorrow.
I don't see this changeset in the archives. Is there a problem with
it?
jwe