Add PDFString conversion
This commit is contained in:
		
							parent
							
								
									768554afd8
								
							
						
					
					
						commit
						92a7468e9a
					
				
							
								
								
									
										38
									
								
								pdf.js
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								pdf.js
									
									
									
									
									
								
							@ -84,6 +84,31 @@ function stringToBytes(str) {
 | 
				
			|||||||
  return bytes;
 | 
					  return bytes;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var PDFStringTranslateTable = [
 | 
				
			||||||
 | 
					  ,,,,,,,,,,,,,,,,,,,,,,,, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA,
 | 
				
			||||||
 | 
					  0x2DC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 | 
				
			||||||
 | 
					  ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
 | 
				
			||||||
 | 
					  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,
 | 
				
			||||||
 | 
					  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152,
 | 
				
			||||||
 | 
					  0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E,, 0x20AC
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function stringToPDFString(str) {
 | 
				
			||||||
 | 
					  var i, n = str.length, str2 = '';
 | 
				
			||||||
 | 
					  if (str[0] === '\xFE' && str[1] === '\xFF') {
 | 
				
			||||||
 | 
					    // UTF16BE BOM
 | 
				
			||||||
 | 
					    for (i = 2; i < n; i += 2)
 | 
				
			||||||
 | 
					      str2 += String.fromCharCode(
 | 
				
			||||||
 | 
					        (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1));
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    for (i = 0; i < n; ++i) {
 | 
				
			||||||
 | 
					      var code = PDFStringTranslateTable[str.charCodeAt(i)];
 | 
				
			||||||
 | 
					      str2 += code ? String.fromCharCode(code) : str.charAt(i);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return str2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var Stream = (function() {
 | 
					var Stream = (function() {
 | 
				
			||||||
  function constructor(arrayBuffer, start, length, dict) {
 | 
					  function constructor(arrayBuffer, start, length, dict) {
 | 
				
			||||||
    this.bytes = new Uint8Array(arrayBuffer);
 | 
					    this.bytes = new Uint8Array(arrayBuffer);
 | 
				
			||||||
@ -3455,17 +3480,6 @@ var Catalog = (function() {
 | 
				
			|||||||
      return shadow(this, 'toplevelPagesDict', xrefObj);
 | 
					      return shadow(this, 'toplevelPagesDict', xrefObj);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    get documentOutline() {
 | 
					    get documentOutline() {
 | 
				
			||||||
      function convertIfUnicode(str) {
 | 
					 | 
				
			||||||
        if (str[0] === '\xFE' && str[1] === '\xFF') {
 | 
					 | 
				
			||||||
          // UTF16BE BOM
 | 
					 | 
				
			||||||
          var i, n = str.length, str2 = '';
 | 
					 | 
				
			||||||
          for (i = 2; i < n; i += 2)
 | 
					 | 
				
			||||||
            str2 += String.fromCharCode(
 | 
					 | 
				
			||||||
              (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1));
 | 
					 | 
				
			||||||
          str = str2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return str;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      var obj = this.catDict.get('Outlines');
 | 
					      var obj = this.catDict.get('Outlines');
 | 
				
			||||||
      var xref = this.xref;
 | 
					      var xref = this.xref;
 | 
				
			||||||
      var root = { items: [] };
 | 
					      var root = { items: [] };
 | 
				
			||||||
@ -3493,7 +3507,7 @@ var Catalog = (function() {
 | 
				
			|||||||
            var title = xref.fetchIfRef(outlineDict.get('Title'));
 | 
					            var title = xref.fetchIfRef(outlineDict.get('Title'));
 | 
				
			||||||
            var outlineItem = {
 | 
					            var outlineItem = {
 | 
				
			||||||
              dest: dest,
 | 
					              dest: dest,
 | 
				
			||||||
              title: convertIfUnicode(title),
 | 
					              title: stringToPDFString(title),
 | 
				
			||||||
              color: outlineDict.get('C') || [0, 0, 0],
 | 
					              color: outlineDict.get('C') || [0, 0, 0],
 | 
				
			||||||
              count: outlineDict.get('Count'),
 | 
					              count: outlineDict.get('Count'),
 | 
				
			||||||
              bold: !!(outlineDict.get('F') & 2),
 | 
					              bold: !!(outlineDict.get('F') & 2),
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user