[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Direct Printing Problem





Osamu Sasaki wrote:

> Hi,
>
> This is a simple printing program.
>
> PRO TEST
>         save = !D.NAME
>         SET_PLOT, 'PRINTER'
>
>         ret = DIALOG_PRINTERSETUP()
>
>         HELP, /DEVICE
>         PLOT, INDGEN(10)
>         DEVICE, /CLOSE_DOCUMENT
>
>         SET_PLOT, save
> END
>
> Run this program on IDL 5.2 (Windows).
> Select PostScript printer(output device),
> A3(media), landscape(orientation) and press OK.
>
> The output is like this.
>
>  +------------+
>  |            |
>  |            |
>  | ######     |
>  | ######     |
>  +------------+
>
> (# is plotted area)
>
> It should be like this.
>
>  +------------+
>  | ########## |
>  | ########## |
>  | ########## |
>  | ########## |
>  +------------+
>
> And it works correctly with other printers (LIPS, ESC/Page, PCL, etc.).
>
> Why only PostScript printers ?
> Is there any way to solve this problem ?
>

Im not a postscript user, but I had a similar offset problem on direct
printing to windows printers when upgrading from idl5.1 (gave correct
positioning) to idl5.2 (did not give correct positioning).

It turns out that idl 5.2 introduced a default clip area on the page.  I
recall a comment from RSI that the change also related to postscript plots,
so it is possible your problem is similar to mine.

In order to use the full A3 page on my printer (an HP1000C) I have to use
the following:

    set_plot, "printer",/copy
    r=dialog_printersetup()

   ; Get the page size (dependent upon page type selected from the dialog).

  DEVICE, GET_PAGE_SIZE=pageSize  ;  this is a secret command, not in
documentation !!

  ; Set the drawing area based on that page size.
  DEVICE, XOFFSET=0, YOFFSET=0, XSIZE=pageSize[0],
YSIZE=pageSize[1],/DEVICE
   ; Note that the DEVICE keyword is required for that last call (since
   ;  pageSize is measured in pixels).

    ;Note also that you may want to use only a portion of the overall page
    ;       size.  In this case, you can apply a proportional scale to the
queried page
    ;      size (and adjust the xoffset and yoffset as you wish).

Does this help?

Regards,
Michael Asten