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>
'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;
use Text::CSV_XS;
use Data::Dumper;
use Library::CallNumber::LC;
+use Text::Bidi qw( log2vis );
use C4::Context;
use C4::Debug;
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);
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
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
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
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