# $Id: Print.pm,v 1.3 2001/03/19 01:19:27 muhri Exp $ # -*- perl -*- package Pronto::Print; use strict; use SelfLoader; 1; __DATA__ sub print_message { my ($flag) = @_; my ($msgid, $child, $forrep, $sql, $query, $print, $printed); $forrep = 4; $msgid = &Pronto::MessageList::get_selected_msgid(); if (! $msgid) { &main::err_dialog(_("Select the message You want to print!")); return 1; } $sql = "select contenttype from messages where id = $msgid"; $query = $main::conn->prepare($sql); $query->execute(); my ($type) = ($query->fetchrow_array()); if ($type =~/html/) { &main::err_dialog(_("Can't print HTML Messages yet")); return 1; } if ($flag eq "withheader") { $print->{'format'} = new Gtk::Text; my $header = &Pronto::Read::view_message($main::conn, $msgid, $print->{'format'}, 4, $forrep, undef, undef, undef, undef, undef, "n"); my $body = &Pronto::Read::view_message($main::conn, $msgid, $print->{'format'}, 2, $forrep, undef, undef, undef, undef, undef, "n"); $printed = $print->{'format'}->get_chars(0, -1); } elsif ($flag eq "body") { $print->{'format'} = new Gtk::Text; my $body = &Pronto::Read::view_message($main::conn, $msgid, $print->{'format'}, 2, $forrep, undef, undef, undef, undef, undef, "y"); $printed = $print->{'format'}->get_chars(0, -1); } open (TMP, ">$main::prefs{'MailDir'}/tmp/printed$msgid"); print TMP "$printed"; close TMP; unless ($child = fork) { die "cannot fork: $~" unless defined $child; exec("$main::prefs{'PrintCommand'} $main::prefs{'MailDir'}/tmp/printed$msgid"); } return 1; }