Subtract stream.start when getting the startXRef property for documents with a Linearization dictionary (issue 11330)
				
					
				
			For documents with a Linearization dictionary the computed `startXRef` position will be relative to the raw file, rather than the actual PDF document itself (which begins with `%PDF-`). Hence it's necessary to subtract `stream.start` in this case, since otherwise the `XRef.readXRef` method will increment the position too far resulting in parsing errors.
This commit is contained in:
		
							parent
							
								
									f7aafcb218
								
							
						
					
					
						commit
						9199b02a42
					
				@ -453,7 +453,7 @@ class PDFDocument {
 | 
				
			|||||||
      // Find the end of the first object.
 | 
					      // Find the end of the first object.
 | 
				
			||||||
      stream.reset();
 | 
					      stream.reset();
 | 
				
			||||||
      if (find(stream, 'endobj', 1024)) {
 | 
					      if (find(stream, 'endobj', 1024)) {
 | 
				
			||||||
        startXRef = stream.pos + 6;
 | 
					        startXRef = (stream.pos + 6) - stream.start;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      // Find `startxref` by checking backwards from the end of the file.
 | 
					      // Find `startxref` by checking backwards from the end of the file.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								test/pdfs/issue11330.pdf.link
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/pdfs/issue11330.pdf.link
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					https://github.com/mozilla/pdf.js/files/3844109/9069_10755570.1.pdf
 | 
				
			||||||
@ -2992,6 +2992,14 @@
 | 
				
			|||||||
       "lastPage": 1,
 | 
					       "lastPage": 1,
 | 
				
			||||||
       "type": "eq"
 | 
					       "type": "eq"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    {  "id": "issue11330",
 | 
				
			||||||
 | 
					       "file": "pdfs/issue11330.pdf",
 | 
				
			||||||
 | 
					       "md5": "03a8a53d4b0dc825e08554f5c0178308",
 | 
				
			||||||
 | 
					       "rounds": 1,
 | 
				
			||||||
 | 
					       "link": true,
 | 
				
			||||||
 | 
					       "lastPage": 1,
 | 
				
			||||||
 | 
					       "type": "eq"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {  "id": "issue4890",
 | 
					    {  "id": "issue4890",
 | 
				
			||||||
       "file": "pdfs/issue4890.pdf",
 | 
					       "file": "pdfs/issue4890.pdf",
 | 
				
			||||||
       "md5": "1666feb4cd26318c2bdbea6a175dce87",
 | 
					       "md5": "1666feb4cd26318c2bdbea6a175dce87",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user