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 NOTE: I suggest changing the mapping for 'HO' font on koha-conf.xml, from DejaVuSans-Oblique.ttf to DejaVuSans.ttf to view 'title' chars 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 (unless you change mapping as suggested on 2. ) Hebrew looks good. Rebased and move use of new dependency to Labels.pm Rebased on master Signed-off-by: Karam Qubsi <karamqubsi@gmail.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Tested with the help of Bernardo. With the patch the characters of RTL strings appear in the correct order in the generated PDF files. Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
b47e0360d8
commit
0ac72275aa
6 changed files with 12 additions and 0 deletions
|
@ -702,11 +702,17 @@ our $PERL_DEPS = {
|
|||
'required' => '0',
|
||||
'min_ver' => '5.836',
|
||||
},
|
||||
|
||||
'Test::DBIx::Class' => {
|
||||
'usage' => 'Testing modules utilising DBIx::Class',
|
||||
'required' => '0',
|
||||
'min_ver' => '0.42',
|
||||
},
|
||||
'Text::Bidi' => {
|
||||
'usage' => 'Label batch PDF',
|
||||
'required' => '0',
|
||||
'min_ver' => '0.03',
|
||||
},
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
|
@ -8,6 +8,7 @@ use Algorithm::CheckDigits;
|
|||
use Text::CSV_XS;
|
||||
use Data::Dumper;
|
||||
use Library::CallNumber::LC;
|
||||
use Text::Bidi qw( log2vis );
|
||||
|
||||
use C4::Context;
|
||||
use C4::Debug;
|
||||
|
@ -444,6 +445,7 @@ sub draw_label_text {
|
|||
foreach my $line (@label_lines) {
|
||||
next LABEL_LINES if $line eq '';
|
||||
my $fontName = C4::Creators::PDF->Font($font);
|
||||
$line = log2vis( $line );
|
||||
my $string_width = C4::Creators::PDF->StrWidth($line, $fontName, $self->{'font_size'});
|
||||
if ($self->{'justify'} eq 'R') {
|
||||
$text_llx = $params{'llx'} + $self->{'width'} - ($self->{'left_text_margin'} + $string_width);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue