# package require printer package require gdi # Now build a screen.... button .b -text OK -font { Times 12 } -command exit label .x -text "Now is the time for all good men to come to the aid of their country" \ -font { Times 12 bold } -wraplength 100 # Build an output window toplevel .output text .output.text pack .output.text -fill both -expand true .output.text insert end "Printer package version [printer version]\n" .output.text insert end "GDI package version [gdi version]\n" pack .b .x # Ensure everything is ready update wm deiconify . raise . set x [printer dialog select] set x [lindex $x 0 ] .output.text insert end "Selected printer with GDI context $x\n" # Allow a repaint update catch { set result [printer job start $x] } result .output.text insert end "Started printer job: $result\n" wm deiconify . raise . update catch { set result [gdi copymain $x 1000 800] } result .output.text insert end "Copied window using StretchBlt: $result\n" catch { set result [printer job end $x] } result .output.text insert end "Completed job: $result\n" catch { set result [printer close] } result .output.text insert end "Closed printer: $result\n" .output.text insert end "\nTest complete. Press OK to exit\n"