Committed by
David PHAM-VAN
Add an option to disable bidirectional support
Showing
5 changed files
with
9 additions
and
3 deletions
@@ -6,6 +6,7 @@ | @@ -6,6 +6,7 @@ | ||
6 | - Add support for existing reference objects | 6 | - Add support for existing reference objects |
7 | - Update barcode golden pdf | 7 | - Update barcode golden pdf |
8 | - Add support for hyphenation [ilja] | 8 | - Add support for hyphenation [ilja] |
9 | +- Add an option to disable bidirectional support [Olzhas-Suleimen] | ||
9 | 10 | ||
10 | ## 3.10.7 | 11 | ## 3.10.7 |
11 | 12 |
@@ -22,6 +22,7 @@ import 'dart:typed_data'; | @@ -22,6 +22,7 @@ import 'dart:typed_data'; | ||
22 | 22 | ||
23 | import 'package:meta/meta.dart'; | 23 | import 'package:meta/meta.dart'; |
24 | 24 | ||
25 | +import '../options.dart'; | ||
25 | import 'bidi_utils.dart' as bidi; | 26 | import 'bidi_utils.dart' as bidi; |
26 | import 'font_metrics.dart'; | 27 | import 'font_metrics.dart'; |
27 | 28 | ||
@@ -323,7 +324,7 @@ class TtfParser { | @@ -323,7 +324,7 @@ class TtfParser { | ||
323 | /// Having both the unicode and the isolated form code | 324 | /// Having both the unicode and the isolated form code |
324 | /// point to the same glyph index because some fonts | 325 | /// point to the same glyph index because some fonts |
325 | /// do not have a glyph for the isolated form.\ | 326 | /// do not have a glyph for the isolated form.\ |
326 | - if (bidi.basicToIsolatedMappings.containsKey(c)) { | 327 | + if (useBidi && bidi.basicToIsolatedMappings.containsKey(c)) { |
327 | charToGlyphIndexMap[bidi.basicToIsolatedMappings[c]!] = glyphIndex; | 328 | charToGlyphIndexMap[bidi.basicToIsolatedMappings[c]!] = glyphIndex; |
328 | } | 329 | } |
329 | } | 330 | } |
@@ -28,6 +28,7 @@ import '../format/name.dart'; | @@ -28,6 +28,7 @@ import '../format/name.dart'; | ||
28 | import '../format/num.dart'; | 28 | import '../format/num.dart'; |
29 | import '../format/stream.dart'; | 29 | import '../format/stream.dart'; |
30 | import '../format/string.dart'; | 30 | import '../format/string.dart'; |
31 | +import '../options.dart'; | ||
31 | import 'font.dart'; | 32 | import 'font.dart'; |
32 | import 'font_descriptor.dart'; | 33 | import 'font_descriptor.dart'; |
33 | import 'object.dart'; | 34 | import 'object.dart'; |
@@ -78,7 +79,7 @@ class PdfTtfFont extends PdfFont { | @@ -78,7 +79,7 @@ class PdfTtfFont extends PdfFont { | ||
78 | return PdfFontMetrics.zero; | 79 | return PdfFontMetrics.zero; |
79 | } | 80 | } |
80 | 81 | ||
81 | - if (bidi.isArabicDiacriticValue(charCode)) { | 82 | + if (useBidi && bidi.isArabicDiacriticValue(charCode)) { |
82 | final metric = font.glyphInfoMap[g] ?? PdfFontMetrics.zero; | 83 | final metric = font.glyphInfoMap[g] ?? PdfFontMetrics.zero; |
83 | return metric.copyWith(advanceWidth: 0); | 84 | return metric.copyWith(advanceWidth: 0); |
84 | } | 85 | } |
pdf/lib/src/pdf/options.dart
0 → 100644
@@ -20,6 +20,7 @@ import 'package:meta/meta.dart'; | @@ -20,6 +20,7 @@ import 'package:meta/meta.dart'; | ||
20 | 20 | ||
21 | import '../../pdf.dart'; | 21 | import '../../pdf.dart'; |
22 | import '../pdf/font/bidi_utils.dart' as bidi; | 22 | import '../pdf/font/bidi_utils.dart' as bidi; |
23 | +import '../pdf/options.dart'; | ||
23 | import 'annotations.dart'; | 24 | import 'annotations.dart'; |
24 | import 'basic.dart'; | 25 | import 'basic.dart'; |
25 | import 'document.dart'; | 26 | import 'document.dart'; |
@@ -928,7 +929,7 @@ class RichText extends Widget with SpanningWidget { | @@ -928,7 +929,7 @@ class RichText extends Widget with SpanningWidget { | ||
928 | final space = | 929 | final space = |
929 | font.stringMetrics(' ') * (style.fontSize! * textScaleFactor); | 930 | font.stringMetrics(' ') * (style.fontSize! * textScaleFactor); |
930 | 931 | ||
931 | - final spanLines = (_textDirection == TextDirection.rtl | 932 | + final spanLines = (useBidi && _textDirection == TextDirection.rtl |
932 | ? bidi.logicalToVisual(span.text!) | 933 | ? bidi.logicalToVisual(span.text!) |
933 | : span.text)! | 934 | : span.text)! |
934 | .split('\n'); | 935 | .split('\n'); |
-
Please register or login to post a comment