Refactors getTextContent return value
This commit is contained in:
		
							parent
							
								
									11e0ab3530
								
							
						
					
					
						commit
						96fff4cc74
					
				@ -597,24 +597,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    getTextContent: function PartialEvaluator_getTextContent(
 | 
					    getTextContent: function PartialEvaluator_getTextContent(
 | 
				
			||||||
                                                    stream, resources, state) {
 | 
					                                                 stream, resources, textState) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      var bidiTexts;
 | 
					      textState = textState || new TextState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var bidiTexts = [];
 | 
				
			||||||
      var SPACE_FACTOR = 0.35;
 | 
					      var SPACE_FACTOR = 0.35;
 | 
				
			||||||
      var MULTI_SPACE_FACTOR = 1.5;
 | 
					      var MULTI_SPACE_FACTOR = 1.5;
 | 
				
			||||||
      var textState;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (!state) {
 | 
					 | 
				
			||||||
        textState = new TextState();
 | 
					 | 
				
			||||||
        bidiTexts = [];
 | 
					 | 
				
			||||||
        state = {
 | 
					 | 
				
			||||||
          textState: textState,
 | 
					 | 
				
			||||||
          bidiTexts: bidiTexts
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      } else {
 | 
					 | 
				
			||||||
        bidiTexts = state.bidiTexts;
 | 
					 | 
				
			||||||
        textState = state.textState;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      var self = this;
 | 
					      var self = this;
 | 
				
			||||||
      var xref = this.xref;
 | 
					      var xref = this.xref;
 | 
				
			||||||
@ -734,11 +723,12 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
              if ('Form' !== type.name)
 | 
					              if ('Form' !== type.name)
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              state = this.getTextContent(
 | 
					              var formTexts = this.getTextContent(
 | 
				
			||||||
                xobj,
 | 
					                xobj,
 | 
				
			||||||
                xobj.dict.get('Resources') || resources,
 | 
					                xobj.dict.get('Resources') || resources,
 | 
				
			||||||
                state
 | 
					                textState
 | 
				
			||||||
              );
 | 
					              );
 | 
				
			||||||
 | 
					              Util.concatenateToArray(bidiTexts, formTexts);
 | 
				
			||||||
              break;
 | 
					              break;
 | 
				
			||||||
            case OPS.setGState:
 | 
					            case OPS.setGState:
 | 
				
			||||||
              var dictName = args[0];
 | 
					              var dictName = args[0];
 | 
				
			||||||
@ -758,7 +748,11 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
          } // switch
 | 
					          } // switch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if (chunk !== '') {
 | 
					          if (chunk !== '') {
 | 
				
			||||||
            var bidiText = PDFJS.bidi(chunk, -1, font.vertical);
 | 
					            var bidiResult = PDFJS.bidi(chunk, -1, font.vertical);
 | 
				
			||||||
 | 
					            var bidiText = {
 | 
				
			||||||
 | 
					              str: bidiResult.str,
 | 
				
			||||||
 | 
					              dir: bidiResult.dir
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
            var renderParams = textState.calcRenderParams(preprocessor.ctm);
 | 
					            var renderParams = textState.calcRenderParams(preprocessor.ctm);
 | 
				
			||||||
            bidiText.x = renderParams.renderMatrix[4] - (textState.fontSize *
 | 
					            bidiText.x = renderParams.renderMatrix[4] - (textState.fontSize *
 | 
				
			||||||
                           renderParams.vScale * Math.sin(renderParams.angle));
 | 
					                           renderParams.vScale * Math.sin(renderParams.angle));
 | 
				
			||||||
@ -775,13 +769,15 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
              bidiText.x += renderParams.vScale / 2;
 | 
					              bidiText.x += renderParams.vScale / 2;
 | 
				
			||||||
              bidiText.y -= renderParams.vScale;
 | 
					              bidiText.y -= renderParams.vScale;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            bidiText.angle = renderParams.angle;
 | 
				
			||||||
 | 
					            bidiText.size = fontHeight;
 | 
				
			||||||
            bidiTexts.push(bidiText);
 | 
					            bidiTexts.push(bidiText);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            chunk = '';
 | 
					            chunk = '';
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
      } // while
 | 
					      } // while
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return state;
 | 
					      return bidiTexts;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    extractDataStructures: function
 | 
					    extractDataStructures: function
 | 
				
			||||||
 | 
				
			|||||||
@ -210,7 +210,7 @@ SimpleTextLayerBuilder.prototype = {
 | 
				
			|||||||
    ctx.stroke();
 | 
					    ctx.stroke();
 | 
				
			||||||
    ctx.fill();
 | 
					    ctx.fill();
 | 
				
			||||||
    ctx.restore();
 | 
					    ctx.restore();
 | 
				
			||||||
    var textContent = this.textContent.bidiTexts[this.textCounter].str;
 | 
					    var textContent = this.textContent[this.textCounter].str;
 | 
				
			||||||
    ctx.font = fontHeight + 'px ' + geom.fontFamily;
 | 
					    ctx.font = fontHeight + 'px ' + geom.fontFamily;
 | 
				
			||||||
    ctx.fillStyle = 'black';
 | 
					    ctx.fillStyle = 'black';
 | 
				
			||||||
    ctx.fillText(textContent, geom.x, geom.y);
 | 
					    ctx.fillText(textContent, geom.x, geom.y);
 | 
				
			||||||
 | 
				
			|||||||
@ -150,9 +150,7 @@ var PDFFindController = {
 | 
				
			|||||||
    var self = this;
 | 
					    var self = this;
 | 
				
			||||||
    function extractPageText(pageIndex) {
 | 
					    function extractPageText(pageIndex) {
 | 
				
			||||||
      self.pdfPageSource.pages[pageIndex].getTextContent().then(
 | 
					      self.pdfPageSource.pages[pageIndex].getTextContent().then(
 | 
				
			||||||
        function textContentResolved(data) {
 | 
					        function textContentResolved(bidiTexts) {
 | 
				
			||||||
          // Build the find string.
 | 
					 | 
				
			||||||
          var bidiTexts = data.bidiTexts;
 | 
					 | 
				
			||||||
          var str = '';
 | 
					          var str = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          for (var i = 0; i < bidiTexts.length; i++) {
 | 
					          for (var i = 0; i < bidiTexts.length; i++) {
 | 
				
			||||||
 | 
				
			|||||||
@ -62,7 +62,7 @@ var TextLayerBuilder = function textLayerBuilder(options) {
 | 
				
			|||||||
  this.renderLayer = function textLayerBuilderRenderLayer() {
 | 
					  this.renderLayer = function textLayerBuilderRenderLayer() {
 | 
				
			||||||
    var self = this;
 | 
					    var self = this;
 | 
				
			||||||
    var textDivs = this.textDivs;
 | 
					    var textDivs = this.textDivs;
 | 
				
			||||||
    var bidiTexts = this.textContent.bidiTexts;
 | 
					    var bidiTexts = this.textContent;
 | 
				
			||||||
    var textLayerDiv = this.textLayerDiv;
 | 
					    var textLayerDiv = this.textLayerDiv;
 | 
				
			||||||
    var canvas = document.createElement('canvas');
 | 
					    var canvas = document.createElement('canvas');
 | 
				
			||||||
    var ctx = canvas.getContext('2d');
 | 
					    var ctx = canvas.getContext('2d');
 | 
				
			||||||
@ -149,7 +149,7 @@ var TextLayerBuilder = function textLayerBuilder(options) {
 | 
				
			|||||||
    this.divContentDone = true;
 | 
					    this.divContentDone = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var textDivs = this.textDivs;
 | 
					    var textDivs = this.textDivs;
 | 
				
			||||||
    var bidiTexts = this.textContent.bidiTexts;
 | 
					    var bidiTexts = this.textContent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (var i = 0; i < bidiTexts.length; i++) {
 | 
					    for (var i = 0; i < bidiTexts.length; i++) {
 | 
				
			||||||
      var bidiText = bidiTexts[i];
 | 
					      var bidiText = bidiTexts[i];
 | 
				
			||||||
@ -181,7 +181,7 @@ var TextLayerBuilder = function textLayerBuilder(options) {
 | 
				
			|||||||
  this.convertMatches = function textLayerBuilderConvertMatches(matches) {
 | 
					  this.convertMatches = function textLayerBuilderConvertMatches(matches) {
 | 
				
			||||||
    var i = 0;
 | 
					    var i = 0;
 | 
				
			||||||
    var iIndex = 0;
 | 
					    var iIndex = 0;
 | 
				
			||||||
    var bidiTexts = this.textContent.bidiTexts;
 | 
					    var bidiTexts = this.textContent;
 | 
				
			||||||
    var end = bidiTexts.length - 1;
 | 
					    var end = bidiTexts.length - 1;
 | 
				
			||||||
    var queryLen = PDFFindController === null ?
 | 
					    var queryLen = PDFFindController === null ?
 | 
				
			||||||
        0 : PDFFindController.state.query.length;
 | 
					        0 : PDFFindController.state.query.length;
 | 
				
			||||||
@ -240,7 +240,7 @@ var TextLayerBuilder = function textLayerBuilder(options) {
 | 
				
			|||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var bidiTexts = this.textContent.bidiTexts;
 | 
					    var bidiTexts = this.textContent;
 | 
				
			||||||
    var textDivs = this.textDivs;
 | 
					    var textDivs = this.textDivs;
 | 
				
			||||||
    var prevEnd = null;
 | 
					    var prevEnd = null;
 | 
				
			||||||
    var isSelectedPage = PDFFindController === null ?
 | 
					    var isSelectedPage = PDFFindController === null ?
 | 
				
			||||||
@ -355,7 +355,7 @@ var TextLayerBuilder = function textLayerBuilder(options) {
 | 
				
			|||||||
    // Clear out all matches.
 | 
					    // Clear out all matches.
 | 
				
			||||||
    var matches = this.matches;
 | 
					    var matches = this.matches;
 | 
				
			||||||
    var textDivs = this.textDivs;
 | 
					    var textDivs = this.textDivs;
 | 
				
			||||||
    var bidiTexts = this.textContent.bidiTexts;
 | 
					    var bidiTexts = this.textContent;
 | 
				
			||||||
    var clearedUntilDivIdx = -1;
 | 
					    var clearedUntilDivIdx = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Clear out all current matches.
 | 
					    // Clear out all current matches.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user