@@ -, +, @@ --- C4/Installer/PerlDependencies.pm | 5 ----- Koha/Printer.pm | 22 ++++++++++++++++------ debian/control.in | 2 ++ 3 files changed, 18 insertions(+), 11 deletions(-) --- a/C4/Installer/PerlDependencies.pm +++ a/C4/Installer/PerlDependencies.pm @@ -632,11 +632,6 @@ our $PERL_DEPS = { 'required' => '0', 'min_ver' => '1.11', }, - 'HTML::HTMLDoc' => { - 'usage' => 'Push to printer', - 'required' => '0', - 'min_ver' => '0.10', - }, 'File::Temp' => { 'usage' => 'Plugins', 'required' => '0', --- a/Koha/Printer.pm +++ a/Koha/Printer.pm @@ -50,12 +50,22 @@ sub print { return unless ($data); if ($is_html) { - require HTML::HTMLDoc; - my $htmldoc = new HTML::HTMLDoc(); - $htmldoc->set_output_format('ps'); - $htmldoc->set_html_content($data); - my $doc = $htmldoc->generate_pdf(); - $data = $doc->to_string(); + require PDF::FromHTML; + require File::Temp; + require File::Slurp; + + my ( $pdf_fh, $pdf_filename ) = File::Temp::tempfile( CLEANUP => 1); + my ( $ps_fh, $ps_filename ) = File::Temp::tempfile( CLEANUP => 1); + + my $pdf = PDF::FromHTML->new( encoding => 'utf-8' ); + my $pdf_data; + $pdf->load_file( \$data ); + $pdf->convert(); + $pdf->write_file( $pdf_filename ); + + `pdf2ps $pdf_filename $ps_filename`; + + $data = File::Slurp::read_file( $ps_filename ); } my ( $result, $error ); --- a/debian/control.in +++ a/debian/control.in @@ -22,6 +22,7 @@ Depends: ${misc:Depends}, ${koha:Depends}, cron-daemon, daemon, debconf, + ghostscript, idzebra-2.0, libjs-jquery, mysql-client | virtual-mysql-client, @@ -70,6 +71,7 @@ Depends: ${misc:Depends}, cron-daemon, daemon, debconf, + ghostscript, idzebra-2.0, libjs-jquery, mysql-client | virtual-mysql-client, --