1.8
Table Of Contents
- Table of Contents
- Welcome to PrintShop Mail Connect 1.8
- Setup And Configuration
- System and Hardware Considerations
- Installation and Activation
- Where to obtain the installers
- Installation - important information
- Installation - How to guides
- Activation
- Installation Prerequisites
- User accounts and security
- The Importance of User Credentials on Installing and Running PrintShop Mail C...
- Installing PrintShop Mail Connect on Machines without Internet Access
- Installation Wizard
- Running connect installer in Silent Mode
- Activating a License
- Migrating to a new workstation
- Known Issues
- Uninstalling
- Connect: a peek under the hood
- Connect File Types
- The Designer
- Designer basics
- Content elements
- Snippets
- Styling and formatting
- Personalizing Content
- Writing your own scripts
- Designer User Interface
- Designer Script API
- Designer Script API
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Examples
- Example
- Example
- Example
- Example
- Example
- Examples
- Creating a table of contents
- Example
- Examples
- Examples
- Examples
- Examples
- Replace elements with a snippet
- Replace elements with a set of snippets
- Example
- Example
- Creating a Date object from a string
- Control Script API
- Examples
- Generating output
- Print output
- Email output
- Optimizing a template
- Generating Print output
- Saving Printing options in Print Presets
- Connect Printing options that cannot be changed from within the Printer Wizard
- Print Using Standard Print Output Settings
- Print Using Advanced Printer Wizard
- Adding print output models to the Print Wizard
- Splitting printing into more than one file
- Print output variables
- Generating Email output
- Print Manager
- Print Manager Introduction Video
- Print Manager usage
- Print Manager Interface
- Overview
- Connect 1.8 General Enhancements and Fixes
- Connect 1.8 Performance Related Enhancements and Fixes
- Connect 1.8 Designer Enhancements and Fixes
- Connect 1.8 Output Enhancements and Fixes
- Connect 1.8 Print Manager Enhancements and Fixes
- Known Issues
- Previous Releases
- Overview
- Connect 1.7.1 General Enhancements and Fixes
- Connect 1.7.1 Designer Enhancements and Fixes
- Connect 1.7.1 Output Enhancements and Fixes
- Known Issues
- Overview
- Connect 1.6.1 General Enhancements and Fixes
- Connect 1.6.1 Designer Enhancements and Fixes
- Connect 1.6.1 Output Enhancements and Fixes
- Known Issues
- Overview
- Connect 1.5 Designer Enhancements and Fixes
- Connect 1.5 Output Enhancements and Fixes
- Connect 1.5 General Enhancements and Fixes
- Known Issues
- Overview
- Connect 1.4.2 Enhancements and Fixes
- Connect 1.4.1 New Features and Enhancements
- Connect 1.4.1 Designer Enhancements and Fixes
- Connect 1.4.1 Output Enhancements and Fixes
- Known Issues
- Legal Notices and Acknowledgements
l
Press the Ctrl key while dragging, to wrap the placeholder in an absolute
positioned box (a div) at the cursor position. A unique ID is assigned to the box and
used as the script's selector.
Avoid DOM manipulations
The Scripting API of the Designer is a very powerful tool to manipulate and personalize your
document. But keep in mind that DOM manipulation commands like append(), prepend(),
before() and after() are resource intensive.
Try avoiding DOM modifications, especially within loops. Storing the content in a variable and
appending the information after the loop is more efficient: this way, the template will be touched
only once.
Example
The following example loads a snippet into a variable and uses the find() and text() commands
of the Designer scripting API.
var labelElm = loadhtml('snippets/label.html');
for(var i = 0; i < record.tables.products.length; i++) {
var label = labelElm.clone();
label.find('@ProductLabel@').text(record.tables.products
[i].ProductDescription);
results.after(label);
}
What's wrong with this code is that it inserts the personalized information within the loop. The
after() command runs as many times as there are records in the detail table 'products'.
The script below is much more efficient: it adds the personalized content to a string called
labelStr and only calls after() after the for loop.
var labelElm = loadhtml('snippets/label.html');
var labelStr = "";
for( var i = 0; i < record.tables.products.length); i++) {
var label = labelElm.clone();
label.find('@ProductLabel@').text(record.tables.products
[i].ProductDescription);
labelStr += label;
Page 273










