comet.placeholder¶
Methods¶
- comet.placeholder.set(frame, placeholderID, ID=None, position=-1, length=0)¶
Set a placeholder for the specified frame or text part and connect it to the specified record ID. The content of the placeholder is not loaded. When setting the placeholder, it is checked whether the placeholder is defined in the data pool and is of the appropriate type (frame placeholder for frame, text placeholder for text).
- Parameters:
frame (CFrame) – The frame to set the placeholder into.
placeholderID (int) –
The placeholder ID.
0: Undefined empty placeholder
-2: Remove placeholder.
In texts, placeholders at the beginning and end of the text area are also automatically removed completely. When removing frame placeholders, the IDs of any linked object in the frame are retained.
If the object ID is also to be removed, the
link()
function with object ID 0 (or -2), 0, 0, “” must be called BEFOREset()
.-3 : (Only for text placeholders) Delete placeholder exactly in the specified text area.
else : The placeholder must have a relatedToID which is allowed for the context.
ID (CIDType) – When this parameter is not
None
, the placeholder is immediately linked to this record ID.position (int) –
Start position in the text from which the placeholder should be set.
-1 : Change frame placeholder (not text placeholder)
Illustrator® Ignored
length (int) –
Length of the text whose placeholders are to be changed.
-1: Placeholder outside tables is set up to the end of the current text.
In tables, the placeholder is set up to the end of the table cell in this case.
Illustrator® Ignored
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.link(frame, ID, position=-1, length=-1, autoLoad=False, applyLayoutRules=False, changeStaticLinks=False)¶
Connect all placeholders of a frame (or text range inside a frame) and all its child objects with a record.
- Parameters:
frame (CFrame) – The frame to do the placeholder links in.
ID (CIDType | tuple[int, int, int, str]) –
The record ID to links placeholders to.
The parameter type can be:
position (int) –
- >=0: Process text placeholders only from this text position.
length must be > 0 and frame must be a text frame.
-1: Relink all text and frame placeholders.
-2: Relink only the frame placeholder.
Illustrator® Ignored
length (int) –
Length of the text whose links are to be changed.
Only evaluated when position is >= 0
Illustrator® Ignored
autoLoad (bool) –
Immediately load the placeholders after linking?
applyLayoutRules (bool) –
Only evaluted when autoLoad is True
Layout rules are not normally called for individual text placeholders. If you still want to execute the “After load” rules of the frame when applying the function to text placehoders, set the parameter to True.
changeStaticLinks (bool) – Overwrite static product links?
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.load(frame, start=-1, length=-1, applyLayoutRules=False, placeHolders=[], recordIDs=[])¶
Execute the load action for all placeholders of a frame or text including its sub-objects.
- Parameters:
frame (CFrame) – The frame to do the loading for.
start (int) –
The text start index to begin loading.
>=0 : Process text placeholders only from this text position. The parameter length must be > 0 and the passed frame must be a text frame.
-1 : Reload all text and frame placeholders.
-2 : Reload only the frame placeholder.
Only evaluated for text frames.
length (int) –
The text length to load placeholders for.
Default is
constants.kEnd
== load every placeholder until the text end.Only evaluated for text frames.
applyLayoutRules (bool) –
Layout rules are not normally called for individual text placeholders.
When you want to execute the “After loading” rules of the frame when applying the function to text areas anyway, set this parameter to
True
.List of placeholderIDs to restrict loading to.
Empty list: Impose no restrictions
recordIDs (list[CIDType | tuple[int, int, int, str]]) –
List of recordIDs to restrict loading to.
Empty list: Impose no restrictions
The entry types can be:
- Returns:
None
- Raises:
TypeError – When parameter types are invalid.
When parameter start has invalid value.
When parameter length has invalid value.
CometError – On internal error.
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.loadServer(entities={})¶
Execute the standard load script of a placeholder in a PublishingServer environment.
This function can only be used in the context of a placeholder load script.
For a more in-depth explanation, see here
- Parameters:
entities (dict[str, str]) – Key/value pairs to override or set certain input values
- Returns:
The result from executing the load script
- Return type:
- Raises:
TypeError – When parameter types are invalid
ValueError – When parameter entities contains invalid value
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.loadDataProvider(dataProviderID, resultType, resultEntityID='', search='', replacements={})¶
Load data from a DataProvider.
Please note:
In most cases, you should prefer one of the following solutions instead of
loadDataProvider()
:loadServer()
: In the placeholder context, this function is much simpler and safer. All values defined for the placeholder will be passed correctly, except those you explicitly override.
loadServer()
also ensures that context rules defined for the placeholder are evaluated correctly and transmitted to the server.loadDataProvider()
does not support context rules, since they are defined only at the placeholder level. Therefore, neither language and country criteria nor document specific properties like the documentID can be used.Outside of placeholders, calling your own Java method is more flexible, safer and easier. The procedure is described in cScript / Java Bridge.
- Parameters:
dataProviderID (str) – Identifier of the data provider.
resultType (int) –
The result type of the data provider. This must match the data provider which is called and determines the result type of this function.
Currently the following data types can be processed:
0: A single string (the first one supplied by the DataProvider) is returned as the result.
Result type is
str
.1: The result is returned as a simple string list.
2: A list of of IDs.
3: A list of products.
resultEntityID (str) – Identifier of the result entities. The content replaces the <Entity.ResultId> tag of the dataProviderID statement.
search (str) – SearchString. The content replaces the <Record.SearchStr> tag of the dataProviderID statement.
replacements (dict[str, str]) –
Any number of key/value pairs consisting of two strings each for further replacements.
The replacement of the key/value pairs is a pure search and replace in the statement of dataProviderID: In the statement, all occurrences of <key> are replaced with ‘value’. Single quotes in Values are masked in the process.
Of course, to replace all tags used in the statement, you need to know the statement. The original DataProvider statement is written to the logfile with the preamble # DataProvider statement received from server. The result of the substitutions can also be found in the logfile with the introduction # Preprocessed data provider statement.
Which value is expected for which key may have to be asked where the DataProvider method was created. Values to replace the common PublishingServer specific tags can be found here.
- Returns:
The result from loading the data provider. Data type depends on parameter resultType.
- Raises:
TypeError – When parameter types are invalid.
When parameter resultType has invalid value.
When parameter replacements contains invalid value.
CometError – On internal error
- Available:
InDesign® comet_pdf®
- CScript:
- comet.placeholder.store(frame, start=0, length=-1, placeHolders=[], recordIDs=[])¶
Execute the store action for all placeholders of a frame or text including its sub-objects.
- Parameters:
frame (CFrame) – The frame to store placeholders for.
start (int) –
The text start index to begin storing.
Only evaluated for text frames.
length (int) –
The text length to store placeholders for.
Default is
constants.kEnd
== store every placeholder until the text end.Only evaluated for text frames.
List of placeholderIDs to restrict loading to.
Empty list: Impose no restrictions
recordIDs (list[CIDType | tuple[int, int, int, str]]) –
List of recordIDs to restrict loading to.
Empty list: Impose no restrictions
The entry types can be:
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
When parameter start has invalid value
When parameter length has invalid value
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.build(frame)¶
Execute the build action of a frame. This action should normally create the repeating elements for this frame. The placeholder of the frame must be:
RelatedTo kMultiFrame (=6)
CharacterStyleID > 0
- Parameters:
frame (CFrame) – The frame to execute the build action for.
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
CometError – On internal error
- Available:
InDesign® comet_pdf®
- CScript:
- comet.placeholder.getTagValue(frame, slot, textIndex=-1)¶
Query placeholder information from a frame or text in a text frame.
- Parameters:
frame (CFrame) – The frame to fetch the values from
slot (str) –
The slot to get (Case insensitive).
See Placeholder slots for a table of keys.
textIndex (int) –
When frame is a text frame this parameter can be used to query text placeholder information inside the frame.
-1: Ignore text placeholders and query the frame itself
- Returns:
The tag value and text start and length. When querying a frame placeholder, the text start and length will be 0.
Return value is in the form (value, start, length), where value is the queried slot data.
- Return type:
tuple[int, int, int] | tuple[str, int, int], depending on the queried slot
- Raises:
TypeError – When parameter types are invalid
ValueError – When parameter slot has invalid value
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.setTagValue(frame, slot, value, target=3, position=0, length=-1)¶
Change either the placeholder on frame or all contained placeholders, or both.
Depending on the type of the change attribute slot, value must be either str or int.
See Placeholder slots for a table of keys for slot and their data types for value.
- Parameters:
frame (CFrame) – The frame to change the placeholder values in.
slot (str) –
The slot to change (Case insensitive).
See Placeholder slots for a table of keys.
value (str | int) – The value to set. Type depends on the slot.
target (int) –
Whether to change only the frame placeholder slots, placeholder slots inside the frame or everything.
1: Change only the frame placeholder
2: Change the contained placeholders
3: Change all placeholders
Illustrator® Ignored
position (int) –
Start of the range for changing contained placeholders.
Only evaluated when target is 2 or 3
Illustrator® Ignored
length (int) –
Length of the range for changing contained placeholders.
Only evaluated when target is 2 or 3
Illustrator® Ignored
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
ValueError – When parameter target has invalid value.
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.getFuncVarValue(frame, name, textIndex=-1, actionType=1)¶
Get the value of a placeholder function variable.
- Parameters:
frame (CFrame) – The frame to query the function variable values from.
name (str) – The name of the variable to query.
textIndex (int) –
Text index of the placeholder.
>= 0: Text index of the text placeholder.
< 0: Frame placeholder.
actionType (int) –
Which action type to set the function variable value for.
One of Action types.
- Returns:
None
- Raises:
TypeError – When parameter types are invalid.
When parameter name is empty.
When parameter actionType has invalid value.
KeyError – When function variable was not found.
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript:
- comet.placeholder.setFuncVarValue(frame, name, value, textIndex=-1, actionType=1)¶
Set the value of a function variable of a placeholder.
If no value exists for the given variable name, a new entry is created for this name in the placeholder (not in Illustrator!).
However, this variable can probably not be used in the script.
Changes to the values of function variables have no effect on the value of the variable in the current script (you can also use the new value here directly).
- Parameters:
frame (CFrame) – The frame to change the function variable values in.
name (str) – The name of the variable to set.
value (str) – The value of the variable to set.
textIndex (int) –
Text index of the placeholder.
>= 0: Text index of the text placeholder.
< 0: Frame placeholder.
actionType (int) –
Which action type to set the function variable value for.
One of Action types.
- Returns:
None
- Raises:
TypeError – When parameter types are invalid
ValueError – When parameter actionType has invalid value.
CometError – On internal error
- Available:
InDesign® comet_pdf® Illustrator®
- CScript: