Watermark Advanced - User Documentation



Name Description
Name Watermark
Version 3.7
ID wex-watermark-adv


Watermark extends Windchill’s Core PDM and Document Management modules by enabling a watermark to be superimposed on any selected PDF in Windchill. Users may watermark on demand. Watermarking may also be automated in promotion and change workflows. This is a well-featured offering – see the details below. Compared to viewing product information directly in PLM, PDF’s may proliferate. PDF’s expose risks of people using outdated PDF’s or stealing intellectual property. Watermarking mitigates these risks with version/distribution stamping, messaging, and electronic fingerprinting. Watermarking automation on promotion and change events further ensures that released PDF’s are properly marked.

Watermarks are applied using an engine contained within Windchill.

Watermark is often used with the Representation Export extensions to watermark during batch PDF exports. This ensures external data package PDF’s are properly marked.

Watermark Manager gives the user the tools to create and edit their own templates, giving full customization to the user.


  • Adds a watermark to a single PDF
  • The source of the PDF may be a document, drawing, or associated parts
  • Able to watermark multiple parts
  • Supports all paper sizes
  • Standard templates available
  • Apply watermark as coversheet
  • Batch watermark items in reviews
  • Watermark Manager included to create and customize templates


  • Note 1: The internal watermark option does not send any data outside Windchill



An introduction to Watermark and Watermark Manager.

User Guide

User Interface

The following objects are supported

  • CAD
  • Parts (through association)
  • Documents (Primary and representations)
  • Baseline
  • Collection
  • Promotion Request
  • Change Notice

Each of the above objects may reference a PDF either directly or via links to associated objects e.g. Part - CAD - Drawing Or consist consist of these objects (baseline, collection, promotion request, change notice)

If a PDF is available a new menu will appear (This menu may be restricted to only appear for admin users)


Note the object must have a PDF associated or the menu will not appear.

This menu will show the following screen


This screen allows the to either

  • Watermark - Apply watermark to all pages
  • Coversheet - Applies watermark as a coversheet
  • Download - Download directly a watermarked version of the document
  • Overwrite Content - Update the PDF within the system with a watermarked version
  • Remove - Remove the watermark from the PDF


All watermarking actions are logged. Logs will be archived after 20,000 entries


Review Batch Watermarking

UI action added to review to batch watermark all the contents.


Ensure the queue is started


Administrator Guide



The listeners use a queue which will be created


If it is not started automatically, it has to be started manually.

The listeners have to be mapped as shown above.

The Template Map section declares states and actions that can be taken when object/collections transitions to the state (no action, remove watermark, watermark with selected template).

The Trigger objects-states map specifies which states will trigger the event (watermark) for the designated objects. In the example above:

  • Documents will trigger the watermarking when sat as either Released or Canceled
  • Baselines will trigger when set as Released

Note for change object only objects in the affected table are watermarked

The watermark can also be triggered on the publish successful event


The workflow is available via a wex invoke call in the server. It is an asynchronous call that will pass the job to the watermark queue. The argument is the self e.g. the workflow process.

com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "workflowmethods.watermark", self);

Watermark With Template

This robot accepts 6 parameters - Items in bold can be null.

  • self - Primary business object (Promotion Request, Change Notice…) or Persistable (WTDocument, EPMDocument, WTPart).
  • type - Only watermark objects of this type eg wt.doc.WTDocument (must have .class at the end)
  • subtype - Only objects that match this subtype will be used (use internal name eg wincom.com.TestDoc)
  • template - Name of watermarking template to be applied or removed.
  • coversheet - apply as coversheet
  • removeWatermark - If true the watermark or coversheet will be removed.
  • data - User data map that can be displayed in watermark

If self parameter is a PBO containing a collection of items, then items within will be watermarked. Items within the PBO may be filtered for watermark using the type and subtype parameters. In case the self parameter is not a PBO but a Persistable, type and subtype are not used, so set them to null.

There are two different robots that accept the same amount of parameters. One will execute inside the WexWatermarkMaster Queue, while the other executes directly after calling the robot, without using a queue.


com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "workflowmethods.watermarkWithTemplate", self, Class type, String subtype,String template, boolean coversheet, boolean removeContent, HashMap<String,Object> data);

No Queue

com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "workflowmethods.watermarkWithTemplateNoQueue", self, Class type, String subtype,String template, boolean coversheet, boolean removeContent, HashMap<String,Object> data);


This robot accepts 1 parameter

  • Object o: The Persistable that contains the PDF files you want to remove. This API uses the Content section of the Watermark configuration to choose which files of the Persistable need have the watermark removed.
com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "workflowmethods.removeWatermark", Object o);


This robot accepts 2 parameters

  • Object o: The Persistable that contains the PDF file you want to resize.

  • (Float) resize: The size you want to reduce the PDF file.

com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "workflowmethods.resizeDefaultPDF", Object o, Float resize);

API - Filter by Filename

Watermark Adv provides an API to watermark representation on a primary business object (WTDocument, EPMDocument…) using a filename filter.

Parameters are:

  • (String) oid: The primary business object oid
  • (String) match: The string to match against the representation filenames.
  • (boolean) useRegex: Treat match as regex.
  • (String) template: The template to use.
com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv", "api-methods.watermark-filtered-reps", String oid, String match, boolean useRegex, String template);

API - Watermark & Resize

Watermark and resizes.

Parameters are:

  • (Representable) rep: The representable to be watermarked.
  • (Collection) appDatas: A collection of ApplicationData to watermark of the rep.
  • (String) template: The template to use.
  • (Float) resizeFactor: The resize factor to apply to the PDF (Ex: 0.8f will resize to 80%).
  • (Map) customData: Custom Data Map.
  • (int[] excludeResizePages): An array with the indexes of the pages to exclude from resizing (Can use negative number) Ex: int[]{0, -1} excludes page 0 and last page.
com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv","api-methods.watermark-and-resize", Representable rep, String template, Float resizeFactor, Map<String, Object> customData, int[] excludedResizePages)
com.wincomplm.wex.kernel.api.invoke.WexInvoker.invoke("com.wincomplm.wex-watermark-adv","api-methods.watermark-and-resize-appdatas", Representable rep, Collection<ApplicationData> appdatas, String template, Float resizeFactor, Map<String, Object> customData, int[] excludedResizePages)


There are special keys to send to the engine.


For how to configure the templates now, please read the Watermark Templates Configuration

Pseudo States

This allows a new key ${pseudostate} to be defined and used in a template.


User Interface

This controls if the watermark UI will be made available to non-admin users.


The retries and time between retries if a failure occurs



As this extension uses a queue to watermark, any failures will be communicated via email. This feature is limited to 1 email per 30 minutes per user.


User Interface

This controls if the watermark UI will be made available to non-admin users. file


Ensure the queue is started

Was this article helpful? Votes: 0
Article details:
Published date: 23/10/2019 8:53AM
Last updated: 19/07/2023 2:55PM (edouglas@wincom-plm.com - edouglas@wincom-plm.com)
Share article: 
Author: Simon Heath (simonh@wincom-consulting.com)
Permalink: https://windchill-extensions.ptc.com/kb/articles/watermark-advanced-user-doc