If you have a problem understanding how the hook works, check: Hook's mechanism
Available from version: 1.0.0
Hook places a watermark on the document as it is displayed. This hook is implemented based on the definition of the ReadFileHookAdapter system hook, which allows to change the binary stream of the displayed document from archive or in preview in the process. Configuration of the watermark insert hook is defined in JSON format as a list and is managed by the PCM (Plugin Configuration Manager). A watermark is placed on every page of the document and accepts only PDF format.
- documentClassId - watermark - type - text - alignment - anchor - positionX% - positionY% - opacity - watermarkBarcode - format - codeWidth - codeHeight - watermarkText - size - fontType - color - encoding - clockwiseAngle - permissions - groups
Parameter name in JSON configuration | From version | Description | Paremeter type | Comments and restrictions | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
documentClassId* | 1.0.0 | The document class id indicates for which documents the watermark insertion parameters are to be considered. | Integer | |||||||||||||||||||||||||||||||
type* (watermark)
| 1.0.0 | Specifies what type of watermark is. | Text |
| ||||||||||||||||||||||||||||||
text* (watermark) | 1.0.0 | Takes the text value that is used to create the watermark. In order to use document index values, the index id should be enclosed in curly braces {}. It is possible to use more than one index value in a parameter. Each subsequent index must be followed by curly braces. Example. Case number: "{8}, Registration Date {9}" Watermark text -> Case number: 433589, Registration Date: 13-02-2021 | Text | Any typed index ids in the text string must exist in the document class specified by the documentClassId parameter. If the document being viewed does not contain an index value (it is empty) whose id is given in curly braces in this parameter, the id will be replaced with the empty string "". | ||||||||||||||||||||||||||||||
alignment* (watermark) | 1.0.0 | Specifies relative to which of the four corners of the document page the position of the watermark will be calculated based on the positionX% and positionY% parameters. | Text | Pay attention to the corresponding values of the positionX% and positionY% parameters, because depending on the value of the alignment, anchor parameter, and the size of the watermark, the watermark may extend beyond the document page, i.e. be partially or completely invisible.
| ||||||||||||||||||||||||||||||
anchor* (watermark) | 1.0.0 | Specifies the position of the watermark in relation to the corresponding corner of the watermark. | Text |
| ||||||||||||||||||||||||||||||
positionX%* (watermark) | 1.0.0 | Indicates the X (horizontal) position of the watermark in percent relative to the document page dimensions. The position is set based on the selected page corner in the alignment parameter. | Integer | Value between 0 and 100. | ||||||||||||||||||||||||||||||
positionY%* (watermark) | 1.0.0 | Indicates the Y (vertical) position of the watermark in percent relative to the document page dimensions. The position is set based on the selected page corner in the alignment parameter. | Integer | Value between 0 and 100. | ||||||||||||||||||||||||||||||
opacity* (watermark) | 1.0.0 | Specifies the transparency of the inserted watermark on the pages of the document. | Float | Value between 0.0 and 1.0. | ||||||||||||||||||||||||||||||
format* (watermark.watermarkBarcode) | 1.0.0 | Specifies standard for one-dimensional barcodes (writing information on one line, in the form of dashes). | Text |
| ||||||||||||||||||||||||||||||
codeWidth* (watermark.watermarkBarcode) | 1.0.0 | Defines the width of the barcode in pixels. | Integer | Specifies the minimum width of the barcode. In case the value to be encoded from the text parameter turns out to be too long, the width will be increased. | ||||||||||||||||||||||||||||||
codeHeight* (watermark.watermarkBarcode) | 1.0.0 | Defines the height of the barcode in pixels. | Integer | |||||||||||||||||||||||||||||||
size* (watermark.watermarkText) | 1.0.0 | Text size. | Float | |||||||||||||||||||||||||||||||
fontType* (watermark.watermarkText) | 1.0.0 | Text font type. | Text |
| ||||||||||||||||||||||||||||||
color* (watermark.watermarkText) | 1.0.0 | Color of the text. | Text |
| ||||||||||||||||||||||||||||||
encoding* (watermark.watermarkText) | 1.0.0 | Character encoding. | Text |
| ||||||||||||||||||||||||||||||
clockwiseAngle* (watermark.watermarkText) | 1.0.0 | Watermark rotation. | Float | The value between 0.0 and 360.0. | ||||||||||||||||||||||||||||||
groups (permissions) | 1.0.0 | Permissions defining for which users logged in to the system the hook will be run when trying to open a document. | Array of text values | Optional parameter, when is not filled, everyone can see the watermark. |
Parameter*- field is required
Format | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Code_39 | Barcode with variable-length alphanumeric characters to store 43 different characters. Each sign consists of 9 elements (light and dark bars), 3 of which are significantly wider. This format allows you to encode numbers, capital letters and characters (-, ., (Space), $, /, +,%, *).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Code_93 | The barcode is an improvement of the CODE_39 format. Like its prototype, it stores 43 alphanumeric characters, but additionally has 4 control characters (($), (%), (/), (+)).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Code_128 | Variable length, high density alphanumeric code. It can encode characters from the entire ASCII range. The coding uses a dash and a gap of four possible widths, which makes it a compact code. Code 128 can be scanned in either direction and there is no limit to the length of the code itself. |
[ { "documentClassId": 5, "watermark": { "type": "TEXT", "text": "Case number: {10}, Registration date: {11}", "alignment": "TOP_LEFT", "anchor": "BOTTOM_LEFT", "positionX%": 5, "positionY%": 5, "opacity": 0.7, "watermarkText":{ "size": 15, "fontType": "HELVETICA", "color": "LIGHT_GRAY", "encoding": "CP1252", "rotation": 0 } }, "permissions": { "groups": ["Users", "Administrators"] } }, { "documentClassId": 5, "watermark": { "type": "BARCODE", "text": "{10}", "alignment": "TOP_LEFT", "anchor": "BOTTOM_LEFT", "positionX%": 80, "positionY%": 10, "opacity": 0.5, "watermarkBarcode":{ "format": "CODE_128", "codeWidth": 50, "codeHeight": 15 } }, "permissions": { "groups": ["Users", "Administrators"] } } ]
Example of use for the above JSON configuration.
Original document:
After opening:
1.0.0
- Hook adding