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