Merge pull request #7879 from rossj/highlight-fix
Make use of textAdvanceScale consistent during combineTextItems. Fix for #7878.
This commit is contained in:
		
						commit
						3b3a179486
					
				@ -1366,10 +1366,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (!font.vertical) {
 | 
					        if (!font.vertical) {
 | 
				
			||||||
          textChunk.lastAdvanceWidth = width;
 | 
					          textChunk.lastAdvanceWidth = width;
 | 
				
			||||||
          textChunk.width += width * textChunk.textAdvanceScale;
 | 
					          textChunk.width += width;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          textChunk.lastAdvanceHeight = height;
 | 
					          textChunk.lastAdvanceHeight = height;
 | 
				
			||||||
          textChunk.height += Math.abs(height * textChunk.textAdvanceScale);
 | 
					          textChunk.height += Math.abs(height);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return textChunk;
 | 
					        return textChunk;
 | 
				
			||||||
@ -1393,6 +1393,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
        if (!textContentItem.initialized) {
 | 
					        if (!textContentItem.initialized) {
 | 
				
			||||||
          return;
 | 
					          return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Do final text scaling
 | 
				
			||||||
 | 
					        textContentItem.width *= textContentItem.textAdvanceScale;
 | 
				
			||||||
 | 
					        textContentItem.height *= textContentItem.textAdvanceScale;
 | 
				
			||||||
        textContent.items.push(runBidiTransform(textContentItem));
 | 
					        textContent.items.push(runBidiTransform(textContentItem));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        textContentItem.initialized = false;
 | 
					        textContentItem.initialized = false;
 | 
				
			||||||
@ -1545,10 +1549,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
                  advance = items[j] * textState.fontSize / 1000;
 | 
					                  advance = items[j] * textState.fontSize / 1000;
 | 
				
			||||||
                  var breakTextRun = false;
 | 
					                  var breakTextRun = false;
 | 
				
			||||||
                  if (textState.font.vertical) {
 | 
					                  if (textState.font.vertical) {
 | 
				
			||||||
                    offset = advance *
 | 
					                    offset = advance;
 | 
				
			||||||
                      (textState.textHScale * textState.textMatrix[2] +
 | 
					                    textState.translateTextMatrix(0, offset);
 | 
				
			||||||
                       textState.textMatrix[3]);
 | 
					 | 
				
			||||||
                    textState.translateTextMatrix(0, advance);
 | 
					 | 
				
			||||||
                    breakTextRun = textContentItem.textRunBreakAllowed &&
 | 
					                    breakTextRun = textContentItem.textRunBreakAllowed &&
 | 
				
			||||||
                                   advance > textContentItem.fakeMultiSpaceMax;
 | 
					                                   advance > textContentItem.fakeMultiSpaceMax;
 | 
				
			||||||
                    if (!breakTextRun) {
 | 
					                    if (!breakTextRun) {
 | 
				
			||||||
@ -1557,10 +1559,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                  } else {
 | 
					                  } else {
 | 
				
			||||||
                    advance = -advance;
 | 
					                    advance = -advance;
 | 
				
			||||||
                    offset = advance * (
 | 
					                    offset = advance * textState.textHScale;
 | 
				
			||||||
                      textState.textHScale * textState.textMatrix[0] +
 | 
					                    textState.translateTextMatrix(offset, 0);
 | 
				
			||||||
                      textState.textMatrix[1]);
 | 
					 | 
				
			||||||
                    textState.translateTextMatrix(advance, 0);
 | 
					 | 
				
			||||||
                    breakTextRun = textContentItem.textRunBreakAllowed &&
 | 
					                    breakTextRun = textContentItem.textRunBreakAllowed &&
 | 
				
			||||||
                                   advance > textContentItem.fakeMultiSpaceMax;
 | 
					                                   advance > textContentItem.fakeMultiSpaceMax;
 | 
				
			||||||
                    if (!breakTextRun) {
 | 
					                    if (!breakTextRun) {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								test/pdfs/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								test/pdfs/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -269,3 +269,4 @@
 | 
				
			|||||||
!annotation-button-widget.pdf
 | 
					!annotation-button-widget.pdf
 | 
				
			||||||
!zero_descent.pdf
 | 
					!zero_descent.pdf
 | 
				
			||||||
!operator-in-TJ-array.pdf
 | 
					!operator-in-TJ-array.pdf
 | 
				
			||||||
 | 
					!issue7878.pdf
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								test/pdfs/issue7878.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								test/pdfs/issue7878.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@ -3346,5 +3346,12 @@
 | 
				
			|||||||
       "link": false,
 | 
					       "link": false,
 | 
				
			||||||
       "rounds": 1,
 | 
					       "rounds": 1,
 | 
				
			||||||
       "type": "text"
 | 
					       "type": "text"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {  "id": "issue7878",
 | 
				
			||||||
 | 
					       "file": "pdfs/issue7878.pdf",
 | 
				
			||||||
 | 
					       "md5": "59194e30037e8c09ae846ddd0ace4c81",
 | 
				
			||||||
 | 
					       "link": false,
 | 
				
			||||||
 | 
					       "rounds": 1,
 | 
				
			||||||
 | 
					       "type": "text"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user