http://www.perlmonks.org?node_id=948157


in reply to Perl tk - open file and print content

I would like to print the content of the txt file opened in a window of the program. Could anybody help me ?

Do you just want to print from the filename itself? Or do you want to open the file in an editor to see it, before you print it? In either case, you probably would use the same code in the callbacks. For MS Windows I would use a Windows only module, but on Linux you can use Net::CUPS::Printer, or use a forked system call to run the lpr command. You could also print directly to the printer, if you wanted more control.

open(LPR, "|lpr -Plp0 >/dev/null 2>&1"); open (FILE,"< $0 ") or die "Couldn't open: $!"; my $text = do {local $/; <FILE>}; close FILE; print LPR $text; close LPR;
or use the module
#!/usr/bin/perl use warnings; use strict; use Net::CUPS::Printer; use Data::Dumper; my @printers = cupsGetPrinters (); print "printers-> @printers\n"; my $printer = cupsGetDefault(); print "Default printer-> $printer\n"; my %options =(); my $jobid = cupsPrintFile($printer,"./$0",'Job1',\%options); print "jobid-> $jobid\n"; my $jobs = cupsGetJobs('lp0',1,0); print "jobs-> $jobs\n"; print Dumper([$jobs]),"\n"; my $cancel = cupsCancelJob('lp0', $jobid); print "cancel-> $cancel\n"; #my $jobs = cupsGetJobs('lp0',1,0); #print "jobs-> $jobs\n"; #print Dumper([$jobs]),"\n"; my $user = cupsUser(); print "user-> $user\n"; exit;

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

Replies are listed 'Best First'.
Re^2: Perl tk - open file and print content
by Giorgio C (Novice) on Jan 18, 2012 at 16:03 UTC
    I try to install Net::CUPs from cpan shell i got this massage: Running install for module 'Net::CUPS' Running make for D/DH/DHAGEMAN/Net-CUPS-0.61.tar.gz Has already been unwrapped into directory /home/casaburi/.local/share/.cpan/build/Net-CUPS-0.61-_zchLs No 'Makefile' created , won't make Running make test Make had some problems, won't test Running make install Make had some problems, won't install SO i try to install it manually getting this error massage: Net::CUPS Configuration Running cups-config ... failed. Net::CUPS requires the Common Unix Printing System. Check your system configuration and then attempt the configure process again. (i have perl v5.10.1 on Ubuntu) Can anyone help me please ? i'm going crazy !
      SO i try to install it manually getting this error massage: Net::CUPS Configuration Running cups-config ... failed. Net::CUPS requires the Common Unix Printing System. Check your system configuration and then attempt the configure process again. (i have perl v5.10.1 on Ubuntu) Can anyone help me please ? i'm going crazy !

      On Ubuntu, you should first use the apt-get or Synaptics Package Manager to install Perl modules. Why? Because Ubuntu often has many dependencies, that are required before installation. I would look thru your menu, and find Synaptic's Package Manager, run it and search for "perl Net::Cups", then install all the dependencies.

      Also, unless you have the latest Perl version 14.x installed, the Perl that comes with Ubuntu is older, around version 10 or 12, and the latest Net::Cups may not work at those Perl version levels. You may need an earlier release of the Net::CUPS module to be compatible. See Cups on Ubuntu


      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh
        Thank you so much, now CUPS works fine !! I am able to open a file and it printed content in the terminal. I'm not able to print that content (of the txt files) in a scrolled GUI windows. Can you suggest me the correct sintax to link print@line in $mw....???
        sub open_file {my $open = $mw->getOpenFile(-filetypes => $types_OPEN, -defaultextension => '.sff'); $read_fh = IO::File->new("$open",'r'); read_text($read_fh); } sub read_text { local $read_fh = shift; my @lines; @lines = <$read_fh>; print @lines; MainLoop }
Re^2: Perl tk - open file and print content
by Anonymous Monk on Jan 16, 2012 at 15:13 UTC

    OP said

    to print the content of the txt file opened

    in a window of the program.

      Thanks you very much ! I wanted to print directly the opned txt content in a GUI windows.