summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/printer.pm13
-rw-r--r--perl-install/printerdrake.pm42
2 files changed, 49 insertions, 6 deletions
diff --git a/perl-install/printer.pm b/perl-install/printer.pm
index 12e11f260..e916ce6df 100644
--- a/perl-install/printer.pm
+++ b/perl-install/printer.pm
@@ -673,8 +673,17 @@ sub print_pages($@) {
# Print the pages
foreach (@pages) {
- run_program::rooted($prefix, $lpr, "-s", $printer->{SPOOLER},
- "-P", $queue, $_);
+ my $page = $_;
+ # Only text and PostScript can be printed directly with all spoolers,
+ # images must be treated seperately
+ if ($page =~ /\.jpg$/) {
+ system(($::testing ? "$prefix" : "chroot $prefix/ ") .
+ "convert $page -page 427x654+100+65 PS:- | " .
+ "$lpr -s $printer->{SPOOLER} -P $queue");
+ } else {
+ run_program::rooted($prefix, $lpr, "-s", $printer->{SPOOLER},
+ "-P", $queue, $page);
+ }
}
sleep 5; #- allow lpr to send pages.
# Check whether the job is queued
diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm
index 903766afb..e511fc1f6 100644
--- a/perl-install/printerdrake.pm
+++ b/perl-install/printerdrake.pm
@@ -417,7 +417,6 @@ sub setup_gsdriver {
if ((keys %printer::thedb) == 0) {
printer::read_printer_db($printer->{SPOOLER});
}
- my $testpage = "/usr/share/printer-testpages/testprint.ps";
my $queue = $printer->{OLD_QUEUE};
$in->set_help('configurePrinterType') if $::isInstall;
while (1) {
@@ -655,14 +654,49 @@ sub setup_gsdriver {
$printer->{complete} = 1;
printer::configure_queue($printer);
$printer->{complete} = 0;
-
- if ($in->ask_yesorno('', __("Do you want to print a test page?"), 1)) {
+ # print test pages
+ my $standard = 1;
+ my $altletter = 0;
+ my $alta4 = 0;
+ my $photo = 0;
+ my $ascii = 0;
+ if ($in->ask_from_entries_refH_powered
+ ({ title => __("Test pages"),
+ messages => __("Please select the test pages you want to print.
+Note: the photo test page can take a rather long time to get printed.
+In most cases it is enough to print the standard test page."),
+ cancel => __("No test pages"),
+ ok => __("Print")},
+[
+{ text => __("Standard test page"), type => 'bool', val => \$standard },
+{ text => __("Alternative test page (Letter)"), type => 'bool',
+ val => \$altletter },
+{ text => __("Alternative test page (A4)"), type => 'bool', val => \$alta4 },
+{ text => __("Photo test page"), type => 'bool', val => \$photo },
+{ text => __("Plain text test page"), type => 'bool', val => \$ascii }
+])) {
+# if ($in->ask_yesorno('', __("Do you want to print a test page?"), 1)) {
my @lpq_output;
{
my $w = $in->wait_message('', _("Printing test page(s)..."));
$upNetwork and do { &$upNetwork(); undef $upNetwork; sleep(1) };
- @lpq_output = printer::print_pages($printer, $testpage);
+ my $stdtestpage = "/usr/share/printer-testpages/testprint.ps";
+ my $altlttestpage = "/usr/share/printer-testpages/testpage.ps";
+ my $alta4testpage = "/usr/share/printer-testpages/testpage-a4.ps";
+ my $phototestpage = "/usr/share/printer-testpages/photo-testpage.jpg";
+ my $asciitestpage = "/usr/share/printer-testpages/testpage.asc";
+ my @testpages;
+ # Install the filter to convert the photo test page to PS
+ $photo && $in->do_pkgs->install('ImageMagick');
+ # set up list of pages to print
+ $standard && push (@testpages, $stdtestpage);
+ $altletter && push (@testpages, $altlttestpage);
+ $alta4 && push (@testpages, $alta4testpage);
+ $photo && push (@testpages, $phototestpage);
+ $ascii && push (@testpages, $asciitestpage);
+ # print the stuff
+ @lpq_output = printer::print_pages($printer, @testpages);
}
if (@lpq_output) {