Ruby 1.8 FOX 1.6 fxruby-1.6.13 Mandriva 2008 - Linux 2.6.22.9-server-2mdv Having invested several months in learning and using fxruby as an alternative to C/Tcl/Tk or rubytk I have started redeveloping some of my homegrown programs for this new environment. The most important is paddb, an address label printer, which uses Tcl to generate postscript files from a canvas. FOX has the FXDCPrint class which looks like it generates postscript output. If this is supported by fxruby can it be used somehow in conjunction with a canvas and further would it be possible to copy that to a postscript file? In Tcl/Tk the canvas.postscript function handles all that transparently. Is there such a method in fxruby? The documentation available suggests not. Are there then any plans to incorporate such a facility in fxruby? If not I shall have to regress to rubytk, which I could never get to work satisfactorily. There are additional problems with that in Mandriva 2008 to do with the adoption of TclTk8.5. Mandriva''s rubytk is compiled against version 8.4 AFAIK. Comments?
fxruby-users-bounces at rubyforge.org wrote:> Ruby 1.8 > FOX 1.6 > fxruby-1.6.13 > > Mandriva 2008 - Linux 2.6.22.9-server-2mdv > > Having invested several months in learning and using fxruby as an > alternative to C/Tcl/Tk or rubytk I have started redeveloping some of > my homegrown programs for this new environment. The most important > is paddb, an address label printer, which uses Tcl to generate > postscript files from a canvas. FOX has the FXDCPrint class which > looks like it generates postscript output. If this is supported by > fxruby can it be used somehow in conjunction with a canvas and > further would it be possible to copy that to a postscript file? In > Tcl/Tk the canvas.postscript function handles all that transparently. > Is there such a method in fxruby? The documentation available > suggests not. Are there then any plans to incorporate such a facility > in fxruby? If not I shall have to regress to rubytk, which I could > never get to work satisfactorily. There are additional problems with > that in Mandriva 2008 to do with the adoption of TclTk8.5. > Mandriva''s rubytk is compiled against version 8.4 AFAIK. > > Comments?Hi, I was able to draw forms into a PS file, like with this code: ------------------------------- print_dialog = FXPrintDialog.new(self, "Print Something") if print_dialog.execute != 0 print_instance = FXDCPrint.new($app) print_instance.setContentRange(0, 0, 1280, 1024) print_instance.beginPrint(print_dialog.printer) do |dc| print_instance.beginPage(1) do |dc| dc.foreground = FXRGB(255, 150, 185) dc.drawLine(0, 0, 400, 0) dc.drawLine(0, 0, 0, 400) end end end ------------------------------- But I haven''t been able to draw an image (taken from a Canvas) into a PS file: ------------------------------- print_dialog = FXPrintDialog.new(self, "Print Something") if print_dialog.execute != 0 print_instance = FXDCPrint.new($app) print_instance.setContentRange(0, 0, 1280, 1024) print_instance.beginPrint(print_dialog.printer) do |dc| print_instance.beginPage(1) do |dc| dc.drawImage(@image, 0, 400) end end end ------------------------------- Is it possible, in Tcl/Tk, to print directly on a printer? This is something I''m searching for for some time now, and FXDCPrint does not allow that at the moment. Maybe there is code we can reuse? Regards, Philippe
Philippe Lang wrote:> fxruby-users-bounces at rubyforge.org wrote: > > >> Ruby 1.8 >> FOX 1.6 >> fxruby-1.6.13 >> >> Mandriva 2008 - Linux 2.6.22.9-server-2mdv >> >> Having invested several months in learning and using fxruby as an >> alternative to C/Tcl/Tk or rubytk I have started redeveloping some of >> my homegrown programs for this new environment. The most important >> is paddb, an address label printer, which uses Tcl to generate >> postscript files from a canvas. FOX has the FXDCPrint class which >> looks like it generates postscript output. If this is supported by >> fxruby can it be used somehow in conjunction with a canvas and >> further would it be possible to copy that to a postscript file? In >> Tcl/Tk the canvas.postscript function handles all that transparently. >> Is there such a method in fxruby? The documentation available >> suggests not. Are there then any plans to incorporate such a facility >> in fxruby? If not I shall have to regress to rubytk, which I could >> never get to work satisfactorily. There are additional problems with >> that in Mandriva 2008 to do with the adoption of TclTk8.5. >> Mandriva''s rubytk is compiled against version 8.4 AFAIK. >> >> Comments? >> > > Hi, > > I was able to draw forms into a PS file, like with this code: > > ------------------------------- > print_dialog = FXPrintDialog.new(self, "Print Something") if > print_dialog.execute != 0 > print_instance = FXDCPrint.new($app) > print_instance.setContentRange(0, 0, 1280, 1024) > print_instance.beginPrint(print_dialog.printer) do |dc| > print_instance.beginPage(1) do |dc| > > dc.foreground = FXRGB(255, 150, 185) > dc.drawLine(0, 0, 400, 0) > dc.drawLine(0, 0, 0, 400) > > end > end > end > ------------------------------- > > But I haven''t been able to draw an image (taken from a Canvas) into a PS > file: > > ------------------------------- > print_dialog = FXPrintDialog.new(self, "Print Something") if > print_dialog.execute != 0 > print_instance = FXDCPrint.new($app) > print_instance.setContentRange(0, 0, 1280, 1024) > print_instance.beginPrint(print_dialog.printer) do |dc| > print_instance.beginPage(1) do |dc| > > dc.drawImage(@image, 0, 400) > > end > end > end > ------------------------------- > > > Is it possible, in Tcl/Tk, to print directly on a printer? This is > something I''m searching for for some time now, and FXDCPrint does not > allow that at the moment. Maybe there is code we can reuse? > > Regards, > > Philippe > >Thanks for the response Philippe. I need the canvas for interaction, adding, deleting labels, changing font size and colour, changing the typeface etc. In Tcl/Tk I create the .ps file from the canvas and then use the system command to print it; e.g. system( "lpr -Pdj940 $somefilewhatever" ) and I had hoped to do something like that in fxruby. In your case, having created the Postscript file could you not use Ruby''s system command? If you are using Windows or a Mac there must be a similar print command. HTH - Len
On Friday 14 March 2008, Len Lawrence wrote:> Philippe Lang wrote: > > fxruby-users-bounces at rubyforge.org wrote: > > > > > >> Ruby 1.8 > >> FOX 1.6 > >> fxruby-1.6.13 > >> > >> Mandriva 2008 - Linux 2.6.22.9-server-2mdv > >> > >> Having invested several months in learning and using fxruby as an > >> alternative to C/Tcl/Tk or rubytk I have started redeveloping some of > >> my homegrown programs for this new environment. The most important > >> is paddb, an address label printer, which uses Tcl to generate > >> postscript files from a canvas. FOX has the FXDCPrint class which > >> looks like it generates postscript output. If this is supported by > >> fxruby can it be used somehow in conjunction with a canvas and > >> further would it be possible to copy that to a postscript file? In > >> Tcl/Tk the canvas.postscript function handles all that transparently. > >> Is there such a method in fxruby? The documentation available > >> suggests not. Are there then any plans to incorporate such a facility > >> in fxruby? If not I shall have to regress to rubytk, which I could > >> never get to work satisfactorily. There are additional problems with > >> that in Mandriva 2008 to do with the adoption of TclTk8.5. > >> Mandriva''s rubytk is compiled against version 8.4 AFAIK. > >> > >> Comments? > >> > > > > Hi, > > > > I was able to draw forms into a PS file, like with this code: > > > > ------------------------------- > > print_dialog = FXPrintDialog.new(self, "Print Something") if > > print_dialog.execute != 0 > > print_instance = FXDCPrint.new($app) > > print_instance.setContentRange(0, 0, 1280, 1024) > > print_instance.beginPrint(print_dialog.printer) do |dc| > > print_instance.beginPage(1) do |dc| > > > > dc.foreground = FXRGB(255, 150, 185) > > dc.drawLine(0, 0, 400, 0) > > dc.drawLine(0, 0, 0, 400) > > > > end > > end > > end > > ------------------------------- > > > > But I haven''t been able to draw an image (taken from a Canvas) into a PS > > file: > > > > ------------------------------- > > print_dialog = FXPrintDialog.new(self, "Print Something") if > > print_dialog.execute != 0 > > print_instance = FXDCPrint.new($app) > > print_instance.setContentRange(0, 0, 1280, 1024) > > print_instance.beginPrint(print_dialog.printer) do |dc| > > print_instance.beginPage(1) do |dc| > > > > dc.drawImage(@image, 0, 400) > > > > end > > end > > end > > ------------------------------- > > > > > > Is it possible, in Tcl/Tk, to print directly on a printer? This is > > something I''m searching for for some time now, and FXDCPrint does not > > allow that at the moment. Maybe there is code we can reuse? > > > > Regards, > > > > Philippe > > > > > Thanks for the response Philippe. I need the canvas for interaction, > adding, deleting labels, changing font size and colour, changing the > typeface etc. In Tcl/Tk I create the .ps file from the canvas and then > use the system command to print it; > e.g. system( "lpr -Pdj940 $somefilewhatever" ) > and I had hoped to do something like that in fxruby. In your case, > having created the Postscript file could you not use Ruby''s system > command? If you are using Windows or a Mac there must be a similar > print command.To save an FXImage, try fxsavePS(). - Jeroen