|
|
@ -15,7 +15,8 @@ |
|
|
|
* limitations under the License. |
|
|
|
* limitations under the License. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
/* globals ColorSpace, PDFFunction, Util, error, warn, info, isArray, isStream, |
|
|
|
/* globals ColorSpace, PDFFunction, Util, error, warn, info, isArray, isStream, |
|
|
|
assert, isPDFFunction, UnsupportedManager, UNSUPPORTED_FEATURES */ |
|
|
|
assert, isPDFFunction, UnsupportedManager, UNSUPPORTED_FEATURES, |
|
|
|
|
|
|
|
MissingDataException */ |
|
|
|
|
|
|
|
|
|
|
|
'use strict'; |
|
|
|
'use strict'; |
|
|
|
|
|
|
|
|
|
|
@ -49,19 +50,27 @@ var Pattern = (function PatternClosure() { |
|
|
|
var dict = isStream(shading) ? shading.dict : shading; |
|
|
|
var dict = isStream(shading) ? shading.dict : shading; |
|
|
|
var type = dict.get('ShadingType'); |
|
|
|
var type = dict.get('ShadingType'); |
|
|
|
|
|
|
|
|
|
|
|
switch (type) { |
|
|
|
try { |
|
|
|
case PatternType.AXIAL: |
|
|
|
switch (type) { |
|
|
|
case PatternType.RADIAL: |
|
|
|
case PatternType.AXIAL: |
|
|
|
// Both radial and axial shadings are handled by RadialAxial shading.
|
|
|
|
case PatternType.RADIAL: |
|
|
|
return new Shadings.RadialAxial(dict, matrix, xref, res); |
|
|
|
// Both radial and axial shadings are handled by RadialAxial shading.
|
|
|
|
case PatternType.FREE_FORM_MESH: |
|
|
|
return new Shadings.RadialAxial(dict, matrix, xref, res); |
|
|
|
case PatternType.LATTICE_FORM_MESH: |
|
|
|
case PatternType.FREE_FORM_MESH: |
|
|
|
case PatternType.COONS_PATCH_MESH: |
|
|
|
case PatternType.LATTICE_FORM_MESH: |
|
|
|
case PatternType.TENSOR_PATCH_MESH: |
|
|
|
case PatternType.COONS_PATCH_MESH: |
|
|
|
return new Shadings.Mesh(shading, matrix, xref, res); |
|
|
|
case PatternType.TENSOR_PATCH_MESH: |
|
|
|
default: |
|
|
|
return new Shadings.Mesh(shading, matrix, xref, res); |
|
|
|
UnsupportedManager.notify(UNSUPPORTED_FEATURES.shadingPattern); |
|
|
|
default: |
|
|
|
return new Shadings.Dummy(); |
|
|
|
throw new Error('Unknown PatternType: ' + type); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch (ex) { |
|
|
|
|
|
|
|
if (ex instanceof MissingDataException) { |
|
|
|
|
|
|
|
throw ex; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
UnsupportedManager.notify(UNSUPPORTED_FEATURES.shadingPattern); |
|
|
|
|
|
|
|
warn(ex); |
|
|
|
|
|
|
|
return new Shadings.Dummy(); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
return Pattern; |
|
|
|
return Pattern; |
|
|
|