Skip to main content
Version: Next

WP SET ATTRIBUTES

WP SET ATTRIBUTES ( targetObj ; attribName ; attribValue {; attribName2 ; attribValue2 ; ... ; attribNameN ; attribValueN} )

ParameterTypeDescription
targetObjObject🡒Range or element or 4D Write Pro document
attribNameText🡒Name of attribute to set
attribValueText, Number, Object, Collection, Picture, Date🡒New attribute value

Description

The WP SET ATTRIBUTES command allows you to set the value of any attribute in a range, element or document. This command gives you access to any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image.

In the first parameter, you can pass :

  • a range, or
  • an element (header / footer / body / table / row / paragraph / anchored or inline picture / section / subsection / style sheet), or
  • a 4D Write Pro document

In attribName, pass the name of the attribute to set for the target and in attribValue, pass the new value to set. For a comprehensive list of attributes to pass in attribName, as well as their scope and respective values, please refer to the 4D Write Pro Attributes section.

You can pass as many attribName / attribValue pairs as you want.

Note: If you need to set multiple attributes for the same target, it is more optimized to use a single call to WP SET ATTRIBUTES with all attribute/value pairs, rather than calling WP SET ATTRIBUTES several times.

Example 1

In this 4D Write Pro area, you selected a word:

If you execute the following code:

 $range:=WP Get selection(*;"WParea") //get the selected range
 
  // set the shadow offset in pt for the selected text
 WP SET ATTRIBUTES($range;wk text shadow offset;1)
  //set the paragraph padding
 WP SET ATTRIBUTES($range;wk padding;1)
  //define a border of 10 pt
 WP SET ATTRIBUTES($range;wk border style;wk solid;wk border width;10)
  //set the border colors
 WP SET ATTRIBUTES($range;wk border color;"blue";wk border color bottom;"#00FA9A";wk border color right;"#00FA9A")

You get the following result:

Example 2

This example illustrates the use of wk inside and wk outside constants:

 $wpRange:=WP Get selection(writeProdoc)
 WP SET ATTRIBUTES($wpRange;wk border style+wk inside;wk dotted)
 WP SET ATTRIBUTES($wpRange;wk border style+wk outside;wk solid)
 WP SET ATTRIBUTES($wpRange;wk border color+wk outside;"#00FA9A")

Assuming all of the contents were selected, the result is:

Example 3

You want to set a background image for the document:

 var WParea : Object
 WParea:=WP New
 
 READ PICTURE FILE("C:\\Pictures\\boats.jpg";$picture)
 
 WP SET ATTRIBUTES(WParea;wk background image;$picture)

The result is:

You want to set a background image that covers the whole printable area:

 var WParea : Object
 WParea:=WP New
 
 READ PICTURE FILE("C:\\Pictures\\boats.jpg";$picture)
 
 WP SET ATTRIBUTES(WParea;wk background image;$picture)
 WP SET ATTRIBUTES(WParea;wk background clip;wk paper box)
 WP SET ATTRIBUTES(WParea;wk background origin;wk paper box)

The result is:

Note: The paper box value is only applicable to documents and sections.

Example 4

You want to set tabs at varying intervals and designate a character as the leading character for the last tab:

 $tab1:=New object()
 $tab1[wk type]:=wk left
 $tab1[wk offset]:="3cm"
 $tab1[wk leading]:=""
 
 $tab2:=New object()
 $tab2[wk type]:=wk center
 $tab2[wk offset]:="8cm"
 $tab2[wk leading]:=""
 
 $tab3:=New object()
 $tab3[wk type]:=wk right
 $tab3[wk offset]:="12cm"
 $tab3[wk leading]:="."
 
 $_tabs:=New collection($tab1;$tab2;$tab3)
 WP SET ATTRIBUTES(wpArea;wk tabs;$_tabs)

The result is:

See also

4D Write Pro Attributes
WP GET ATTRIBUTES
WP RESET ATTRIBUTES