The Rights Management (RM) capability can track various
custom events that may be performed on a protected document. You
can enable the tracking of events from the Rights Management server
at the global level or at a policy level. You can then set up a
JavaScript to capture specific actions performed within the protected
PDF document such as clicking a button, or saving the document.
This usage data is sent as an XML file in key-value pairs, which
you can use for further analysis.
End users who access the protected documents can allow or decline
such tracking from the client application. In the Rights Management
Administration Console, each such blob is displayed as ‘Detailed
Usage Tracking Data’ for the protected document.
Note: To view the events tracked, an external Auditing SPI needs
to be deployed. For More information on external auditing, see
Auditing events.
RightsManagement Object
This object serves as entry point for all RM-related objects,
methods, and properties. An instance of a RightsManagement object
can be obtained from the doc object. For example,
var obj = doc.rightsManagement;
RightsManagement Object properties
Property Name
|
Type
|
Access Type
|
Description
|
serverURL
|
String
|
READONLY
|
URL of the LiveCycle RM server
|
serverVersion
|
String
|
READONLY
|
Version of the LiveCycle RM server
|
visitorID
|
String
|
READONLY
|
Identifies an Acrobat installation uniquely.
|
isOffline
|
Boolean
|
READONLY
|
Is user accessing document in offline mode?
|
policyInfo
|
Object RMPolicy
|
READONLY
|
Information about RM Policy associated with
document.
|
userInfo
|
Object RMUser
|
READONLY
|
Information about authenticated RM user.
|
documentInfo
|
Object RMDocument
|
READONLY
|
Info about currently open RM document.
|
RightsManagement Object methods
Method Name
|
Return Type
|
Description
|
captureEvent(String eventID, optional eventVal)
|
Boolean
|
Capture a tracking event and store it in
memory. Events are sent to server only in following conditions:
1.
Event queue is full (currently 25).
2. User explicitly calls
flushEvents.
3. Some other event occurs that needs to be sent
to server immediately.
4. User closes document.
Returns
false if tracking is not enabled.
|
flushEvents()
|
Boolean
|
Force sends the tracking events to RM server.
In case of offline access of the document, it saves the cached events
in microsafe database on the user machine.
The tracking events
are sent to the server when the user opens the document again in
online mode.
This method returns false, if tracking is not
enabled.
|
getTrackingStatus()
|
Integer
|
This method can be used to check if tracking
is enabled for the document.
Possible return values are:
0
– Denied by LC RM server
1 – Declined by Acrobat user
2
- Allowed
|
Sample Code
var RMobj=this.rightsManagement;
RMobj.captureEvent("ServerURL",RMobj.serverURL);
RMobj.captureEvent("VisitorID",RMobj.visitorID);
RMobj.captureEvent("userInfo ",RMobj.userInfo.ID);
RMDocument Object
RMDocument object holds the properties of a LiveCycle RM-protected document.
RMDocument Object properties
Property Name
|
Type
|
Access Type
|
Description
|
ID
|
String
|
READONLY
|
ID (GUID) of the RM protected document.
|
expiryDate
|
String
|
READONLY
|
Document expiry date in UTC format. Returns
“Always Valid” for perpetually valid documents.
|
offlineLeasePeriod
|
Integer
|
READONLY
|
Offline lease period.
|
watermarks
|
Array
|
READONLY
|
An array of RMWatermark objects
|
Sample Code
var RMobj=this.rightsManagement;
RMobj.captureEvent("Document ID ", RMobj.documentInfo.ID);
RMobj.captureEvent("VisitorID",RMobj.documentinfo.expiryDate);
RMobj.captureEvent("userInfo ",RMobj. documentinfo.offlineLeasePeriod);
RMUser Object
RMUser represents the currently authenticated user.
RMUser Object properties
Property Name
|
Type
|
Access Type
|
Description
|
ID
|
String
|
READONLY
|
Login name of the authenticated user. blank
for Anonymous user
|
name
|
String
|
READONLY
|
Display name of the authenticated user.
blank for Anonymous user
|
isAnonymous
|
String
|
READONLY
|
True in case of anonymous user.
|
hasEditPerm
|
Boolean
|
READONLY
|
Can user edit content.
|
hasCopyPerm
|
Boolean
|
READONLY
|
Can user copy content.
|
hasCollabPerm
|
Boolean
|
READONLY
|
Can user collaborate.
|
hasAlterPagesPerm
|
Boolean
|
READONLY
|
Can user delete or add pages.
|
hasFillAndSignPerm
|
Boolean
|
READONLY
|
Is digital signature allowed.
|
hasPrintPerm
|
Boolean
|
READONLY
|
Can user print content.
|
hasPrintLowResPerm
|
Boolean
|
READONLY
|
Can user print document in low resolution.
|
hasChangePolicyPerm
|
Boolean
|
READONLY
|
Can user remove security or change policy.
|
Sample Code
var RMobj=this.rightsManagement;
RMobj.captureEvent("ServerURL",RMobj.serverURL);
RMobj.captureEvent("userInfo ",RMobj.userInfo.ID);
RMPolicy Object
An RMPolicy object holds the properties of the RM Policy associated
with the document.
RMPolicy Object properties
Property Name
|
Type
|
Access Type
|
Description
|
ID
|
String
|
READONLY
|
The Policy ID (GUID).
|
name
|
String
|
READONLY
|
The user-friendly policy name
|
description
|
String
|
READONLY
|
Policy description
|
Sample Code
var RMobj=this.rightsManagement;
RMobj.captureEvent("Policy Name",RMobj.policyInfo.name);
RMobj.captureEvent("Policy ID",RMobj.policyInfo.ID);
RMWatermark Object
Watermarks associated with the document..
RMWatermark Object properties
Property Name
|
Type
|
Access Type
|
Description
|
vertAlign
|
Integer
|
READONLY
|
The vertical alignment of the watermark.
Possible values are: align.top, align.center, align.bottom
|
horizAlign
|
String
|
READONLY
|
The horizontal alignment of the watermark.
Possible values are: align.left, align.center, align.right
|
vertOffset
|
Float
|
READONLY
|
The vertical offset of the watermark.
|
horizOffset
|
Float
|
READONLY
|
The horizontal offset of the watermark.
|
scale
|
Float
|
READONLY
|
The size of the watermark font.
|
rotation
|
Float
|
READONLY
|
”0″ to “359″. The rotation (in degrees)
of the watermark.
|
opacity
|
Float
|
READONLY
|
”0.0″ to “1.0″. The opacity of the watermark.
|
isFixed
|
Boolean
|
READONLY
|
If this value is false, the watermark
should be scaled to fit to the page. Otherwise, the provided scaling
scale should be used.
|
startPage
|
Integer
|
READONLY
|
First page from which watermark is to be
applied (first page is 0)
|
endPage
|
Float
|
READONLY
|
Last page upto which watermark is to be
applied (-1 to signify all pages)
|
pageSelection
|
String
|
READONLY
|
”all”, “even” or “odd”Pages on which the
watermark is to be applied.
|
isOnScreen
|
Boolean
|
READONLY
|
Watermark is displayed while viewing the
document on screen.
|
isOnPrint
|
Boolean
|
READONLY
|
Watermark is printed with the document
|
percentage
|
Boolean
|
READONLY
|
Values specified with vertical and horizontal
shifts are in percentage
|
customText
|
Boolean
|
READONLY
|
The custom text that is included in the
watermark.
|
isCustomTextEnabled
|
Boolean
|
READONLY
|
The custom text that is included in the
watermark.
|
isUserIDEnabled
|
Boolean
|
READONLY
|
Determines whether the watermark includes
the user identification of the user who opens the associated document.
|
isUserNameEnabled
|
Boolean
|
READONLY
|
Determines whether the watermark includes
the name of the user who opens the associated document.
|
isCurrentDateEnabled
|
Boolean
|
READONLY
|
Determines whether the watermark includes
the date on which the associated document is opened.
|
isPolicyEnabled
|
Boolean
|
READONLY
|
Determines whether the watermark includes
the policy with which the document is protected.
|
fontName
|
string
|
READONLY
|
Name of the font to use for the text watermark
|
fontSize
|
Float
|
READONLY
|
Size of the font to use for the text watermark
|
colorSpace
|
String
|
READONLY
|
Color space in which the color is represented
|
color
|
Array of Number
|
READONLY
|
Color of the text watermark
|
Sample Code
var RMobj=this.rightsManagement;
console.println("Watermarks Info");
RMobj.captureEvent("Vertical Alignment" , obj1.watermarks[0].vertAlign);
RMobj.captureEvent("Watermark Type" , obj1.watermarks[0].type);