From 8b40a4ed26cc25a8a8644eec650f44d929144986 Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Thu, 10 Apr 2014 10:53:26 -0300 Subject: [PATCH] Bug 12068 - label-create-pdf.pl Add support for RTL language On top of Bug 8375 If you print a label using arabic/hebrew script, letters are printed in logical direction, from left to right, giving a mangled result This patch will try to fix those cases adding a new perl dependency, Text::Bidi, and using the automagic feature if it's log2vis() function to rearrange chars based on detected text 'direction' To test: 1. Install Text::Bidi package (apt-get install libtext-bidi-perl) 2. Try a batch, using Helvetica, with a mix of ltr and rtl (arabic/hebrew) titles, chars are good, but direction is bad 3. Apply the patch 4. Try again, now the result is good Formerly a followup of Bug 8375, look sample pics on that Bug. Rebased following changes on Bug 8375 Note: Arabic titles will not be displayed, because current code selects Oblique variant. But Hebrew looks good. --- C4/Installer/PerlDependencies.pm | 5 +++++ install_misc/debian.packages | 1 + install_misc/ubuntu.10.04.packages | 1 + install_misc/ubuntu.12.04.packages | 1 + install_misc/ubuntu.packages | 1 + labels/label-create-pdf.pl | 4 +++- 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm index 2bea1c6..905c531 100644 --- a/C4/Installer/PerlDependencies.pm +++ b/C4/Installer/PerlDependencies.pm @@ -699,6 +699,11 @@ our $PERL_DEPS = { 'required' => '0', 'min_ver' => '0.73', }, + 'Text::Bidi' => { + 'usage' => 'Label batch PDF', + 'required' => '0', + 'min_ver' => '0.03', + }, }; 1; diff --git a/install_misc/debian.packages b/install_misc/debian.packages index 9c31206..9b8ad6d 100644 --- a/install_misc/debian.packages +++ b/install_misc/debian.packages @@ -107,6 +107,7 @@ libtest-mockmodule-perl install libtest-strict-perl install libtest-warn-perl install libtest-yaml-valid-perl install +libtext-bidi-perl install libtext-charwidth-perl install libtext-csv-encoded-perl install libtext-csv-perl install diff --git a/install_misc/ubuntu.10.04.packages b/install_misc/ubuntu.10.04.packages index 17cfdc8..d849d6a 100644 --- a/install_misc/ubuntu.10.04.packages +++ b/install_misc/ubuntu.10.04.packages @@ -134,6 +134,7 @@ libtest-mockmodule-perl install libtest-strict-perl install libtest-warn-perl install libtest-yaml-valid-perl install +libtext-bidi-perl install libtext-charwidth-perl install libtext-csv-encoded-perl install libtext-csv-perl install diff --git a/install_misc/ubuntu.12.04.packages b/install_misc/ubuntu.12.04.packages index c63aaf3..8a535f0 100644 --- a/install_misc/ubuntu.12.04.packages +++ b/install_misc/ubuntu.12.04.packages @@ -139,6 +139,7 @@ libtest-mockmodule-perl install libtest-strict-perl install libtest-warn-perl install libtest-yaml-valid-perl install +libtext-bidi-perl install libtext-charwidth-perl install libtext-csv-encoded-perl install libtext-csv-perl install diff --git a/install_misc/ubuntu.packages b/install_misc/ubuntu.packages index aea298e..ff132c9 100644 --- a/install_misc/ubuntu.packages +++ b/install_misc/ubuntu.packages @@ -139,6 +139,7 @@ libtest-mockmodule-perl install libtest-strict-perl install libtest-warn-perl install libtest-yaml-valid-perl install +libtext-bidi-perl install libtext-charwidth-perl install libtext-csv-encoded-perl install libtext-csv-perl install diff --git a/labels/label-create-pdf.pl b/labels/label-create-pdf.pl index e23b068..f0a7290 100755 --- a/labels/label-create-pdf.pl +++ b/labels/label-create-pdf.pl @@ -26,6 +26,7 @@ use C4::Auth; use C4::Debug; use C4::Creators; use C4::Labels; +use Text::Bidi qw( log2vis ); my $cgi = new CGI; @@ -90,7 +91,8 @@ sub _print_text { foreach my $text_line (@$label_text) { $pdf->Font($text_line->{'font'}); $pdf->FontSize( $text_line->{'font_size'} ); - $pdf->Text( $text_line->{'text_llx'}, $text_line->{'text_lly'}, $text_line->{'line'} ); + my $visual = log2vis( $text_line->{'line'} ); + $pdf->Text( $text_line->{'text_llx'}, $text_line->{'text_lly'}, $visual ); } } -- 1.7.9.5