Why documentation generation may fail or behave differently since 2024
Starting in 2024, Microsoft disabled ActiveX controls by default in Microsoft 365 and Office 2024 (see Microsoft's official announcement).
This plugin drives MS Word through its COM/ActiveX automation interface, and Word will now refuse to create new ActiveX objects while it is being automated this way, unless you explicitly allow it.
The feature most affected by this change is the recursiveimg tag with an *.xlsx filter, which embeds a live MS Excel worksheet into the document as an ActiveX/OLE object – this is exactly the kind of operation Microsoft's new default blocks. Plain images (*.png, *.jpg, ...) are not ActiveX objects and are not affected.
How to work around it:
Still stuck? Other software on your machine (security suites, rights-management/DLP add-ins, old leftover drivers, ...) can also silently block Word/Excel automation, sometimes with no clear error message at all. Read more about this issue with Word automation and how to diagnose it »
Starting in 2024, Microsoft disabled ActiveX controls by default in Microsoft 365 and Office 2024 (see Microsoft's official announcement).
This plugin drives MS Word through its COM/ActiveX automation interface, and Word will now refuse to create new ActiveX objects while it is being automated this way, unless you explicitly allow it.
The feature most affected by this change is the recursiveimg tag with an *.xlsx filter, which embeds a live MS Excel worksheet into the document as an ActiveX/OLE object – this is exactly the kind of operation Microsoft's new default blocks. Plain images (*.png, *.jpg, ...) are not ActiveX objects and are not affected.
How to work around it:
- In Word, open File » Options » Trust Center » Trust Center Settings » ActiveX Settings
and choose "Prompt me before enabling all controls with minimal restrictions".
Note that this setting applies to all Office applications on this computer (Word, Excel, PowerPoint, Visio), not only to documents generated by this plugin. - If generating with a template file still fails afterwards, select the "MS Office interactive mode"
option below.
This keeps Word visible while the document is generated, so any security prompt Word shows can be seen and confirmed manually instead of silently blocking the automation in the background. - If you don't need embedded Excel worksheets, avoid using the recursiveimg tag with an *.xlsx filter in your project file – this sidesteps the one operation that triggers the block.
- If none of the above helps and documentation generation still fails, remove the path to the
template file and leave this field blank. The plugin will then create a new, blank Word
document instead of opening your customized template, and documentation generation will
complete successfully.
The only downside of this workaround is that the resulting document will not include the title page normally provided by the template (company logo, pre-formatted cover, etc.) – all other generated content (sections, tables, images, references) is unaffected and will be produced as usual. This lets you keep generating documentation while the underlying Word automation issue on your machine is resolved.
Still stuck? Other software on your machine (security suites, rights-management/DLP add-ins, old leftover drivers, ...) can also silently block Word/Excel automation, sometimes with no clear error message at all. Read more about this issue with Word automation and how to diagnose it »
▲ Overview
The Documentation Generator Pro Plugin automatically generates documentation for multiple robots' archive files in MS Word or PDF format.
To customize the view of generated documents the user can edit or create a new XML documentation project file.
The plugin uses a customized MS Word document as a template to generate final documentation.
The user can prepare an MS Word template with customized header and footer and even the title page.
In the figure below you can see an example of a documentation template.
Into the first empty text field on the first page the robot name will be automatically written.
The second text field can contain the project name customized by the user.
Below you can find a description of a simple project file and predefined XML tags used to include external files' sources, display robot's system information, print variables' reference table and many others.
If you want to create your own documentation project file contact us and we will help you free of charge.
Be sure to generate the current robot's reference list before you start.
▲ Plugin widget
▲ Simple project file
To customize the look of generated documentation the user can create or edit a simple XML project file with some predefined tags.
Those tags are used to write ordinary text with specified font, color and alignment or insert some extra information about the robot.
▲ The XML project file starts with the main tag FanucDocumentationProProject.
<FanucDocumentationProProject version="">
</FanucDocumentationProProject>
Between those tags the user can define the entire documentation's content. </FanucDocumentationProProject>
| Property | Values | Description |
| version | Any valid version number text | Project file version number. |
▲ The section tag is used to attach robot's information and listing of external files.
<FanucDocumentationProProject version="1.0">
<section title="" style="" align="" include="">
</section>
</FanucDocumentationProProject>
| Property | Values | Description |
| title | Any valid text | Section title. |
| style | Style sheet |
Allows styling information to be included with the rich text for the section title. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal section title text alignment. |
| include | [ 1 | 0 ] | Includes title page section in the document if 1. If 0 or not specified this section will not be displayed. |
The section tag can contain the following subtags: img, text, robot, breakline, breakpage, filelist, reference.
▲ The makeindex tag creates pages' index.
If you want to display the correct page number for each included section in the document please insert this tag at the end of the project file.
Only in this way can the plugin refer to pages' numbers correctly.
<FanucDocumentationProProject version="1.0">
<makeindex title="" style="" style2="" align="" include="" />
</FanucDocumentationProProject>
| Property | Values | Description |
| title | Any valid text | Index page title. |
| style | Style sheet |
Allows styling information to be included with the rich text for the pages' index title. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| style2 | Style sheet |
Allows styling information to be included with the rich text for the pages' list with sections' names. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
| include | [ 1 | 0 ] | Includes pages' index in the document if 1. If 0 or not specified this section will not be displayed. |
▲ The app tag defines robot's application description.
<app text="" makro="" />
| Property | Values | Description |
| text | Any valid text | Application's description text e.g.: Handling, Kleben, Schweissen. |
| makro | Text semicolon list |
Semicolon list with makros' numbers used by specified application. For example the Handling applications use makros: 340;342;343 or the Glue uses makros: 180;181;190;191;200;201. |
See robotapplication and robot tags for more details.
▲ The stations tag defines long stations' names.
<FanucDocumentationProProject version="1.0">
<stations include="">
<name short="" long="" />
</stations>
</FanucDocumentationProProject>
| Property | Values | Description |
| short | Any valid text | |
| long | Any valid text |
See robot tags for more details.
▲ The filelist tag is used to include source code of the robot's programs.
<filelist filter="" viewer="" comment="" style="" style2="" align="" />
| Property | Values | Description |
| filter | Valid regular expression |
This regular expression defines a filter for the fileset to be searched for and included into the documentation. For example, if you want to include in the current fileset only Makro defined by the user use the following filter makro5[0-9].src. This filter will include Makro: 50, 51, 52, 53, 54, 55, 56, 57, 58 and 59 if they exist. The folge*.src filter will include all Folge files and up*.src only UP. |
| style | Style sheet |
Allows styling information to be included with the rich text for the displayed file name. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| style2 | Style sheet |
Allows styling information to be included with the rich text for the attached files' source code. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
| viewer | [ -1 | 0 | 1 ] | Displays file contents as plain text if 0. If 1 displays text as shown in the VFanuc viewer. Does not show file contents if -1. |
| comment | [ 0 | 1 ] | Displays file comment after file name if 1. |
▲ The calltree tag is used to include the recursive programs' call tree.
<calltree comment="" style="" />
| Property | Values | Description |
| comment | [ 1 | 0 ] | Displays program comment if 1. |
| style | Style sheet |
Allows styling information to be included with the rich text for the displayed file name. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
▲ The reference tag is used to include a reference list for the given variable.
This reference list is generated using robot's reference list. Please make sure that you have created the robot's reference list before you start.
The output of this command is a table with 3 columns.
The first column contains the variable name, the second one the long text for the variable and the third one lists files where this variable is used.
<reference variable="" from="" to="" exclude="" style="" align="" cellpadding="" border="" />
| Property | Values | Description |
| variable | Regular expression with variable name(s) | The variable name is one of the valid variables listed in the reference file e.g.: (E|A) - displays all inputs and outputs, Makro, M, bin, F, I, etc... |
| from | number | Lower limit for the variable range. Skip or leave it empty to start from 1. |
| to | number | Upper limit for the variable range. Skip or leave it empty to finish at the last available variable. |
| exclude | comment:<Regular expression> | This property helps to exclude certain longtexts. For now a filter based on the variable comment is supported. For example exclude="comment:Roboterfreigabe\s+d+" excludes all variable comments containing Roboterfreigabe followed by a number. |
| style | Style sheet |
Allows styling information to be included with the rich text for the displayed text. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
| cellpadding | Any positive number value | Sets the amount of space (both horizontal and vertical) between the cell wall and the contents. |
| border | Any positive number value | Establishes the size of the border surrounding the table. |
▲ The img tag inserts the given image from the resource.
<img src="" style="" height="" width="" rotation="" align="" />
| Property | Values | Description |
| src | Image | Contains a URI that is supposed to point to the location of the image resource. |
| style | Style sheet |
Allows styling information to be included with the rich text for the image. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| width | <length> px | Specifies the width of the image. |
| height | <length> px | Specifies the height of the image. |
| rotation | <angle> | Specifies the rotation angle in degrees. Positive value for clockwise rotation and negative for counterclockwise rotation. |
| align | [ left | right | center | justify ] | Horizontal image alignment. |
▲ The recursiveimg tag inserts images recursively.
You can use it to insert payload protocols, safety configuration etc...
If you want to insert more than one payload protocol image you can set the files' names as follows:
loaddata_kahka1516480r01rs--kux_T7.pdf
loaddata_kahka1516480r01rs--kux_T8.pdf
loaddata_kahka1516480r01rs--kux_T9.pdf
loaddata_kahka1516480r01rs--kux_T10.pdf
...
and use the following file filter: loaddata_kahka1516480r01rs--kux_T8.pdf
loaddata_kahka1516480r01rs--kux_T9.pdf
loaddata_kahka1516480r01rs--kux_T10.pdf
...
loaddata_*__ROBOTNAME__*.pdf
The __ROBOTNAME__ tag will be replaced with the present robot name.
<recursiveimg path="" filter="" align="" scaleW="" scaleH="" rotation="" breakpage="" />
| Property | Values | Description |
| path | Any valid system path | Path to the directory containing images. |
| filter | File filter semicolon list |
The filter is used to find suitable images in the directory e.g.: *.png;*.bmp;*.gif;*.jpg;*.jpeg You can even insert an Acrobat Reader file. In this case use the *.pdf filter. In the filter you can use the __ROBOTNAME__ tag which will be replaced with the present robot name. |
| align | [ left | right | center | justify ] | Horizontal image alignment. |
| scaleW | Any valid float number | Image width scale factor. |
| scaleH | Any valid float number | Image height scale factor. |
| rotation | <angle> | Specifies the rotation angle in degrees. Positive value for clockwise rotation and negative for counterclockwise rotation. |
| breakpage | [true | false] | break page after this image if true. |
▲ The text tag inserts plain text into the document.
If you want to write the < character please use < or > for > character.
<text style="" align="">
</text>
| Property | Values | Description |
| style | Style sheet |
Allows styling information to be included with the rich text for the inserted text. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
▲ The robot tag attaches some extra information about the robot system.
<robot attr="" title="" style="" style2="" align="" regexp="" from="" to="" />
| Property | Values | Description |
| attr | [ name | plc | safety | id | swserial | swversion | vagupdate | controlid | ip | station | tool | base | load | justage | interia | moment | armload | limits:1 | limits:2 | limits:3 | limits:4 | application | used_coll ] |
Robot's property name to be displayed. Some of the properties return only a single text line (station property prints a station description if defined (See stations for more details). |
| title | Any valid text | This is a property name displayed before the text value. |
| style | Style sheet |
Allows styling information to be included with the rich text for the property name text. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| style2 | Style sheet |
Allows styling information to be included with the rich text for the inserted property text. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
| regexp | Any valid regular expression |
Finds the matched regular expression in the given robot's attribute and returns the captured text. This can be used to extract a part of a string like the station name from the robot name string. |
| from | Any valid character index |
Returns a substring of the given robot's attribute, starting at the specified position from and leading to the
specified position to. This can be used to extract a part of a string like the station name from the robot name string. |
| to | Any valid character index |
Returns a substring of the given robot's attribute, starting at the specified position from and leading to the
specified position to. This can be used to extract a part of a string like the station name from the robot name string. |
| stationname | [ 1 | 0 ] | Adds the station name to the current attribute value. Please refer to the stations tag for more details. |
▲ The breakline tag inserts the break line character at the end of the current line.
<breakline />
▲ The breakpage tag breaks the current page and moves the text cursor to the first line of the next page.
<breakpage />
▲ The date tag is used to insert the current date in the given format.
<date style="" align="" format="" />
| Property | Values | Description |
| style | Style sheet |
Allows styling information to be included with the rich text for the property name text. A limited subset of CSS syntax can be used to change the appearance of the text. Please refer to the resources for more details. |
| align | [ left | right | center | justify ] | Horizontal text alignment. |
| format | Date format |
If empty, it is set to the default value dd.MM.yyyy. Please refer to the Qt online documentation for more details. |
▲ Examples
All listed examples have been generated automatically with our plugin.
K1U1A2211950R01.pdf
▲ Resources