diff --git a/src/evaluator.js b/src/evaluator.js index dd36aa5e4..f4fdd812e 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -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 = ''; } diff --git a/web/viewer.js b/web/viewer.js index 2764a3648..060f2eae4 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -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();