Apply bidi algorithm to the text in the worker
This commit is contained in:
parent
8d6565d1a8
commit
bd4434a7ea
@ -507,7 +507,12 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
||||
|
||||
getTextContent: function partialEvaluatorGetIRQueue(stream, resources, state) {
|
||||
if (!state) {
|
||||
state = [];
|
||||
var text = [];
|
||||
var dirs = [];
|
||||
state = {
|
||||
text: text,
|
||||
dirs: dirs
|
||||
};
|
||||
}
|
||||
|
||||
var self = this;
|
||||
@ -585,9 +590,6 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
||||
if ('Form' !== type.name)
|
||||
break;
|
||||
|
||||
// Add some spacing between the text here and the text of the
|
||||
// xForm.
|
||||
|
||||
state = this.getTextContent(
|
||||
xobj,
|
||||
xobj.dict.get('Resources') || resources,
|
||||
@ -596,7 +598,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
||||
break;
|
||||
} // switch
|
||||
if (chunk !== '') {
|
||||
state.push(chunk);
|
||||
var bidiText = PDFJS.bidi(chunk, -1);
|
||||
text.push(bidiText.str);
|
||||
dirs.push(bidiText.ltr);
|
||||
|
||||
chunk = '';
|
||||
}
|
||||
|
||||
|
@ -1930,13 +1930,14 @@ var TextLayerBuilder = function textLayerBuilder(textLayerDiv) {
|
||||
|
||||
var textDivs = this.textDivs;
|
||||
var textContent = this.textContent;
|
||||
var text = textContent.text;
|
||||
var dirs = textContent.dirs;
|
||||
|
||||
for (var i = 0; i < textContent.length; i++) {
|
||||
for (var i = 0; i < text.length; i++) {
|
||||
var textDiv = textDivs[i];
|
||||
var bidiText = PDFJS.bidi(textContent[i], -1);
|
||||
|
||||
textDiv.textContent = bidiText.str;
|
||||
textDiv.dir = bidiText.ltr ? 'ltr' : 'rtl';
|
||||
textDiv.textContent = text[i];
|
||||
textDiv.dir = dirs[i] ? 'ltr' : 'rtl';
|
||||
}
|
||||
|
||||
this.setupRenderLayoutTimer();
|
||||
|
Loading…
x
Reference in New Issue
Block a user