Methods
(static) calculateNonOverlappingSelections(selections, backgroundColor) → {Array.<selection>}
This method takes several selection objects -- ranges of start indices and lengths -- and determines if and split overlapping ranges into separate selections objects. It will also interpret the new color in the overlapping regions using PCCViewer.Util.layerColors. The non-overlapping selections from this function should be used when highlighting text inside marks to ensure the best display. See PCCViewer.Mark#highlightText.
Parameters:
| Name | Type | Description | 
|---|---|---|
| selections | Array.<Object> | Object | An array of objects or a single object that defines a highlight. Each object has the following properties: 
 | 
| backgroundColor | string | A valid 7-character Hexadecimal color string. The first letter must be a "#" symbol and the other six characters must be hexadecimal digits representing the red, green, and blue portions of the color. | 
Throws:
- 
                    - 
                            If any of the selection objects have an invalid startIndexnumber, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If any of the selection objects have an invalid lengthnumber, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If any of the selection objects have an invalid colorHex string, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If any of the selection objects have an invalid opacitynumber, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If the backgroundColor argument is not a valid Hex string, or the value is undefined. 
- 
                            - Type
- Error
 
 
- 
                            
Returns:
A collection of non-overlapping selection objects, representing the same selections that were passed into the function.
- Type
- Array.<selection>
(static) convertPageRangeToArray(range, optionsopt) → {Array.<number>}
Converts the supplied page range to an array, where each element in the array is a page number. The returned array will be sorted ascending by page number and will not contain duplicates.
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| range | string | A string specifying page numbers or ranges. Valid values are any string using this format (specified using EBNF): 
For example:  | |||||||||||||||||||||
| options | object | <optional> | An object specifying validation options. Properties
 | 
Throws:
- 
                    - 
                            If pageRange does not conform to the supported format. 
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If pageRange specifies a range that is not within the bounds of options.lowerLimitandoptions.upperLimit.
- 
                            - Type
- Error
 
 
- 
                            
Returns:
An array containing an element for each page number specified in the range.
- Type
- Array.<number>
Example
PCCViewer.Util.convertPageRangeToArray("1, 3-5"); // returns [1, 3, 4, 5]
PCCViewer.Util.convertPageRangeToArray("1, 3-5", {
    lowerLimit: 1,
    upperLimit: 6
}); // returns [1, 3, 4, 5]
PCCViewer.Util.convertPageRangeToArray("1, 3-100", {
    lowerLimit: 1,
    upperLimit: 6
}); // throws because the range goes beyond the upper limit
            (static) layerColors(colors, backgroundColor) → {string}
This method takes an ordered list of colored layers, and calculates the flat color resulting from stacking all the layers.
Note: this stacking order calculation uses the W3C specification for simple alpha compositing, and is therefore not a complete color mixing solution. Instead, it calculates RGB color composition to browser specification.
Parameters:
| Name | Type | Description | 
|---|---|---|
| colors | Array.<Object> | Object | An array of objects or a single object that defines a color layer. Note that the first element in the array will be the topmost layer in the stacking order, and the last element will be the bottom-most layer. Each object has the following properties: 
 | 
| backgroundColor | string | A valid 7-character Hexadecimal color string. The first letter must be a "#" symbol and the other six characters must be hexadecimal digits representing the red, green, and blue portions of the color. | 
Throws:
- 
                    - 
                            If any of the color objects have an invalid colorHex string, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If any of the color objects have an invalid opacitynumber, or the value is undefined.
- 
                            - Type
- Error
 
 
- 
                            
- 
                    - 
                            If the backgroundColor argument is not a valid Hex string, or the value is undefined. 
- 
                            - Type
- Error
 
 
- 
                            
Returns:
The resulting flat color produced by stacking all of the layers on top of the background color. This value will be a 7-character Hexadecimal color.
- Type
- string
(static) save(filename, stringValue)
Triggers file saving functionality with data generated on the client side. This method handles browser-specific differences in file generation. As such, it may have slightly different behavior in the various browsers. The end result provides a common interface for triggering a file save.
Parameters:
| Name | Type | Description | 
|---|---|---|
| filename | string | The desired name of the output file. This will be used as the name or suggested name in browsers that support it. | 
| stringValue | string | The data, in string format, to be written to the file. | 
(static) validatePageRange(range, optionsopt) → {boolean}
Determines whether the range string is a valid page range of the format supported by the viewer. It will optionally validate that the range is within a specified set of limits.
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| range | string | A string specifying page numbers or ranges. Valid values are any string using this format (specified using EBNF): 
For example:  | |||||||||||||||||||||
| options | object | <optional> | An object specifying validation options. Properties
 | 
Returns:
A value indicating whether the specified page range is valid.
- Type
- boolean
Example
PCCViewer.Util.validatePageRange("1, 3-5", {
    lowerLimit: 1,
    upperLimit: 6
}); // returns true
PCCViewer.Util.validatePageRange("1, 3-5, 100", {
    lowerLimit: 1,
    upperLimit: 6
}); // returns false
PCCViewer.Util.validatePageRange("this is not a valid range", {
    lowerLimit: 1,
    upperLimit: 6
}); // returns false
PCCViewer.Util.validatePageRange("3", {
    lowerLimit: 1,
    upperLimit: myViewerControl.getPageCount() // assuming myViewerControl is a PCCViewer.ViewerControl
}); // returns true if the document has at least 3 pages
PCCViewer.Util.validatePageRange(""); // returns false
PCCViewer.Util.validatePageRange("", {
    allowEmpty: true
}); // returns true
        