----------------------------------------------------------------------------------
@MSGID:
<de5eec43-22be-4d53-9fa6-0bb83321b0f7n@googlegroups.com> 6683e34d
@REPLYADDR greg <gregor.ebbing@googlemail.com>
@REPLYTO 2:5075/128 greg
@CHRS: CP866 2
@RFC: 1 0
@RFC-Message-ID:
<de5eec43-22be-4d53-9fa6-0bb83321b0f7n@googlegroups.com>
@TZUTC: -0700
@PID: G2/1.0
@TID: FIDOGATE-5.12-ge4e8b94
Two files print-8.6erw.tcl and print-test.tcl.
tried to see if it also works with 8.6
#print-8.6erw.tcl
package require gdi
package require printer
#Tcl Extensions by Michael Schwarz
#
http://wiki.tcl-lang.org/page/TkPrint
package require struct::list
namespace eval ::tk::print {
proc _opendoc {} {
printer job start
}
proc _openpage {} {
printer page start
}
proc _closedoc {} {
printer job end
}
proc _closepage {} {
printer page end
}
proc _gdi {args} {
gdi {*}$args
#tailcall gdi {*}$args
}
proc _selectprinter {} {
# variable printargs
variable printer_name
variable paper_width
variable paper_height
variable dpi_x
variable dpi_y
variable copies
set hDc [printer dialog select]
set attr [struct::list flatten [printer attr -hDc $hDc]]
# set printer_name [dict get $attr device]
#set printargs(printer_name) [dict get $attr device]
set printer_name [lindex $hDc 0]
set paper_width [lindex [dict get $attr "page dimensions"] 0]
set paper_height [lindex [dict get $attr "page dimensions"] 1]
set dpi_x [lindex [dict get $attr "pixels per inch"] 0]
set dpi_y [lindex [dict get $attr "pixels per inch"] 1]
set copies [dict get $attr copies]
}
#print-test.tcl
package require Tk
#tk 8.7
#
https://core.tcl-lang.org/tips/doc/trunk/tip/604.md
#
https://core.tcl-lang.org/tk/file?name=library/print.tcl&ci=tip
source print.tcl
source print-8.6erw.tcl
text .t
button .btn -text print -command {tk print .t}
.t insert end "hello World"
pack .t .btn
--- G2/1.0
* Origin: usenet.network (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441