The Printer Setup Window

The above screen shot comes from my French Yosemite 10.10.4cpb.

How can I set the properties we can watch in this window ?

Orientation (Portrait or Landscape): I use the .Landscape Boolean (set to True) to set the Printing orientation to Landscape.

But, the question of the day is: how do I set the chelle (Scale) Value ?

Note: to print correctly that ListBox in that specific project I have:
to set the ListBox fixed column values (else, I get in ColumnWidths: "1*,1,1,1,1 for example) and in the printing routine, I use the ListBox Column withs as Tab values
set the Scale % to 70 (and Landscape) else, I get horizontally overlaping text. (but not only)

More questions will come, but not from that window (the other one where you can set the page range for example) later / next week ?


For Mac you can do some things with NSPrintInfoMBS class.

I do it this way

main is my Main Window
mytimer is a Timer (off, period 1000)

dim mshell as new shell
dim cmd as string

cmd = “osascript -e ‘tell application ““System Events”” to keystroke "“0"” & (keystroke "“7"”)’”
mshell.Execute cmd
cmd = “osascript -e ‘tell application ““System Events”” to keystroke return’”
mshell.Execute cmd

Print Button.Action

  Dim g As Graphics
  Dim p As PrinterSetup
  p = New PrinterSetup
  p.Landscape = true // if you want landscape
  mytimer.mode = 1
  If p.PageSetupDialog(main) Then
    g = OpenPrinterDialog(p, main)
    If g <> Nil Then
      ///// your print code
    End If
  End If