/ * *
* @ licstart The following is the entire license notice for the
* Javascript code in this page
*
* Copyright 2018 Mozilla Foundation
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
*
* @ licend The above is the entire license notice for the
* Javascript code in this page
* /
'use strict' ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . unreachable = exports . warn = exports . utf8StringToString = exports . stringToUTF8String = exports . stringToPDFString = exports . stringToBytes = exports . string32 = exports . shadow = exports . setVerbosityLevel = exports . URL = exports . ReadableStream = exports . removeNullCharacters = exports . readUint32 = exports . readUint16 = exports . readInt8 = exports . log2 = exports . isEvalSupported = exports . isLittleEndian = exports . createValidAbsoluteUrl = exports . isSameOrigin = exports . isSpace = exports . isString = exports . isNum = exports . isEmptyObj = exports . isBool = exports . isArrayBuffer = exports . info = exports . getVerbosityLevel = exports . getLookupTableFactory = exports . getInheritableProperty = exports . deprecated = exports . createObjectURL = exports . createPromiseCapability = exports . bytesToString = exports . assert = exports . arraysToBytes = exports . arrayByteLength = exports . FormatError = exports . XRefParseException = exports . toRomanNumerals = exports . Util = exports . UnknownErrorException = exports . UnexpectedResponseException = exports . TextRenderingMode = exports . StreamType = exports . PermissionFlag = exports . PasswordResponses = exports . PasswordException = exports . NativeImageDecoding = exports . MissingPDFException = exports . MissingDataException = exports . InvalidPDFException = exports . AbortException = exports . CMapCompressionType = exports . ImageKind = exports . FontType = exports . AnnotationType = exports . AnnotationFlag = exports . AnnotationFieldFlag = exports . AnnotationBorderStyleType = exports . UNSUPPORTED _FEATURES = exports . VerbosityLevel = exports . OPS = exports . IDENTITY _MATRIX = exports . FONT _IDENTITY _MATRIX = undefined ;
var _typeof = typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ? function ( obj ) { return typeof obj ; } : function ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ;
require ( './compatibility' ) ;
var _streams _polyfill = require ( './streams_polyfill' ) ;
var _url _polyfill = require ( './url_polyfill' ) ;
var IDENTITY _MATRIX = [ 1 , 0 , 0 , 1 , 0 , 0 ] ;
var FONT _IDENTITY _MATRIX = [ 0.001 , 0 , 0 , 0.001 , 0 , 0 ] ;
var NativeImageDecoding = {
NONE : 'none' ,
DECODE : 'decode' ,
DISPLAY : 'display'
} ;
var PermissionFlag = {
PRINT : 0x04 ,
MODIFY _CONTENTS : 0x08 ,
COPY : 0x10 ,
MODIFY _ANNOTATIONS : 0x20 ,
FILL _INTERACTIVE _FORMS : 0x100 ,
COPY _FOR _ACCESSIBILITY : 0x200 ,
ASSEMBLE : 0x400 ,
PRINT _HIGH _QUALITY : 0x800
} ;
var TextRenderingMode = {
FILL : 0 ,
STROKE : 1 ,
FILL _STROKE : 2 ,
INVISIBLE : 3 ,
FILL _ADD _TO _PATH : 4 ,
STROKE _ADD _TO _PATH : 5 ,
FILL _STROKE _ADD _TO _PATH : 6 ,
ADD _TO _PATH : 7 ,
FILL _STROKE _MASK : 3 ,
ADD _TO _PATH _FLAG : 4
} ;
var ImageKind = {
GRAYSCALE _1BPP : 1 ,
RGB _24BPP : 2 ,
RGBA _32BPP : 3
} ;
var AnnotationType = {
TEXT : 1 ,
LINK : 2 ,
FREETEXT : 3 ,
LINE : 4 ,
SQUARE : 5 ,
CIRCLE : 6 ,
POLYGON : 7 ,
POLYLINE : 8 ,
HIGHLIGHT : 9 ,
UNDERLINE : 10 ,
SQUIGGLY : 11 ,
STRIKEOUT : 12 ,
STAMP : 13 ,
CARET : 14 ,
INK : 15 ,
POPUP : 16 ,
FILEATTACHMENT : 17 ,
SOUND : 18 ,
MOVIE : 19 ,
WIDGET : 20 ,
SCREEN : 21 ,
PRINTERMARK : 22 ,
TRAPNET : 23 ,
WATERMARK : 24 ,
THREED : 25 ,
REDACT : 26
} ;
var AnnotationFlag = {
INVISIBLE : 0x01 ,
HIDDEN : 0x02 ,
PRINT : 0x04 ,
NOZOOM : 0x08 ,
NOROTATE : 0x10 ,
NOVIEW : 0x20 ,
READONLY : 0x40 ,
LOCKED : 0x80 ,
TOGGLENOVIEW : 0x100 ,
LOCKEDCONTENTS : 0x200
} ;
var AnnotationFieldFlag = {
READONLY : 0x0000001 ,
REQUIRED : 0x0000002 ,
NOEXPORT : 0x0000004 ,
MULTILINE : 0x0001000 ,
PASSWORD : 0x0002000 ,
NOTOGGLETOOFF : 0x0004000 ,
RADIO : 0x0008000 ,
PUSHBUTTON : 0x0010000 ,
COMBO : 0x0020000 ,
EDIT : 0x0040000 ,
SORT : 0x0080000 ,
FILESELECT : 0x0100000 ,
MULTISELECT : 0x0200000 ,
DONOTSPELLCHECK : 0x0400000 ,
DONOTSCROLL : 0x0800000 ,
COMB : 0x1000000 ,
RICHTEXT : 0x2000000 ,
RADIOSINUNISON : 0x2000000 ,
COMMITONSELCHANGE : 0x4000000
} ;
var AnnotationBorderStyleType = {
SOLID : 1 ,
DASHED : 2 ,
BEVELED : 3 ,
INSET : 4 ,
UNDERLINE : 5
} ;
var StreamType = {
UNKNOWN : 0 ,
FLATE : 1 ,
LZW : 2 ,
DCT : 3 ,
JPX : 4 ,
JBIG : 5 ,
A85 : 6 ,
AHX : 7 ,
CCF : 8 ,
RL : 9
} ;
var FontType = {
UNKNOWN : 0 ,
TYPE1 : 1 ,
TYPE1C : 2 ,
CIDFONTTYPE0 : 3 ,
CIDFONTTYPE0C : 4 ,
TRUETYPE : 5 ,
CIDFONTTYPE2 : 6 ,
TYPE3 : 7 ,
OPENTYPE : 8 ,
TYPE0 : 9 ,
MMTYPE1 : 10
} ;
var VerbosityLevel = {
ERRORS : 0 ,
WARNINGS : 1 ,
INFOS : 5
} ;
var CMapCompressionType = {
NONE : 0 ,
BINARY : 1 ,
STREAM : 2
} ;
var OPS = {
dependency : 1 ,
setLineWidth : 2 ,
setLineCap : 3 ,
setLineJoin : 4 ,
setMiterLimit : 5 ,
setDash : 6 ,
setRenderingIntent : 7 ,
setFlatness : 8 ,
setGState : 9 ,
save : 10 ,
restore : 11 ,
transform : 12 ,
moveTo : 13 ,
lineTo : 14 ,
curveTo : 15 ,
curveTo2 : 16 ,
curveTo3 : 17 ,
closePath : 18 ,
rectangle : 19 ,
stroke : 20 ,
closeStroke : 21 ,
fill : 22 ,
eoFill : 23 ,
fillStroke : 24 ,
eoFillStroke : 25 ,
closeFillStroke : 26 ,
closeEOFillStroke : 27 ,
endPath : 28 ,
clip : 29 ,
eoClip : 30 ,
beginText : 31 ,
endText : 32 ,
setCharSpacing : 33 ,
setWordSpacing : 34 ,
setHScale : 35 ,
setLeading : 36 ,
setFont : 37 ,
setTextRenderingMode : 38 ,
setTextRise : 39 ,
moveText : 40 ,
setLeadingMoveText : 41 ,
setTextMatrix : 42 ,
nextLine : 43 ,
showText : 44 ,
showSpacedText : 45 ,
nextLineShowText : 46 ,
nextLineSetSpacingShowText : 47 ,
setCharWidth : 48 ,
setCharWidthAndBounds : 49 ,
setStrokeColorSpace : 50 ,
setFillColorSpace : 51 ,
setStrokeColor : 52 ,
setStrokeColorN : 53 ,
setFillColor : 54 ,
setFillColorN : 55 ,
setStrokeGray : 56 ,
setFillGray : 57 ,
setStrokeRGBColor : 58 ,
setFillRGBColor : 59 ,
setStrokeCMYKColor : 60 ,
setFillCMYKColor : 61 ,
shadingFill : 62 ,
beginInlineImage : 63 ,
beginImageData : 64 ,
endInlineImage : 65 ,
paintXObject : 66 ,
markPoint : 67 ,
markPointProps : 68 ,
beginMarkedContent : 69 ,
beginMarkedContentProps : 70 ,
endMarkedContent : 71 ,
beginCompat : 72 ,
endCompat : 73 ,
paintFormXObjectBegin : 74 ,
paintFormXObjectEnd : 75 ,
beginGroup : 76 ,
endGroup : 77 ,
beginAnnotations : 78 ,
endAnnotations : 79 ,
beginAnnotation : 80 ,
endAnnotation : 81 ,
paintJpegXObject : 82 ,
paintImageMaskXObject : 83 ,
paintImageMaskXObjectGroup : 84 ,
paintImageXObject : 85 ,
paintInlineImageXObject : 86 ,
paintInlineImageXObjectGroup : 87 ,
paintImageXObjectRepeat : 88 ,
paintImageMaskXObjectRepeat : 89 ,
paintSolidColorImageMask : 90 ,
constructPath : 91
} ;
var UNSUPPORTED _FEATURES = {
unknown : 'unknown' ,
forms : 'forms' ,
javaScript : 'javaScript' ,
smask : 'smask' ,
shadingPattern : 'shadingPattern' ,
font : 'font'
} ;
var PasswordResponses = {
NEED _PASSWORD : 1 ,
INCORRECT _PASSWORD : 2
} ;
var verbosity = VerbosityLevel . WARNINGS ;
function setVerbosityLevel ( level ) {
if ( Number . isInteger ( level ) ) {
verbosity = level ;
}
}
function getVerbosityLevel ( ) {
return verbosity ;
}
function info ( msg ) {
if ( verbosity >= VerbosityLevel . INFOS ) {
console . log ( 'Info: ' + msg ) ;
}
}
function warn ( msg ) {
if ( verbosity >= VerbosityLevel . WARNINGS ) {
console . log ( 'Warning: ' + msg ) ;
}
}
function deprecated ( details ) {
console . log ( 'Deprecated API usage: ' + details ) ;
}
function unreachable ( msg ) {
throw new Error ( msg ) ;
}
function assert ( cond , msg ) {
if ( ! cond ) {
unreachable ( msg ) ;
}
}
function isSameOrigin ( baseUrl , otherUrl ) {
try {
var base = new _url _polyfill . URL ( baseUrl ) ;
if ( ! base . origin || base . origin === 'null' ) {
return false ;
}
} catch ( e ) {
return false ;
}
var other = new _url _polyfill . URL ( otherUrl , base ) ;
return base . origin === other . origin ;
}
function _isValidProtocol ( url ) {
if ( ! url ) {
return false ;
}
switch ( url . protocol ) {
case 'http:' :
case 'https:' :
case 'ftp:' :
case 'mailto:' :
case 'tel:' :
return true ;
default :
return false ;
}
}
function createValidAbsoluteUrl ( url , baseUrl ) {
if ( ! url ) {
return null ;
}
try {
var absoluteUrl = baseUrl ? new _url _polyfill . URL ( url , baseUrl ) : new _url _polyfill . URL ( url ) ;
if ( _isValidProtocol ( absoluteUrl ) ) {
return absoluteUrl ;
}
} catch ( ex ) { }
return null ;
}
function shadow ( obj , prop , value ) {
Object . defineProperty ( obj , prop , {
value : value ,
enumerable : true ,
configurable : true ,
writable : false
} ) ;
return value ;
}
function getLookupTableFactory ( initializer ) {
var lookup ;
return function ( ) {
if ( initializer ) {
lookup = Object . create ( null ) ;
initializer ( lookup ) ;
initializer = null ;
}
return lookup ;
} ;
}
var PasswordException = function PasswordExceptionClosure ( ) {
function PasswordException ( msg , code ) {
this . name = 'PasswordException' ;
this . message = msg ;
this . code = code ;
}
PasswordException . prototype = new Error ( ) ;
PasswordException . constructor = PasswordException ;
return PasswordException ;
} ( ) ;
var UnknownErrorException = function UnknownErrorExceptionClosure ( ) {
function UnknownErrorException ( msg , details ) {
this . name = 'UnknownErrorException' ;
this . message = msg ;
this . details = details ;
}
UnknownErrorException . prototype = new Error ( ) ;
UnknownErrorException . constructor = UnknownErrorException ;
return UnknownErrorException ;
} ( ) ;
var InvalidPDFException = function InvalidPDFExceptionClosure ( ) {
function InvalidPDFException ( msg ) {
this . name = 'InvalidPDFException' ;
this . message = msg ;
}
InvalidPDFException . prototype = new Error ( ) ;
InvalidPDFException . constructor = InvalidPDFException ;
return InvalidPDFException ;
} ( ) ;
var MissingPDFException = function MissingPDFExceptionClosure ( ) {
function MissingPDFException ( msg ) {
this . name = 'MissingPDFException' ;
this . message = msg ;
}
MissingPDFException . prototype = new Error ( ) ;
MissingPDFException . constructor = MissingPDFException ;
return MissingPDFException ;
} ( ) ;
var UnexpectedResponseException = function UnexpectedResponseExceptionClosure ( ) {
function UnexpectedResponseException ( msg , status ) {
this . name = 'UnexpectedResponseException' ;
this . message = msg ;
this . status = status ;
}
UnexpectedResponseException . prototype = new Error ( ) ;
UnexpectedResponseException . constructor = UnexpectedResponseException ;
return UnexpectedResponseException ;
} ( ) ;
var MissingDataException = function MissingDataExceptionClosure ( ) {
function MissingDataException ( begin , end ) {
this . begin = begin ;
this . end = end ;
this . message = 'Missing data [' + begin + ', ' + end + ')' ;
}
MissingDataException . prototype = new Error ( ) ;
MissingDataException . prototype . name = 'MissingDataException' ;
MissingDataException . constructor = MissingDataException ;
return MissingDataException ;
} ( ) ;
var XRefParseException = function XRefParseExceptionClosure ( ) {
function XRefParseException ( msg ) {
this . message = msg ;
}
XRefParseException . prototype = new Error ( ) ;
XRefParseException . prototype . name = 'XRefParseException' ;
XRefParseException . constructor = XRefParseException ;
return XRefParseException ;
} ( ) ;
var FormatError = function FormatErrorClosure ( ) {
function FormatError ( msg ) {
this . message = msg ;
}
FormatError . prototype = new Error ( ) ;
FormatError . prototype . name = 'FormatError' ;
FormatError . constructor = FormatError ;
return FormatError ;
} ( ) ;
var AbortException = function AbortExceptionClosure ( ) {
function AbortException ( msg ) {
this . name = 'AbortException' ;
this . message = msg ;
}
AbortException . prototype = new Error ( ) ;
AbortException . constructor = AbortException ;
return AbortException ;
} ( ) ;
var NullCharactersRegExp = /\x00/g ;
function removeNullCharacters ( str ) {
if ( typeof str !== 'string' ) {
warn ( 'The argument for removeNullCharacters must be a string.' ) ;
return str ;
}
return str . replace ( NullCharactersRegExp , '' ) ;
}
function bytesToString ( bytes ) {
assert ( bytes !== null && ( typeof bytes === 'undefined' ? 'undefined' : _typeof ( bytes ) ) === 'object' && bytes . length !== undefined , 'Invalid argument for bytesToString' ) ;
var length = bytes . length ;
var MAX _ARGUMENT _COUNT = 8192 ;
if ( length < MAX _ARGUMENT _COUNT ) {
return String . fromCharCode . apply ( null , bytes ) ;
}
var strBuf = [ ] ;
for ( var i = 0 ; i < length ; i += MAX _ARGUMENT _COUNT ) {
var chunkEnd = Math . min ( i + MAX _ARGUMENT _COUNT , length ) ;
var chunk = bytes . subarray ( i , chunkEnd ) ;
strBuf . push ( String . fromCharCode . apply ( null , chunk ) ) ;
}
return strBuf . join ( '' ) ;
}
function stringToBytes ( str ) {
assert ( typeof str === 'string' , 'Invalid argument for stringToBytes' ) ;
var length = str . length ;
var bytes = new Uint8Array ( length ) ;
for ( var i = 0 ; i < length ; ++ i ) {
bytes [ i ] = str . charCodeAt ( i ) & 0xFF ;
}
return bytes ;
}
function arrayByteLength ( arr ) {
if ( arr . length !== undefined ) {
return arr . length ;
}
assert ( arr . byteLength !== undefined ) ;
return arr . byteLength ;
}
function arraysToBytes ( arr ) {
if ( arr . length === 1 && arr [ 0 ] instanceof Uint8Array ) {
return arr [ 0 ] ;
}
var resultLength = 0 ;
var i ,
ii = arr . length ;
var item , itemLength ;
for ( i = 0 ; i < ii ; i ++ ) {
item = arr [ i ] ;
itemLength = arrayByteLength ( item ) ;
resultLength += itemLength ;
}
var pos = 0 ;
var data = new Uint8Array ( resultLength ) ;
for ( i = 0 ; i < ii ; i ++ ) {
item = arr [ i ] ;
if ( ! ( item instanceof Uint8Array ) ) {
if ( typeof item === 'string' ) {
item = stringToBytes ( item ) ;
} else {
item = new Uint8Array ( item ) ;
}
}
itemLength = item . byteLength ;
data . set ( item , pos ) ;
pos += itemLength ;
}
return data ;
}
function string32 ( value ) {
return String . fromCharCode ( value >> 24 & 0xff , value >> 16 & 0xff , value >> 8 & 0xff , value & 0xff ) ;
}
function log2 ( x ) {
if ( x <= 0 ) {
return 0 ;
}
return Math . ceil ( Math . log2 ( x ) ) ;
}
function readInt8 ( data , start ) {
return data [ start ] << 24 >> 24 ;
}
function readUint16 ( data , offset ) {
return data [ offset ] << 8 | data [ offset + 1 ] ;
}
function readUint32 ( data , offset ) {
return ( data [ offset ] << 24 | data [ offset + 1 ] << 16 | data [ offset + 2 ] << 8 | data [ offset + 3 ] ) >>> 0 ;
}
function isLittleEndian ( ) {
var buffer8 = new Uint8Array ( 4 ) ;
buffer8 [ 0 ] = 1 ;
var view32 = new Uint32Array ( buffer8 . buffer , 0 , 1 ) ;
return view32 [ 0 ] === 1 ;
}
function isEvalSupported ( ) {
try {
new Function ( '' ) ;
return true ;
} catch ( e ) {
return false ;
}
}
function getInheritableProperty ( _ref ) {
var dict = _ref . dict ,
key = _ref . key ,
_ref$getArray = _ref . getArray ,
getArray = _ref$getArray === undefined ? false : _ref$getArray ,
_ref$stopWhenFound = _ref . stopWhenFound ,
stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound ;
var LOOP _LIMIT = 100 ;
var loopCount = 0 ;
var values = void 0 ;
while ( dict ) {
var value = getArray ? dict . getArray ( key ) : dict . get ( key ) ;
if ( value !== undefined ) {
if ( stopWhenFound ) {
return value ;
}
if ( ! values ) {
values = [ ] ;
}
values . push ( value ) ;
}
if ( ++ loopCount > LOOP _LIMIT ) {
warn ( 'getInheritableProperty: maximum loop count exceeded for "' + key + '"' ) ;
break ;
}
dict = dict . get ( 'Parent' ) ;
}
return values ;
}
var Util = function UtilClosure ( ) {
function Util ( ) { }
var rgbBuf = [ 'rgb(' , 0 , ',' , 0 , ',' , 0 , ')' ] ;
Util . makeCssRgb = function Util _makeCssRgb ( r , g , b ) {
rgbBuf [ 1 ] = r ;
rgbBuf [ 3 ] = g ;
rgbBuf [ 5 ] = b ;
return rgbBuf . join ( '' ) ;
} ;
Util . transform = function Util _transform ( m1 , m2 ) {
return [ m1 [ 0 ] * m2 [ 0 ] + m1 [ 2 ] * m2 [ 1 ] , m1 [ 1 ] * m2 [ 0 ] + m1 [ 3 ] * m2 [ 1 ] , m1 [ 0 ] * m2 [ 2 ] + m1 [ 2 ] * m2 [ 3 ] , m1 [ 1 ] * m2 [ 2 ] + m1 [ 3 ] * m2 [ 3 ] , m1 [ 0 ] * m2 [ 4 ] + m1 [ 2 ] * m2 [ 5 ] + m1 [ 4 ] , m1 [ 1 ] * m2 [ 4 ] + m1 [ 3 ] * m2 [ 5 ] + m1 [ 5 ] ] ;
} ;
Util . applyTransform = function Util _applyTransform ( p , m ) {
var xt = p [ 0 ] * m [ 0 ] + p [ 1 ] * m [ 2 ] + m [ 4 ] ;
var yt = p [ 0 ] * m [ 1 ] + p [ 1 ] * m [ 3 ] + m [ 5 ] ;
return [ xt , yt ] ;
} ;
Util . applyInverseTransform = function Util _applyInverseTransform ( p , m ) {
var d = m [ 0 ] * m [ 3 ] - m [ 1 ] * m [ 2 ] ;
var xt = ( p [ 0 ] * m [ 3 ] - p [ 1 ] * m [ 2 ] + m [ 2 ] * m [ 5 ] - m [ 4 ] * m [ 3 ] ) / d ;
var yt = ( - p [ 0 ] * m [ 1 ] + p [ 1 ] * m [ 0 ] + m [ 4 ] * m [ 1 ] - m [ 5 ] * m [ 0 ] ) / d ;
return [ xt , yt ] ;
} ;
Util . getAxialAlignedBoundingBox = function Util _getAxialAlignedBoundingBox ( r , m ) {
var p1 = Util . applyTransform ( r , m ) ;
var p2 = Util . applyTransform ( r . slice ( 2 , 4 ) , m ) ;
var p3 = Util . applyTransform ( [ r [ 0 ] , r [ 3 ] ] , m ) ;
var p4 = Util . applyTransform ( [ r [ 2 ] , r [ 1 ] ] , m ) ;
return [ Math . min ( p1 [ 0 ] , p2 [ 0 ] , p3 [ 0 ] , p4 [ 0 ] ) , Math . min ( p1 [ 1 ] , p2 [ 1 ] , p3 [ 1 ] , p4 [ 1 ] ) , Math . max ( p1 [ 0 ] , p2 [ 0 ] , p3 [ 0 ] , p4 [ 0 ] ) , Math . max ( p1 [ 1 ] , p2 [ 1 ] , p3 [ 1 ] , p4 [ 1 ] ) ] ;
} ;
Util . inverseTransform = function Util _inverseTransform ( m ) {
var d = m [ 0 ] * m [ 3 ] - m [ 1 ] * m [ 2 ] ;
return [ m [ 3 ] / d , - m [ 1 ] / d , - m [ 2 ] / d , m [ 0 ] / d , ( m [ 2 ] * m [ 5 ] - m [ 4 ] * m [ 3 ] ) / d , ( m [ 4 ] * m [ 1 ] - m [ 5 ] * m [ 0 ] ) / d ] ;
} ;
Util . apply3dTransform = function Util _apply3dTransform ( m , v ) {
return [ m [ 0 ] * v [ 0 ] + m [ 1 ] * v [ 1 ] + m [ 2 ] * v [ 2 ] , m [ 3 ] * v [ 0 ] + m [ 4 ] * v [ 1 ] + m [ 5 ] * v [ 2 ] , m [ 6 ] * v [ 0 ] + m [ 7 ] * v [ 1 ] + m [ 8 ] * v [ 2 ] ] ;
} ;
Util . singularValueDecompose2dScale = function Util _singularValueDecompose2dScale ( m ) {
var transpose = [ m [ 0 ] , m [ 2 ] , m [ 1 ] , m [ 3 ] ] ;
var a = m [ 0 ] * transpose [ 0 ] + m [ 1 ] * transpose [ 2 ] ;
var b = m [ 0 ] * transpose [ 1 ] + m [ 1 ] * transpose [ 3 ] ;
var c = m [ 2 ] * transpose [ 0 ] + m [ 3 ] * transpose [ 2 ] ;
var d = m [ 2 ] * transpose [ 1 ] + m [ 3 ] * transpose [ 3 ] ;
var first = ( a + d ) / 2 ;
var second = Math . sqrt ( ( a + d ) * ( a + d ) - 4 * ( a * d - c * b ) ) / 2 ;
var sx = first + second || 1 ;
var sy = first - second || 1 ;
return [ Math . sqrt ( sx ) , Math . sqrt ( sy ) ] ;
} ;
Util . normalizeRect = function Util _normalizeRect ( rect ) {
var r = rect . slice ( 0 ) ;
if ( rect [ 0 ] > rect [ 2 ] ) {
r [ 0 ] = rect [ 2 ] ;
r [ 2 ] = rect [ 0 ] ;
}
if ( rect [ 1 ] > rect [ 3 ] ) {
r [ 1 ] = rect [ 3 ] ;
r [ 3 ] = rect [ 1 ] ;
}
return r ;
} ;
Util . intersect = function Util _intersect ( rect1 , rect2 ) {
function compare ( a , b ) {
return a - b ;
}
var orderedX = [ rect1 [ 0 ] , rect1 [ 2 ] , rect2 [ 0 ] , rect2 [ 2 ] ] . sort ( compare ) ,
orderedY = [ rect1 [ 1 ] , rect1 [ 3 ] , rect2 [ 1 ] , rect2 [ 3 ] ] . sort ( compare ) ,
result = [ ] ;
rect1 = Util . normalizeRect ( rect1 ) ;
rect2 = Util . normalizeRect ( rect2 ) ;
if ( orderedX [ 0 ] === rect1 [ 0 ] && orderedX [ 1 ] === rect2 [ 0 ] || orderedX [ 0 ] === rect2 [ 0 ] && orderedX [ 1 ] === rect1 [ 0 ] ) {
result [ 0 ] = orderedX [ 1 ] ;
result [ 2 ] = orderedX [ 2 ] ;
} else {
return false ;
}
if ( orderedY [ 0 ] === rect1 [ 1 ] && orderedY [ 1 ] === rect2 [ 1 ] || orderedY [ 0 ] === rect2 [ 1 ] && orderedY [ 1 ] === rect1 [ 1 ] ) {
result [ 1 ] = orderedY [ 1 ] ;
result [ 3 ] = orderedY [ 2 ] ;
} else {
return false ;
}
return result ;
} ;
return Util ;
} ( ) ;
var ROMAN _NUMBER _MAP = [ '' , 'C' , 'CC' , 'CCC' , 'CD' , 'D' , 'DC' , 'DCC' , 'DCCC' , 'CM' , '' , 'X' , 'XX' , 'XXX' , 'XL' , 'L' , 'LX' , 'LXX' , 'LXXX' , 'XC' , '' , 'I' , 'II' , 'III' , 'IV' , 'V' , 'VI' , 'VII' , 'VIII' , 'IX' ] ;
function toRomanNumerals ( number ) {
var lowerCase = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
assert ( Number . isInteger ( number ) && number > 0 , 'The number should be a positive integer.' ) ;
var pos = void 0 ,
romanBuf = [ ] ;
while ( number >= 1000 ) {
number -= 1000 ;
romanBuf . push ( 'M' ) ;
}
pos = number / 100 | 0 ;
number %= 100 ;
romanBuf . push ( ROMAN _NUMBER _MAP [ pos ] ) ;
pos = number / 10 | 0 ;
number %= 10 ;
romanBuf . push ( ROMAN _NUMBER _MAP [ 10 + pos ] ) ;
romanBuf . push ( ROMAN _NUMBER _MAP [ 20 + number ] ) ;
var romanStr = romanBuf . join ( '' ) ;
return lowerCase ? romanStr . toLowerCase ( ) : romanStr ;
}
var PDFStringTranslateTable = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0x2D8 , 0x2C7 , 0x2C6 , 0x2D9 , 0x2DD , 0x2DB , 0x2DA , 0x2DC , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 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 , 0 , 0x20AC ] ;
function stringToPDFString ( str ) {
var i ,
n = str . length ,
strBuf = [ ] ;
if ( str [ 0 ] === '\xFE' && str [ 1 ] === '\xFF' ) {
for ( i = 2 ; i < n ; i += 2 ) {
strBuf . push ( String . fromCharCode ( str . charCodeAt ( i ) << 8 | str . charCodeAt ( i + 1 ) ) ) ;
}
} else {
for ( i = 0 ; i < n ; ++ i ) {
var code = PDFStringTranslateTable [ str . charCodeAt ( i ) ] ;
strBuf . push ( code ? String . fromCharCode ( code ) : str . charAt ( i ) ) ;
}
}
return strBuf . join ( '' ) ;
}
function stringToUTF8String ( str ) {
return decodeURIComponent ( escape ( str ) ) ;
}
function utf8StringToString ( str ) {
return unescape ( encodeURIComponent ( str ) ) ;
}
function isEmptyObj ( obj ) {
for ( var key in obj ) {
return false ;
}
return true ;
}
function isBool ( v ) {
return typeof v === 'boolean' ;
}
function isNum ( v ) {
return typeof v === 'number' ;
}
function isString ( v ) {
return typeof v === 'string' ;
}
function isArrayBuffer ( v ) {
return ( typeof v === 'undefined' ? 'undefined' : _typeof ( v ) ) === 'object' && v !== null && v . byteLength !== undefined ;
}
function isSpace ( ch ) {
return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A ;
}
function createPromiseCapability ( ) {
var capability = { } ;
capability . promise = new Promise ( function ( resolve , reject ) {
capability . resolve = resolve ;
capability . reject = reject ;
} ) ;
return capability ;
}
var createObjectURL = function createObjectURLClosure ( ) {
var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' ;
return function createObjectURL ( data , contentType ) {
var forceDataSchema = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
if ( ! forceDataSchema && _url _polyfill . URL . createObjectURL ) {
var blob = new Blob ( [ data ] , { type : contentType } ) ;
return _url _polyfill . URL . createObjectURL ( blob ) ;
}
var buffer = 'data:' + contentType + ';base64,' ;
for ( var i = 0 , ii = data . length ; i < ii ; i += 3 ) {
var b1 = data [ i ] & 0xFF ;
var b2 = data [ i + 1 ] & 0xFF ;
var b3 = data [ i + 2 ] & 0xFF ;
var d1 = b1 >> 2 ,
d2 = ( b1 & 3 ) << 4 | b2 >> 4 ;
var d3 = i + 1 < ii ? ( b2 & 0xF ) << 2 | b3 >> 6 : 64 ;
var d4 = i + 2 < ii ? b3 & 0x3F : 64 ;
buffer += digits [ d1 ] + digits [ d2 ] + digits [ d3 ] + digits [ d4 ] ;
}
return buffer ;
} ;
} ( ) ;
exports . FONT _IDENTITY _MATRIX = FONT _IDENTITY _MATRIX ;
exports . IDENTITY _MATRIX = IDENTITY _MATRIX ;
exports . OPS = OPS ;
exports . VerbosityLevel = VerbosityLevel ;
exports . UNSUPPORTED _FEATURES = UNSUPPORTED _FEATURES ;
exports . AnnotationBorderStyleType = AnnotationBorderStyleType ;
exports . AnnotationFieldFlag = AnnotationFieldFlag ;
exports . AnnotationFlag = AnnotationFlag ;
exports . AnnotationType = AnnotationType ;
exports . FontType = FontType ;
exports . ImageKind = ImageKind ;
exports . CMapCompressionType = CMapCompressionType ;
exports . AbortException = AbortException ;
exports . InvalidPDFException = InvalidPDFException ;
exports . MissingDataException = MissingDataException ;
exports . MissingPDFException = MissingPDFException ;
exports . NativeImageDecoding = NativeImageDecoding ;
exports . PasswordException = PasswordException ;
exports . PasswordResponses = PasswordResponses ;
exports . PermissionFlag = PermissionFlag ;
exports . StreamType = StreamType ;
exports . TextRenderingMode = TextRenderingMode ;
exports . UnexpectedResponseException = UnexpectedResponseException ;
exports . UnknownErrorException = UnknownErrorException ;
exports . Util = Util ;
exports . toRomanNumerals = toRomanNumerals ;
exports . XRefParseException = XRefParseException ;
exports . FormatError = FormatError ;
exports . arrayByteLength = arrayByteLength ;
exports . arraysToBytes = arraysToBytes ;
exports . assert = assert ;
exports . bytesToString = bytesToString ;
exports . createPromiseCapability = createPromiseCapability ;
exports . createObjectURL = createObjectURL ;
exports . deprecated = deprecated ;
exports . getInheritableProperty = getInheritableProperty ;
exports . getLookupTableFactory = getLookupTableFactory ;
exports . getVerbosityLevel = getVerbosityLevel ;
exports . info = info ;
exports . isArrayBuffer = isArrayBuffer ;
exports . isBool = isBool ;
exports . isEmptyObj = isEmptyObj ;
exports . isNum = isNum ;
exports . isString = isString ;
exports . isSpace = isSpace ;
exports . isSameOrigin = isSameOrigin ;
exports . createValidAbsoluteUrl = createValidAbsoluteUrl ;
exports . isLittleEndian = isLittleEndian ;
exports . isEvalSupported = isEvalSupported ;
exports . log2 = log2 ;
exports . readInt8 = readInt8 ;
exports . readUint16 = readUint16 ;
exports . readUint32 = readUint32 ;
exports . removeNullCharacters = removeNullCharacters ;
exports . ReadableStream = _streams _polyfill . ReadableStream ;
exports . URL = _url _polyfill . URL ;
exports . setVerbosityLevel = setVerbosityLevel ;
exports . shadow = shadow ;
exports . string32 = string32 ;
exports . stringToBytes = stringToBytes ;
exports . stringToPDFString = stringToPDFString ;
exports . stringToUTF8String = stringToUTF8String ;
exports . utf8StringToString = utf8StringToString ;
exports . warn = warn ;
exports . unreachable = unreachable ;