1.8

1 2 3 4 5 6 7 8 9 10
Table Of Contents
User Guide
Version:1.8

Summary of content (708 pages)

​ This script's selector is
, so the script appends a paragraph to all Div elements in the template. ​results.

  • PAGE 521

    Matched element Matched element after script execution

    Personal information

    Personal information

    Peter Parker

    ​ This script looks for an element with the ID box, appends a paragraph to it and colors all text inside the box red. query("#box").append("

    Peter Parker

    ").

  • PAGE 522

    Examples This script - with the selector img - stores the source of the first image in a variable. ​var src = results.attr("src");​ ​The following script looks up an image with the ID #image1 and stores its background color in a variable. var imgURL = query("#image1").attr("src"); attr(attributeName, valu​e) Sets the value of the specified attribute of each element in a result set. attributeName String; the name of the attribute. value String; value for the attribute.

  • PAGE 523

    before(content) Before(content) inserts content before each element in the set of elements that match the script's selector. Before() creates a new result set. content String, HTML string or result set to insert after the elements. In case a plain text string is provided, it is automatically wrapped in a element to avoid orphan text nodes to appear in the element. Examples This script looks for an element with the ID salesrepand inserts a paragraph before that element. results.

  • PAGE 524

    Matched element Matched element after script execution

    Peter Parker

    Lorem ipsum

    Peter Parker

    Note: the way the functions before() and css() are used in this script is called 'chaining'. Chaining is optional; the same could be achieved by storing the result of the query in a variable: var salesrep = query("#salesrep"); salesrep.before("

    Lorem ipsum

    "); salesrep.

  • PAGE 525

    Examples This script retrieves the inner HTML of an element selected from a snippet. var snippet = loadhtml('snippets/snippet.html','#foobar').children (); results.append(snippet); The following script retrieves the inner HTML of the elements and then performs a find/replace. var snippet = loadhtml('snippets/snippet.html','#foobar').children (); snippet.find('@firstname@').text('foobar'); results.

  • PAGE 526

    The following script clones an existing table row to match the number of rows in a detail table. Afterwards it iterates over the rows to populate the fields. // Create the number of rows based on the records in the detail table // We start at 1 so the boilerplate row is used too and there is no need to delete that row for(var r = 1; r < record.tables['detail'].length; r++) { results.parent().append(results.

  • PAGE 527

    closest(selector) For each element in a set, this function gets the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. selector A String containing an HTML tag (without the angle brackets, <>). Examples The following script looks up all table rows in the template that contain an element. query("input").

  • PAGE 528

    The following script looks up an element with the ID #calloutbox and stores its background color in a variable. var backgroundcolor = query("#calloutbox").css("background-color"); css(styleName, valu​e) Function to set a CSS property. propertyName String; the name of the CSS property. value String; value for the CSS property or a map of property-value pairs to set. Examples This script looks up an element with the ID #calloutbox and sets its text color to red. query("#callout p").

  • PAGE 529

    css(properties) Function to set one or multiple CSS properties. properties Array; map of property-value pairs to set. Examples This script colors the text of the results (the set of HTML elements that match the selector of the script) red and makes it bold. ​results.css({'color' : 'red', 'font-weight' : 'bold'}); empty() Remove the contents (child elements and inner HTML) from one element or a set of elements in the template. Use remove() to remove the elements themselves.

  • PAGE 530

    filter() filter(callback) Returns a subset of a set. All elements for which the callback function returns true will be included in the result. callback A function used as a test for each element in the set. Filter() passes the iteration index and the current element to the callback function. In the scope of the callback function, this refers to the current element. Example The selector of the following script is li (list item), so the results object contains all list items in the template.

  • PAGE 531

    results.filter(":nth-child(even)").css("background-color", "red"); find() find(textToFind) Performs a deep search for textToFind in the children of each element, and returns a new result set with elements that surround the occurrences. textToFind A String that contains the search text. Example The following piece of code loads a snippet, then looks for placeholders using find(), and replaces them with a text. var mysnippet = loadhtml('snippets/snippet.html'); mysnippet.find('@var1@').

  • PAGE 532

    hide() Hides the elements in a set. This doesn't remove the elements; to make them visible again, use the function "show()" on page 540. These functions are used by the Conditional Script Wizard, as you can see when you open a Conditional Script and click the Expand button; see "Showing content conditionally" on page 255.

  • PAGE 533

    The following script loads a snippet. Then it looks for a placeholder (@var2@) in the text of that snippet and replaces every found placeholder by the text 'OL Connect 1'. It uses html() so the HTML formatting ( and ) will indeed be interpreted as HTML. Finally, it places the snippet in the template. var mysnippet = loadhtml('snippets/snippet.html'); mysnippet.find('@var1@').html('OL Connect 1'); results.

  • PAGE 534

    The following style rules, added to the style sheet, will align the chapter titles to the left and the page numbers to the right: #toc li { text-align:left; } #toc span { float: right; } Note that these styles use the list's ID, that was defined in the first line of code. For information about style sheets, see "Styling templates with CSS files" on page 200. parent() Returns the parents of the elements in a set. (In HTML, a parent is an element that contains another element.

  • PAGE 535

    HTML string, string or HTML string to insert after the matched elements. In case a plain text string is provided, it is automatically wrapped in a element to avoid orphan text nodes to appear in the element. Examples This script inserts a heading as the first element in an element that has the ID #box. results.

  • PAGE 536

    Selector Matched element Matched element after script execution

  • Peter Parker

    Peter Parker

    Personal information

    Peter Parker

    ​​ This script prepends a snippet that contains the text "

    Personal information

    ". var a = loadhtml('snippets/snippet.html'); results.

  • PAGE 537

    query("#box").prepend("

    Personal information

    ").css ("color","red"); Matched element Matched element after script execution

    Peter Parker

    Personal information

    Peter Parker

    ​​ Note: the way the functions prepend() and css() are used in this script is called 'chaining'. Chaining is optional; the same could be achieved by storing the result of the query in a variable: var box = query("#box"); box.

  • PAGE 538

    Selector Paragraph before script execution Paragraph after script execution consectetuer adipiscing elit.

    The selector of the following sample script is tbody. Before this script runs, the table body consists of a single placeholder row with three cells. After running the script, it contains thirty rows. To improve performance, most of the DOM manipulation takes place on detached elements. // Detach the placeholder row from the DOM var row = query("tr", results).

  • PAGE 539

    String; the name of the attribute. Examples This script looks up an email field in a form (which is an with the ID #email1) and removes its readonly attribute. query("#email1").removeAttr('readonly'); removeClass() Removes the specified class from each element in this result set. Has no effect if the class is not present. removeClass(classname) classname String, space separated list of class names.

  • PAGE 540

    Examples Replace elements with a snippet The following script loads a snippet and then replaces the elements matched by the script's selector with the snippet. var snippet = loadhtml('snippets/mysnippet.html'); results.replaceWith(snippet); Replace elements with a set of snippets The following script loads snippets and adds their elements to a new, empty result set (using query()). Then it replaces a placeholder in the template with the set of snippets.

  • PAGE 541

    text() text() : String Returns the text content of the first element in a result set. Example This script loads a snippet into a variable and retrieves an element from the snippet using query () and text(). var mysnippet = loadhtml('snippets/text-root-wrapped.html'); var subject = query("#subject", mysnippet).text(); results.append("

    " + subject + "

    "); text(value) Replaces the text content of each element in a result set by the supplied value.

  • PAGE 542

    A function. The callback function is passed the iteration index and the current element. In the scope of the callback function, this refers to the current element. Examples The following two scripts demonstrate a simple iteration over the elements in the results (the set of HTML elements that match the selector of the script). This script sets the background color of each of the elements to red. (This is just to demonstrate how this function works.

  • PAGE 543

    Selector Matched element Matched element after script execution

    1

    2

    ​​ Using each() in a translation script The following script first loads a snippet containing translation strings, depending on the value of a field. Then it inserts translations by iterating over elements in the results (the set of HTML elements that match the selector of the script) and setting the HTML of each element with a value from the array of translation strings.

  • PAGE 544

    for(variable in object) { ... } Iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed. Examples This script iterates over field names in the current record and adds them to a paragraph. for(var i in record.fields){ results.

  • PAGE 545

    Note The TextFormatter object is now deprecated and will eventually be removed. Functions Function l l currency() currencyNoSymbol () l grouped() l integer() l l l Description The currency(), grouped(), integer() and number() functions allow you to format a number, possibly with a custom pattern. See Number functions.

  • PAGE 546

    Function l properCase() Description first character of each word to uppercase and all other characters to lowercase. Date, date/time and time functions l date() l dateLong() l dateMedium() l dateShort() l dateTime() l dateTimeLong() l dateTimeMedium() l dateTimeShort() l time() l timeLong() l timeMedium() l timeShort() Note The locale also influences the output of the different Date functions; see "Locale" on page 235.

  • PAGE 547

    String. The custom pattern may consist of pattern letters, separating symbols and quoted text, for example: "MMMM dd, yyyy"; see "Date and time patterns" on page 550. Note that the repetition of pattern letters determines the exact presentation. dateLong(value) Formats a date as long string representation, for example April 1, 2016. value A Date object. A Date can contain a date and time. dateMedium(value) Formats a date as medium string representation, for example 01/04/16. value A Date object.

  • PAGE 548

    dateTimeLong(value) Formats a date and time as long string representation, for example April 1, 2016 12:00:00 EDT AM. value A Date object. A Date can contain a date and time. dateTimeMedium(value) Formats a date and time as medium string representation, for example 1-Apr-2016 12:00:00 AM. value A Date object. A Date can contain a date and time. dateTimeShort(value) Formats a date and time as short string representation, for example 01/04/16 12:00 AM. value A Date object. A Date can contain a date and time.

  • PAGE 549

    timeMedium(value) Formats a time as medium string representation, for example 12:00:00 AM. value A Date object. A Date can contain a date and time. timeShort(value) Formats a time as short string representation, for example 12:00 AM. value A Date object. A Date can contain a date and time. Examples Creating a Date object from a string When you open a data file or database in the Designer, all fields are text fields (fields of the type string).

  • PAGE 550

    Another way to put a string in a Date is to use the Date.parse function; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_ Objects/Date/parse. The date variable can be used as the value in the date, dateTime or time functions of the formatter. var myDate = formatter.date(date, "MM/dd/yyyy"); The custom pattern that the script provides, outputs the month and day in two digits each and the year in four digits: 05/21/2016.

  • PAGE 551

    Y Week year Year 2009; 09 M Month in year Month July; Jul; 07 w Week in year Number 27 W Week in month Number 2 D Day in year Number 189 d Day in month Number 10 F Day of week in month Number 2 E Day name in week Text Tuesday; Tue u Day number of week (1 = Monday, ...

  • PAGE 552

    location outside the template. An optional selector allows you to retrieve only the content of matching elements. Note Loadhtml() is cached per batch run (based on the URL) in print/email. loadhtml(location) Loads all HTML from the specified HTML file. location String containing a path that can be absolute or relative to the section/context. Use snippets/ to retrieve the content from an HTML file residing in the Snippets folder on the Resources panel.

  • PAGE 553

    The following script loads a snippet into a variable and finds/replaces text in the variable before inserting the content into the page. The second find command also adds formatting to the replacing text. var mysnippet = loadhtml ('file:///C:/Users/PParker/Documents/Example.html'); mysnippet.find('@var1@').text('OL Connect 1'); mysnippet.find('@var2@').html('OL Connect 2').css('textdecoration','underline'); results.

  • PAGE 554

    Examples​​ This script loads a specific element from a snippet and uses that to replace the results (the HTML element or set of HTML elements matched by the selector of the script; see "results" on page 511). var mysnippet = loadhtml('snippets/snippetselectors.html','#item3'); results.replaceWith(mysnippet); This script loads the children of the selected element. var snippet = loadhtml ('file:///C:/Users/PParker/Documents/Example.html','foobar').childr en(); results.

  • PAGE 555

    location String; the supplied location should be either a URL or a relative file path. The file protocol is supported as well as the http/https protocols. The complete syntax of a fully qualified URL with the "file" protocol is: file:///. If the host is "localhost", it can be omitted, resulting in file:///, for example: file:///c:/somefolder/somejson.json. Examples This sample script retrieves JSON data from a snippet. var localJSON = loadjson('snippets/jsonsnippet.json'); if(localJSON.

  • PAGE 556

    descendants of one or more context elements. The new result set is of the type QueryResults, just like the results object which is also the result of a (hidden) query. All functions that can be used with the results object can also be used with this result set; see "results" on page 511. query(selector) Creates a new result set containing the HTML elements in the current section that match the supplied CSS selector. selector A String containing a CSS selector. See http://www.w3schools.

  • PAGE 557

    selector A String containing a CSS selector. See http://www.w3schools.com/cssref/css_selectors.asp for CSS selectors and combinations of CSS selectors. context A result set (the result of another query) or an HTML string. If the passed context is not a result set or HTML string it will be coerced to a String and interpreted as HTML. Examples This script performs a query in the results of another query.

  • PAGE 558

    Tip The Dynamic Attachment script uses this function to add an attachment to an Email section; see "Email attachments" on page 125. resource() The resource() function returns information about an image resource. It can also be used to check if a file exists. This function is useful in a Control Script, for example to check the number of pages or the page height and width before setting it as a background (see "Control Script: Setting a Print section's background" on page 288).

  • PAGE 559

    var var var var pdf = resource("images/stamp.pdf", 2); height = pdf.height; width = pdf.width; numberOfPages = pdf.pages; In this script, the function is used to check if a file exists. if(resource("C:/paw.pdf")){ //exists } else { //oops } Control Script API The table below lists the objects that are the most important in Control Scripts. Click through to the object to find a description and sample scripts.

  • PAGE 560

    Object Usage "merge" on page 563 The merge object gives access to the template with all of its contexts and sections . channel (see "Channel" on page 576) The channel for which output is generated. This is registered in the merge object: merge.channel. Note that the channel doesn't change when the output consists of different contexts. When generating email, for example, the channel is EMAIL, even when merging the Print context to attach it to the email.

  • PAGE 561

    Field Type Description sections Array Array of sections (see "section" on page 564) inside a particular context defined in the template. Note: When using merge.context.sections keep in mind that for example 'Section X' might only exist in your Print context, so using merge.context.sections['Section X'] without enclosing it in the if statement if (merge.context.type == ContextType.PRINT) {} will yield an error when the script runs for other contexts.

  • PAGE 562

    Fields Field Type Description stationery Stationery The Stationery's object's front and back fields are used to set the front and the back of a Media; see "front, back" below. front, back The front and back fields of the Stationery object are used to set the front and the back of a Media (see "media" on the previous page). Both front and back have the following fields. Field Type Description enabled boolean When enabled, the stationery will be included in the output (Print sections only).

  • PAGE 563

    Field Type Description left Measurement The horizontal offset from the left of the page, used to position the stationery (only when absolute positioning is selected). This value can be negative. merge In Control Scripts, the root level instance of the object merge is the entry point from where you can query and change the way contexts are merged. It gives access to the template with all its contexts and sections. For sample scripts, follow the links to the respective objects.

  • PAGE 564

    Field Type Description merge.template.contexts.PRINT.sections ["Section EN"]). "template" on page 573 Template This object contains the template and all of its contexts. It can be used to find out which contexts are available in the template, using merge.template.contexts (see "context" on page 560) and to manipulate the sections in those contexts (see "section" below). section The section object can be used to query and modify how the section (and the related context) will be outputted.

  • PAGE 565

    Field Type Description enabled boolean Enables or disables this section for output (see "Examples" on page 567). Note that even if a section is disabled, the part and restartPageNumber fields are still effective to define the parts division and page numbering over multiple sections when applicable. The default enabled state for sections (before any control script runs) is as follows: For Email channel requests on the Print context all Print sections are enabled by default.

  • PAGE 566

    Field Type Description part String Name for the part. part is used to specify where a new part starts and the title for the part. This is used to split Email attachments. The Email output can, for example, attach 3 PDFs generated from the Print context. The part name will be used as the file name for the attachment. See "Parts: splitting and renaming email attachments" on page 287. password String Print sections only.

  • PAGE 567

    Function Description "Examples" on page 572 Clone this section. See "Dynamically adding sections (cloning)" on page 290. addAfter() Add a cloned section after this section. addBefore() Add a cloned section before this section. Examples Conditionally skipping or printing Print sections This script disables all Print sections and then re-enables one of them, depending on a value in the current record. var printSections = merge.template.contexts.PRINT.sections; printSections['Section EN'].

  • PAGE 568

    printSections['Section 2'].enabled = false; } Setting the name of Email PDF attachments This script renames the file name of an attachment by setting the part name of a section (see "Parts: splitting and renaming email attachments" on page 287). var section = merge.template.contexts.PRINT.sections['Section 1']; section.part = 'Invoice ' + record.

  • PAGE 569

    that creates multiple PDF attachments, all the attachments are secured by the same password by default. Using a Control Script, you can set set different passwords for attachments; see "Control Script: Securing PDF attachments" on page 293. Positioning the background of a Print section These scripts both set the background of a Print section to the same PDF, but they position it differently. Using abolute positioning var activeSection = merge.template.contexts.PRINT.sections['Section 1']; activeSection.

  • PAGE 570

    var printSections = merge.template.contexts.PRINT.sections; var numClones = record.tables['detail'].length; for( var i = 0; i < numClones; i++){ var clone = printSections["Section 1"].clone(); clone.name = "my_section_clone_" + i; printSections["Section 1"].addAfter(clone); } Cloning a section based on data and assign a background PDF This script clones a section based on data fields. It disables the source section first and then calls the addPolicy function.

  • PAGE 571

    Field Type Description end Number The end page of the PDF to use as a background for the section. left Measurement The left offset of the PDF background (only when absolute positioning is selected). position "MediaPosition" on page 578 Set the position of the PDF background (Absolute, centered, fit to media). source "BackgroundResource" on page 575 Set the source of the PDF background (None, Datamapper, PDF Resource). Note DataMapper cannot be used in PrintShopMail Connect.

  • PAGE 572

    clone() This function returns a new set containing a copy of each element in a set; see "Dynamically adding sections (cloning)" on page 290. Note Due to resource constraints, the number of unique clones that can be created throughout a job is limited to around 20. A clone is considered unique if it has a different name. This is a rough estimate; if the template is simple, up to 60 clones may be created. The limit only applies to the amount of unique clones.

  • PAGE 573

    ["ItemOrdered"]); this.find('@ItemTotal@').text( record.tables['detail'][i].fields ["ItemTotal"]); this.find('@ItemDesc@').text( record.tables['detail'][i].fields ["ItemDesc"]); this.find('@nr@').text(i); }); The following script clones and populates a boilerplate row. Once completed you will need to hide the boilerplate row. template The template object represents the template with all its contexts and sections.

  • PAGE 574

    Example The following Control Script retrieves two Print sections. Then, depending on a value in the current record, it enables one section or the other, so that only one of the two sections appears in the output. var printSections = merge.template.contexts.PRINT.sections; printSections['Section EN'].enabled = false; printSections['Section FR'].enabled = false; if(record.fields.Language === 'FR'){ printSections['Section FR'].enabled = true; } else { printSections['Section EN'].

  • PAGE 575

    Field Type Description description String Description of the document file String File name of the document keywords String Semicolon-separated list of keywords modified Date Date and time on which the document was last saved Example This script stores a default property (author) and a custom property in variables. var author = merge.template.properties.author; var myProperty = merge.template.customProperties.

  • PAGE 576

    Field Description NONE No PDF background. RESOURCE_ PDF A PDF file stored in the template or on the network. Note that it isn't possible to use a remotely stored PDF file as a section's background. Example The following script sets the background for a section called 'Policy' to RESOURCE_PDF and specifies a path for it, using a data value: // Enable the section background and specify that the PDF should be read // from a resource file merge.template.contexts.PRINT.sections['Policy'].background.

  • PAGE 577

    Value Description EMAIL The merge request is for output to Email. PRINT The merge request is for output to Print. THUMBNAIL The merge request is for generating a template preview. Example The following Control Script selects different sections for Print output and for Email with the Print context attached to it. var printSections = merge.template.contexts.PRINT.sections; if(merge.channel === Channel.EMAIL){ printSections['Section 1'].enabled = false; printSections['Section 2'].

  • PAGE 578

    Value Description PRINT The context is the Print context. Example This script retrieves two Print sections. Then, depending on a value in the current record, it enables one section or the other, so that only one of the two sections appears in the output. var printSections = merge.template.contexts.PRINT.sections; printSections['Section EN'].enabled = false; printSections['Section FR'].enabled = false; if(record.fields.Language === 'FR'){ printSections['Section FR'].

  • PAGE 579

    var activeSection = merge.template.contexts.PRINT.sections['Section 1']; activeSection.background.source = BackgroundResource.RESOURCE_PDF; activeSection.background.position = MediaPosition.ABSOLUTE; activeSection.background.left = "10mm"; activeSection.background.top = "10mm"; activeSection.background.url = "images/somepage.pdf"; The next script scales the background of a Print section to the size of the Media. var activeSection = merge.template.contexts.PRINT.sections['Section 1']; activeSection.

  • PAGE 580

    Generating output When merged with a record set, the templates made in the Designer can generate twotypes of output: Print, and Email. Print output Print templates, also called Print sections, are part of the Print context. They are meant to be printed to a printer or printer stream, or to a PDF file (see "Generating Print output" on page 582). The Print context can also be added to Email output as a PDF attachment; see "Generating Email output" on page 596.

  • PAGE 581

    To test a template, you can test the scripts (see "Testing scripts" on page 268) and send a test email first (see Send Test Email), before actually sending the email (see "Generating Email output" on page 596). Attachments Output, generated from an Email template, can have the following attachments: l The contents of the Print context, in the form of a single PDF attachment. l Other files, an image or a PDF leaflet for example.

  • PAGE 582

    There are several tools to combine image files into a singe PDF. ImageMagick is one of them. You could use the convert command of the ImageMagick library: convert C:/myimages/*.jpg C:/myimages/image-collection.pdf You could also use Connect Designer itself: create a print template with the size of your images and set the page margins to 0. Create a script that loops over your images and adds them to the text flow of the template.

  • PAGE 583

    l File > Print... allows the following printing options: l l l Using the Default output settings. For more details, see "Print Using Standard Print Output Settings" on the facing page Using the same settings that were last used to produce printed output. For more details, see "Print Using Standard Print Output Settings" on the facing page Using entirely new output settings set via the Advanced option, which allows selection from a myriad of print output options.

  • PAGE 584

    Connect Printing options that cannot be changed from within the Printer Wizard There are a number of settings for the Print context and Print sections that have an impact on how Print sections are printed, which cannot be influenced through either a Job Creation Preset or an Output Creation Preset. These settings are: l l l Duplex printing. Duplex printing has to be enabled for a Print section, in order to print that section on both sides of the paper. The same applies to Mixplex printing.

  • PAGE 585

    l l Job Creation: Use the drop-down to select existing Job Creation Presets. Use the Gear button to edit the currently selected Preset or to reload the list of Presets from the system. Preset Summary: Displays a summary of the settings for the currently selected Presets. Note The Default output type of PDF Output is actually a built in system Preset, whilst the Last Used settings can likewise be considered an un-named and un-saved Preset.

  • PAGE 586

    Note Any settings made within the Advanced Print Wizard do not permanently update any Preset(s) being used. l Print button: Click to produce print output according to the current settings. l Cancel button: Cancels the Print Wizard, without creating any printout. Print Using Advanced Printer Wizard The Advanced Printer Wizard allows you to select from any and all output settings.

  • PAGE 587

    After they have been added, the newly selected print output models will be available in the Print Wizard thereafter. How to add print output models from within the Print Wizard Here is how to add print output options from within the Print Wizard dialog itself. 1. Select File > Print... from the menu. The Print dialog will be launched. 2. Click on the Advanced button. The Print Wizard will be launched. 3. Click the settings button at the end of the Model selection. 4.

  • PAGE 588

    To make one document or a group of documents go into a separate file, the print job needs to be 'separated'. Separation is one of the options to set in an Output Creation Preset. See "Generating Print output" on page 582 for a further explanation about Job Creation Presets and Output Creation Presets.

  • PAGE 589

    Template ${template} ${template} is a shorthand for ${template.base}_ ${template.nr,0000}.${template.ext}. It expands to a name based on the template name. A four digit sequence number is added at the end of the base name. The file extension is determined by the selected output format. The 0000 in ${template.nr,0000} is a format pattern that takes care of formatting the number with at least four digits and leading zero's. See "Formatting date and number values " on page 596, below.

  • PAGE 590

    ${template.ext} The extension that corresponds to the chosen output format (in lower case). For example, for PDF output, ${template.ext} would be pdf, for PostScript output, ${template.ext} would return ps. Note that ${template.ext} does not include a leading dot. File ${file} ${​file} is a shorthand for ${file.base}_ ${file.nr,0000}.${file.ext}. It expands to an internally generated file name with a four digit sequence number at the end. The file extension is determined by the selected output format.

  • PAGE 591

    ${file.pageCount} This variable was introduced for use in Printer Definitions for PostScript printers. As it entails page buffering and could easily lead to Out of Memory errors with big jobs, usage of this variable in an Output Preset or in the Print Wizard is discouraged; it should be regarded as deprecated. Job ${job} ${job} is a shorthand for ${job.base}_${job.nr,0000}.${job.ext}.

  • PAGE 592

    Content variables The variables listed below can be used in text, barcodes, and OMR and Image data in the "Additional Content" on page 430 page, and in the Conditional field when selectively adding inserts in the "Inserter Options" on page 498. If the output is grouped and separated, Content variables on the separation level and above are also available as File name variables.

  • PAGE 593

    ${page.nr} or ${page.sequence.document) Page number in the document. ${page.sequence.sheet} Page number on the sheet. ${page.sequence.set} Page number within the document set. ${page.sequence.segment} Page number within the job segment. ${page.sequence.job} Page number within the job. ${page.width} The page's width (in points). Sheet ${sheet.count.pages} Total number of pages on the sheet. ${sheet.duplex} True when printing on the sheet is duplex. ${sheet.

  • PAGE 594

    Document Value of a meta data property of the document. ${document.metadata. propertyname} or ${document.metadata ['propertyname']} The propertyname must have been defined as a Tag Name on the Document Tags tab of the "Metadata options" on page 481 page in the Advanced Print Wizard or Job Creation preset. Note: this variable is only available if Separation based on Document has been selected on the "Separation options" on page 488 page in the Advanced Print Wizard or Output Creation preset. ${document.

  • PAGE 595

    ${set.count.pages} Total number of pages in the document set. ${set.count.sheets} Total number of sheets in the document set. ${set.count.documents} Total number of documents in the document set. ${set.nr} or ${set.sequence.segment} Document set number within the job segment. ${set.sequence.job} Document set number within the job. Segment ${segment.metadata. propertyname} or ${segment.metadata ['propertyname']} Value of a meta data property of the job segment.

  • PAGE 596

    Formatting date and number values Date and number values can be formatted using an optional pattern and/or locale. ​Form ​Description ​Example ​Result ​${expression} ​Do not format. ${system.time} ​July 4, 2009 12:30:55 PM ​${expression,pattern} ​Apply pattern with system locale ​ {system.time, $ yyyyMMdd-HH:mm:ss} ​2009070412:30:55 ​${ expression,pattern,locale } ​Apply pattern with the specified country locale ${system.

  • PAGE 597

    Email is sent in a single batch for the whole record set. To test a template, you can send a test email first. Output, generated from an Email template, can have the following attachments: l The contents of the Print context, in the form of a single PDF attachment. l Other files, an image or a PDF leaflet for example. Attaching the Print context is one of the options in the Send (Test) Email dialog. To learn how to attach other files, see "Email attachments" on page 125.

  • PAGE 598

    Note When you send a test email, the Email To Script will not be used; instead, the email will be sent to the address that you specify in the Send Test Email dialog. l l l l The sender(s), recipient(s) and the subject can be set using Script Wizards; see "Email header settings" on page 120. Default SMTP settings can be set in the preferences; see "Email header settings" on page 120. If there are multiple Email sections, only one of them can be merged with each record.

  • PAGE 599

    For a description of how to test your email for different email clients, see this how-to: Test your emails with Litmus. For more information on Litmus, please see http://litmus.com/ Tip For a detailed description of how to use Mandrill with Connect to send and track emails, see the following how-to: Using Mandrill. Using an ESP with PrintShop Mail Connect An email service provider (ESP) is a company that offers email marketing or bulk email services.

  • PAGE 600

    Mandrillapp.com, a popular ESP, used to have a free account but now requires a paid MailChimp account. Luckily there are plenty of alternatives that provide free accounts (often capped to a max number of emails per month and sometimes having throttled output). PrintShop Mail Connect has been tested with: Mandrillap.com, SendGrid (easy user management), MailGun (nearly instant statistics) and MailJet (shows best performance on the free account).

  • PAGE 601

    Tip For a detailed description of how to use Mandrill to send and track emails, see the following howto: Using Mandrill. Adding custom ESP handling instructions Most ESPs allow you to provide custom handling instructions as part of the email message, via custom headers. Typically these include instructions to enable open rate tracking, click through rate tracking and assign tags/categories to messages. Assigning a tag/category allows you to view statistics per email type in the dashboard of the ESP.

  • PAGE 602

    API to retrieve stats in JSON format. To view the category stats, log in to Sendgrid and choose: Stats > Category Stats > your category name. M​ailGun Dashboard: https://mailgun.com/cp/stats Documentation: https://documentation.mailgun.com/api-sending.html#sending Sample Control Script to assign a tag: merge.context.sections["Content"].headers = { "X-Mailgun-Tag": "invoices" }; Note The Mailgun tag allows you to view the stats per tag. Mailgun has a quick refresh and stats are available almost instantly.

  • PAGE 603

    ​Ma​​ilJet Dashboard: https://app.mailjet.com/dashboard Documentation: https://app.mailjet.com/docs/emails_headers Sample Control Script to assign a campaign: merge.context.sections["Content"].headers = { "X-Mailjet-Campaign": "invoices" }; Note Mailjet strips out their own mailheaders like X-Mailjet-Campaign. The results can only be verified via the respective campaign stats page in the Mailjet dashboard.

  • PAGE 604

    Page 604

  • PAGE 605

    Print Manager The Print Manager provides a means of managing print jobs in a print production environment. It provides the ability to queue jobs, to set hot-folders to allow jobs to run the instant they arrive in a live hot-folder, to re-print jobs, to preview job output, to halt job printing, to organise or reorganise the sequence of production printing, to monitor the current state of printers, to restart paused printers, and such like.

  • PAGE 606

    Print Manager Interface The Connect Print Manager Interface is broken up into multiple tabs. These can be reorganised and moved around and re-sized as desired. Double mouse clicking on a tab will make the tab expand full size, to take up the entirety of the application window, or contract the tab back to original size, if already expanded. The Print Manager display initially appears as in the following image (and can be re-set to this view at any time, via the Windows > Reset Perspective menu option): 1.

  • PAGE 607

    l l Windows > Preferences ...: A variety of Print Manager settings can be changed through this menu option. Information about the available preferences can be found here: "Print Manager Preferences" on page 629. Windows > Reset Perspective: Reset the Print Manager perspective. This returns all the Print Manager panes (which can be moved around or re-sized as desired) to their original default positions and sizes. Printers pane The Printers pane allows you to add or remove printers to the Print Manager.

  • PAGE 608

    l l l Add job with Page Range: Click to load a file directly to the printer queue while specifying a page range to print. Add Printer: Click to add a new printer using the "Printer Settings Dialog" on the next page. Edit Printer: Click to edit the currently selected printer using the "Printer Settings Dialog" on the next page. l Delete: Click to delete the currently selected printer.

  • PAGE 609

    any disabled printers will disappear from the Printers Pane. To return them to view, the Hide disabled printers option must be de-selected in the Preferences. l Enable Printer: Click to re-enable the selected disabled printer(s). Printer Settings Dialog This dialog allows you to add printers to the Print Manager, or to modify settings for those already added. The settings differ between printer types, with IPDS printers having more options than other printers.

  • PAGE 610

    l Printer Type: Select the type of printer to add, from the drop down list. l Name: Enter a name that describes the printer in the list. l IP Address: Enter the IP Address or machine name of the printer. l Port (IPDS Only): Enter the port on which the printer communicates. l LPR (PCL and PostScript Only): Enter the printer queue. Tip RAW will work as a generic queue option for most PCL and PostScript printers.

  • PAGE 611

    selection equals the total number of pages in the job, the job will be considered Finished and it will display as such within the "Printer Queue pane" on page 614. What choice you make here is dependent upon the capabilities of the printer. Not all printers will provide all options. For example, some printers will only return when the job is Committed, rather than when it has been Received or Stacked.

  • PAGE 612

    We recommend retaining the default value, due to the granularity of reporting and the error correction this allows. l SNMP: Select this option to allow IPDS printer(s) and Print Manager to communicate back and forth. Note Not all IPDS printers will support SNMP, but most contemporary printers are likely to. This option is enabled by default, as it provides the greatest functionality. l Multi Job Mode: Select this option to support near continuous IPDS output, using Multipage PDF containers.

  • PAGE 613

    l Extended Options: Select this to allow access to further Extended Options. The Extended Options consist of: l l End of Job Preferences (IPDS only) subsection: Select from these options to determine job end processing. More than one option can be selected simultaneously. l l l l l Create Trace File: Select this to log all communications to a log file. The trace file will be sent to the following folder: C:\Users\\Connect\trace\PrintManager The would be the currently active user

  • PAGE 614

    l l l l Handle Errors: Select for how to handle any/all other optional errors. The choices are: l None - ignore all other errors. l Auto - allow default error handling. l Prompt - prompt for operator action on error. Description subsection: An optional printer description can be entered here, if desired. Finish button: Click to apply the selected settings to the printer. This applies to both new printers and to update existing printers.

  • PAGE 615

    described in the following table: filename.ipds A print job that is in the queue but which has not yet begun processing. filename.ipds.Started A print job that is now active. It is currently being processed. filename.ipds.Committed The print job has successfully been sent to the printer and is now being Committed. filename.ipds.Finished This print job has been processed. filename.ipds.Queued This print job has been resubmitted and is queued for processing.

  • PAGE 616

    Jobs can also be dragged from one printer to another within the Printer Queue pane itself. l l PDL: Displays the printer language (for both the printer and print jobs). ID: An unique identity number that is automatically generated for every job. The first few letters of the ID are coded to indicate how the job was added to the queue. The relevant codes are as follows: l l l HTF: Hot Folder capture.

  • PAGE 617

    job is Finished or not. For example, if the "Page Counters" entry is set to Stacked, then the job is only considered Finished when the printer's Stacked pages counter equals the amount of pages in the job. l Job State: Displays the individual print job status. These could be Queued, Finished, Started, and such like.

  • PAGE 618

    Printer Queue Options Note These options will only be made selectable when they are actually currently available. If an option is not available to the current selection or setting, it will not be accessible. l Start Printer Queue: Select to start a printer which has been stopped, or which has been recently added. Stopped printers have a yellow status icon to indicate that the printer is not currently active. Started printers have a green status icon, to indicate that the print queue is currently active.

  • PAGE 619

    l l Remove Finished Jobs: Select to remove any Finished Jobs from this printers Printer Queue display, making the visual monitoring of active and scheduled jobs easier. Reset Printer Counters: Select to update the printer information job counters. This resets the number of jobs Queued, Started or Finished. Printer Queue Job Options Note These options will only be made selectable when they are actually currently available.

  • PAGE 620

    l Resubmit Job: Select to restart the selected job(s) from the beginning. If the original job had been processed using a page range selection, it will be resubmitted using the same page range. l l Resubmit Range of Pages: Select to resubmit an IPDS job, but with a specified page range selection. This launches the "Add Job with Page Range Dialog" on the next page in which the job and it's required page range can be set.

  • PAGE 621

    Add Job with Page Range Dialog The Add Job with Page Range dialog box works with IPDS output only. It allows the selection of a page range to print, from IPDS spool files. It can be used to print a section from within the middle of the file, or it could be used to select a starting point and then print all the pages thereafter. Job Name details section: l l l l File Name: Paste the print job filename and folder into the entry box, or use the Browse button to browse for the print job.

  • PAGE 622

    Tip When an issue arises with the printer and you wish to restart the job from a recovery point, it would be best to first "Preview pane" below the page at the selected page counter, to confirm that the selected page counter entry is accurate. In reality, you might need to move the starting page entry backwards or forwards some few pages in order to cater for pages which have been printed, but destroyed in the process.

  • PAGE 623

    You can step through print jobs using the page step buttons, or move straight to a specific page by entering a number in the page number box. You can also customize the preview viewing settings as you wish. Job Queue pane The Job Queue pane is a centralized location designed to allow the consolidation and management of print Jobs. Jobs are not printed from here. The Job Queue could best be considered a staging area, where one can consolidate jobs in preparation for production printing.

  • PAGE 624

    l Filter: Use this search functionality to reduce the data-set displayed in the table. Type in a search word and then hit Enter to filter the table using the entered search word. For example, select "business" to display only those entries that feature the text "business". To clear the filtering, delete the contents of the Filter box and press Enter. Job Queue Table l l Name: The name of the job filename, as captured or added to the Print Manager.

  • PAGE 625

    l l l l Properties button / context menu option: This launches a job Details Window that displays detailed information about the makeup of the print job. Once the Details Window is open it remains atop the Print Manager thereafter, to allow simple comparisons between jobs. To close the Details Window, put the focus upon the Details Window by clicking anywhere within it, and then press the Escape key ("Esc"). Add Job button / context menu option: Click this to add a print Job to the Job Queue.

  • PAGE 626

    l Job ID: The relevant Job ID, if applicable. l Details: The actual message itself. The following controls are available to the right of the Messages table, or via right mouse click context menu: l l l Clear Log Items button / Clear Log context menu option: Click to clear the current log. This does not delete log files, but it does delete the messages displayed onscreen. Copy selected items to clipboard button / Copy context menu option: Click to copy all messages to the clipboard.

  • PAGE 627

    l History Log: Displays details on jobs run through the Print Manager. The history can be sorted by either processing date or printer, by selecting the column title. l Date: The date and time when the job was started. l Printer: The name of the printer the job was printed to. l ID: The internal ID of the job. l Job: The name of the print spool file. l Path: The path from where the job was captured or added. l Pages: The pages printed and the total number of pages in the job.

  • PAGE 628

    Note Requesting a printer's capabilities can take some time, and not all printers will support it. For PostScript and PCL printers you should first set up monitoring of the printer, in the "Printer Status pane" below. l l Check Printer Capabilities button / context menu option: Each printer capability is listed under the Printer, in separate divisions. Capabilities are read directly from the printer. Export Printer Capabilities button / context menu option: Export the printer capabilities to JSON file.

  • PAGE 629

    To Stop monitoring a printer select the stop icon to the right of the status display: Once a printer is being monitored, the details can expanded and the individual printer trays displayed. These can be done as follows: l l To expand the printer details, press the right arrow besides the printer Name, as seen in the following image. To reduce the printer details, press the down arrow besides the printer Name, as seen in the following image.

  • PAGE 630

    3. "General Settings" on page 633 4. "SNMP Connection Settings" on page 634 Database Connection preferences Dialog used to change the PrintShop Mail Connect back-end Database. This dialog supports the swapping of the back-end database between various vendor databases. Note, however, that the alternate vendor database(s) must already be installed and available in order to swap to them. Note This is not a migration tool. It is a simple connection tool, that enables shifting to a different back-end database.

  • PAGE 631

    Tip If the Test Connection button shows that the database cannot be successfully connected to using the selected settings, then the contents of this field could be used to try to connect to the database outside of PrintShop Mail Connect. This should help in determining and refining the acceptable connection options. l Hostname: Enter the IP Address or alias of the server where database resides. l Port: Enter Port number. The defaults are those which the vendors use by default.

  • PAGE 632

    Tip Leaving this value set to the default maximum should be the best option in most circumstances. We recommended this entry be left at the default value. l Custom database parameters table: These are extra parameters which are appended to the database connection URL. The default values are those which have been determined to be useful in connecting to specific vendor databases. l Property: These are free field text fields.

  • PAGE 633

    l German (DE) l English (EN) l Spanish (ES) l French (FR) l Italian (IT) l Japanese (JA) l Korean (KO) l Portugese (PT) l Chinese Simplified (ZH) l Chinese Traditional (ZH_HK, ZH_MO or ZH_TW) General Settings l Hot Folder group: Define a global hot folder that captures any jobs placed within that folder and places them in the Job Queue pane.

  • PAGE 634

    production facilities, and your logging requirements. Some sites might decide that "Error" logging levels are all they need. l Printer Preferences group: l Hide disabled printers: Select to have any printers disabled in the "Printer Settings Dialog" on page 609 not appear in the "Printers pane" on page 607. Note Not being able to see a printer that exists in the "Printer Settings Dialog" on page 609 within the "Printers pane" on page 607 can be confusing for new users.

  • PAGE 635

    retry interval amount. l Retry interval on Timeout (secs) entry: Enter the length of time (in seconds) between connection retries. This interval period applies only to attempts at reconnecting to printers. This chapter contains the current and previous versions of PrintShop Mail Connect 1.8 release notes. PrintShop Mail Connect 1.8 Release Notes. Previous releases: l PrintShop Mail Connect 1.7.1 Release Notes l PrintShop Mail Connect 1.6 Release Notes l PrintShop Mail Connect 1.

  • PAGE 636

    problem in running the update while the Client itself is still open. It will automatically update itself.

  • PAGE 637

    Installing PrintShop Mail Connect 1.8 l l l PrintShop Mail Connect is released as a 64 Bit version only. Full details on installing and licensing PrintShop Mail Connect can be found in the online help, which can be accessed from the software and the installer. Note that PrintShop Mail Connect comes with a 30 day trial license by default.

  • PAGE 638

    Connect 1.8 General Enhancements and Fixes Native support for Microsoft Excel spreadsheet files PrintShop Mail Connect can now handle Microsoft Excel files natively. The CSV data type has been enhanced to automatically recognize *.XLS and *.XLSX files and use them directly without any additional steps. Both the CSV Wizard and the Add Data options now allow you to pick these file types.

  • PAGE 639

    Simplified Web Font support Online font resources (such as Google Fonts) allow you to use their fonts for both commercial and non-commercial projects. Using these online fonts in your documents is a matter of linking to the Stylesheet file hosted by these services. Simply create a Remote Stylesheet entry and paste the location of Stylesheet file in the URL field. This will make the font available to the application.

  • PAGE 640

    Page Breaks inside Lists Support has been added to allow the splitting of lists across pages. This includes Widows and Orphans control for ordered (

      ) and unordered (
        ) lists. The Orphans CSS property specifies the minimum number of lines at the bottom of a page and the Widows property specifies the minimum number of lines after the page break. To prevent page breaks inside these elements simply add page-break-inside: avoid; to your stylesheets.

      • PAGE 641

        Anchored positioned boxes losing style attributes Absolute positioned (Anchored) elements would lose some style attributes under certain circumstances. These issues would only occur when the absolute positioned element had multiple style attributes that ended with the text "top" or "left". Such as is the case with "padding-top" and "top". If both those attributes were set, then only one of the attributes would be retained. (SHARED-57361) l l Customers upgrading from 1.6.1 to 1.

      • PAGE 642

        Connect 1.8 Performance Related Enhancements and Fixes Faster printing in PrintShop Mail Connect For PrintShop Mail Connect, the speed limit in the license will be applied differently, resulting in faster printing. Instead of applying the licensed speed only to the final step of the print process (the Output Creation), the speed limit is now applied to the entire print process. Thus the time required for Data Mapping, Content Creation and Job Creation are now taken into consideration as well.

      • PAGE 643

        Connect 1.8 Designer Enhancements and Fixes Automatically Fit Text to Container (Copy Fit) The Designer can now automatically scale text content to fit the boundaries of a box (inline or absolute positioned

        ). Scaling text to fit a container is a very popular feature when creating personalized post cards and the like. The option is found in the Content tab of the Box properties dialog and can be set to scale all text or a specific element in that box by entering a CSS selector.

      • PAGE 644

        Toggle Comments On/Off via Shortcut Keys Toggle comments off or on in HTML, CSS and JavaScript editors via a keyboard combination. Use Ctrl + / to comment out a single line and Ctrl + Shift + / to comment out multiple lines. (SHARED-56440) Refresh View button added You can now refresh the contents of both Design and Preview views via the new Refresh button or new Refresh selection in the Menu.

      • PAGE 645

        Specify Page Range for Preflight You can now optionally perform Preflights on a range of records. (SHARED-35076) Select and adjust multiple Box elements simultaneously Multiple Box elements can now be selected at the same time. Once selected you can either move or resize the selected boxes as a group. You can move them either via the mouse, or by nudging them around a single pixel at a time with the arrow keys. When nudging, the boxes will not snap to guides.

      • PAGE 646

        Specify/change name of Email Attachments Ability added to overwrite the file name for email attachments through scripting.

      • PAGE 647

        Set Template Locale Previously Connect always assigned the System Locale to new templates. A new option has been added to the preferences to allow the selection of a specific locale. This selection will then apply to all new templates thereafter. It applies to Date and Time fields plus numeric and currency data fields.

      • PAGE 648

        General Designer improvements l l l l l l GS1 Datamatrix barcode now supported. (SHARED-55999) Section, Media, and Master resources can now be duplicated by copy-pasting. (SHARED-52261) Reopening a template will put the focus on the section that was active when the template was closed. (SHARED-53199) Keyboard shortcuts to increase (Ctrl + Shift + >) or decrease (Ctrl + Shift + <) text size now work as expected. (SHARED-11660) "Problem" view renamed more accurately as "Preflight Result".

      • PAGE 649

        Page 649

      • PAGE 650

        The reason we call this feature dynamic finishing, is that it includes a brand new rules editor to allow you to choose when to apply a finishing setting: Page 650

      • PAGE 651

        PDF Pass-through Connect’s output creation (Weaver engine) tries to write content the best way possible, depending on the chosen output format and optimization settings. However, there are cases when this might not be desired, such as when the graphics have already been optimized for the device and you do not want the software to change them. It is now possible to instruct output creation to include PDF resources in the output file as-is.

      • PAGE 652

        Acrobat Reader without issue and will print correctly on many printers, it will prompt warnings in Adobe Acrobat Professional's Preflight report and it should not be used as input for Connect Data Mapping. We recommend testing the output on your specific printer(s) to best determine whether this will be an issue on your specific printer(s) or not. This issue will also be addressed in a later release. Overprint for Spot Colours Overprinting certain content on top of other content is sometimes required.

      • PAGE 653

        Print Output l l l Mixplex support added An option has been introduced to omit empty back sides for the Single and Last sheet positions when Duplex is enabled, resulting in mixplex output. This helps in reducing costs in printing environments where page count or click-charging is applied. (SHARED46965\55459) Improved logging of output generation.

      • PAGE 654

        Connect 1.8 Print Manager Enhancements and Fixes Continuous Printing on IPDS Printers When printing on high volume IPDS printers, it is best if the printer does not pause often. On continuous feed printers in particular, a pause can lead to malfunctions as well as cause delays. It's not just the pause itself, but also the additional time spent whilst the printer slows down and then speeds up again after the pause. The faster the printer, the bigger an issue this becomes.

      • PAGE 655

        Known Issues Installation Paths with Multi-Byte Characters When installing the Traditional Chinese or Japanese versions of Connect, if the user specifies an alternative installation path containing multi-byte/wide-char characters it can break some of the links to the Connect-related shortcuts in the Start Menu and cause an error to appear at the end of the installer. The workaround for the moment is to use the default installation path. The problem will be addressed in a later release.

      • PAGE 656

        Available Printer Models Note that only the single Printer Model (Generic PDF) will appear on the Advanced page of the Print Wizard by default. To add additional printer models click on the settings entry box. button next to the Model selection Colour Model in Stylesheets The colour model of colours defined in a stylesheet can sometimes change after editing the stylesheet. This is a known issue and will be addressed in a subsequent release.

      • PAGE 657

        Installing PrintShop Mail Connect 1.7.1 l l l PrintShop Mail Connect is released as a 64 Bit version only. Full details on installing and licensing PrintShop Mail Connect can be found in the online help in the installer. Note that PrintShop Mail comes with a 30 day trial licenses by default.

      • PAGE 658

        Connect 1.7.1 General Enhancements and Fixes Template Reports added to Connect Generate a report in PDF format containing the most important information about your template. The report lists contexts, sections, master pages, scripts, graphic files, and any other resources used, along with their properties. This report can be added as part of your project documentation.

      • PAGE 659

        Document Properties Document Properties can now be added to Templates. This allows you to specify properties such as the document author, the customer name and other important references. You can also add custom key/value pairs. The respective properties can be retrieved in scripting and are thus available as content in your documents. The information is also included in the Template Report feature. (SHARED-47780) Stability improvements l Improvements made to the Clean-up service.

      • PAGE 660

        "Enhance with Connect" option added for PDF files in Windows Explorer A Windows Explorer context menu entry "Enhance with Connect" has been added for PDF files. When a user selects this context menu entry, PrintShop Mail Connect Designer opens with a prefabricated template, that uses the selected PDF file as the background. (SHARED15350/47156) Support added for Remote HTML and JSON Snippets In PrintShop Mail Connect 1.7.1 we introduce the concept of remote snippet resources.

      • PAGE 661

        Installer improvements l l The PrintShop Mail Connect 1.7.0 installation did not work on machines running Windows 10 build 1703 (i.e. the "Creators Update", released March 2017). This has been fixed for PrintShop Mail Connect 1.7.1. (SHARED-56800) The silent installation process has been enhanced, and now supports the following: l l l l l l Setting the repository. This can be configured via the "product.repository" entry in "install.properties".

      • PAGE 662

        Print Manager improvements l A document preview has been added to the Print Manager, for IPDS, PCL and PostScript documents. (SHARED-43959) NOTE: The Postscript viewer requires manual installation of the free Ghostscript application. Connect 1.7.1 Designer Enhancements and Fixes Edit and Save CSS, HTML, JavaScript and JSON files within the Designer Ever needed to quickly edit an external CSS, HTML, JavaScript or JSON file? The PrintShop Mail Connect 1.7.

      • PAGE 663

        Data Model Panel Enhancements Various enhancements have been made to the Data Model panel. The browse options of the main record are now sticky and do not move out of view when working with a large number of data fields. An eye icon has been added to the toolbar, and is used to toggle the visibility of the ExtraData field.

      • PAGE 664

        Improved Customization of the Designer interface Customize your interface by selecting your own colours for object edges, margins, guidelines, etc.

      • PAGE 665

        Guideline behaviour improved Along with visible/invisible settings, Guidelines can now be locked in place or set to snap to objects, using the new Guides option in the View menu. (SHARED-47159). Warning now displayed when opening templates created in an older version When PrintShop Mail Connect opens an older template file it is automatically migrated to the template structure of the current version.

      • PAGE 666

        These Warnings can be switched on again at any time thereafter, via the "Reset All Warning Dialogs" button in the General Preferences dialog. (SHARED-16962) Option to automatically Delete a dynamic table when the table is empty An option has been added to allow you to automatically delete a dynamic table when the data table is empty. To do so, select the entire table, and then tick the "Hide when empty" checkbox in the Attributes panel.

      • PAGE 667

        Replace elements with data-insert-location when inserting HTML elements When inserting an element from an Insert dialog, Connect now checks the data-insertplaceholder attribute. The value of the attribute is then used to set the default value for the Insert Location option within the Insert dialog. If the attribute is not found, things behave as in previous versions. This ticket also introduces the Replace option for the Insert Location drop down.

      • PAGE 668

        Scripting improvements l Context menu added to the Edit Script dialog. (SHARED-45381) . l l l l Find and Replace functionality has been added to Script editors. (SHARED-48424) New menu option to rename Scripts or Folders has been added to the Context Menu within the Script panel. (SHARED-48607) Support added for copy and paste of folders and scripts within the Scripts panel.

      • PAGE 669

        General Designer improvements l l l l l l l Duplicate and Delete line(s) using shortcuts in the Stylesheet, JavaScript and HTML editors. Use Ctrl+D to duplicate and Ctrl+Shift+D to delete the currently selected lines. (SHARED-46928) Entering geometry values without stating a specific unit type will now automatically assign the default unit type to the entry. (SHARED-50656) When deleting an element (such as a Barcode or a Chart) on a page, a check will now be made for associated scripts.

      • PAGE 670

        Connect 1.7.1 Output Enhancements and Fixes Grouping With and Without Sorting Sometimes the data used for generating documents is already pre-sorted, but you may still need to group documents into sets or segments. In those cases, the grouping process should not reorder the documents. This has now been implemented in PrintShop Mail Connect 1.7.1.

      • PAGE 671

        Progress of External Sort now displayed When using an external sort, there was no feedback about how the external sort program was progressing. A new dialog control has now been added to Connect which displays the progress of the external sort in real time. (SHARED-53601) Improvements made to Imposition Options dialog The settings page for Cut and Stack Impositioning has been improved to show a sample of the chosen imposition settings.

      • PAGE 672

        Additional Postal Services Barcodes added to Output Creation Barcodes for postal services are excellent candidates for adding during the Output Creation steps, rather than during Content Creation. Reasons for this include: l l l They often cannot be added during Content Creation because they depend on document size (or weight) and on a sort order that is determined during Job Creation. They need to go in a fixed position, dependent upon the envelope window, rather than document design.

      • PAGE 673

        The new barcodes include: l Australia Post 4 State l KIX Code (Dutch postal service - Post.NL) l Royal Mail (UK) l Royal Mail 2D (UK) l USPS IMB (US) l USPS IMPB (US) Some of these barcodes have specific requirements in order for them to be usable. The respective postal services provide specifications and sometimes also the tools for generating the content of these barcodes. The checksums needed for Australia Post 4 State and IMPB are calculated automatically.

      • PAGE 674

        Job Output Mask improvements, to simplify working with output file names We have improved the way that output file names can be specified. A new dialog box has been added to the Print Wizard, to simplify the creation of Job Output Masks. While it is still possible to directly type a file name with placeholders in the Output File Mask box, it is now also possible to use the dialog to pick the metadata fields and other variables that can be used to create dynamic file names.

      • PAGE 675

        For the Output Preset to know what metadata is available, you can select a Job Preset when creating or modifying an Output Preset: In the Advanced mode of the Print Wizard this new dialog works a bit different, because the metadata can be directly edited in the same wizard instead of having to refer to a Job Preset. Tray Mapping for Multiple Templates For printing to a cutsheet printer, the Output Preset allows mapping of media defined in a template to trays and media known by the printer.

      • PAGE 676

        such a way that no conflicting tray mappings can occur within a job, as Job Presets allow filtering by media type. Print Output l Improvements made to the Print Wizard These include: l Improved usability in Inserter dialog. (SHARED-38279) l Data Filtering dialog usability improved.

      • PAGE 677

        Known Issues Installation Paths with Multi-Byte Characters When installing the Traditional Chinese or Japanese versions of Connect, if the user specifies an alternative installation path containing multi-byte/wide-char characters it can break some of the links to the Connect-related shortcuts in the Start Menu and cause an error to appear at the end of the installer. The workaround for the moment is to use the default installation path. The problem will be addressed in a later release.

      • PAGE 678

        To add additional printer models click on the settings entry box. button next to the Model selection Colour Model in Stylesheets The colour model of colours defined in a stylesheet can sometimes change after editing the stylesheet. This is a known issue and will be addressed in a subsequent release. Online Help Links Point to Introductory Page Context sensitivity for the online help is not yet enabled in Connect.

      • PAGE 679

        The major focus of Connect 1.6 has been to improve performance and increase stability, as well as launching a new option for the PReS Connect and PlanetPress Connect brands called OL Connect Send. Installing PrintShop Mail Connect 1.6.1 l l l PrintShop Mail Connect is released as a 64 Bit version only. Full details on installing and licensing PrintShop Mail Connect can be found in the online help in the installer. Note that PrintShop Mail comes with a 30 day trial licenses by default.

      • PAGE 680

        Connect 1.6.1 General Enhancements and Fixes Performance improvements l Changes to the handling of transparency in PDF backgrounds has not only cured some job failures, but has also led to substantial improvements to both output speeds and filesizes. (49680) l Improvements made to the clean-up processes, improving overall production speed. l Some memory leaks plugged, improving overall production speed. l Improved reliability when using MS-SQL as back-end database.

      • PAGE 681

        l l Print Manager would hang when unexpected errors encountered on IPDS printers. The Print Manager now checks for fatal errors and exits the running job when one is encountered. (50135) Improved robustness when encountering Communications Errors. For example, the errors previously encountered when removing a job whilst Print Manager was retrying a connection.

      • PAGE 682

        Connect 1.6.1 Designer Enhancements and Fixes General Designer improvements l Interface improvements such as inclusion of icons for different types of files (js and CSS). l Provided option to configure the script timeout period. (48639) l Minor issues with non-English language translations fixed. l l l l l l Display issues that were sometimes encountered when changing section background images have been fixed.

      • PAGE 683

        Connect 1.6.1 Output Enhancements and Fixes General l Merge Engine memory leaks fixed. (50188) l Improved creation of Metadata after content creation. l Improved conditional content for Email output. l Some templates containing JPG or Bitmap graphics could trigger the flatten.exe program (used for flattening external files) to repeatedly open, causing performance degradation or even failure.

      • PAGE 684

        l l l l l Issues resolved with missing non-Latin characters (such as the dyet "Đ" character) in IPDS PDF Pass-through jobs. (51509) If an image file were replaced on disk between runs then a subsequent Proof printing would display the old image, . This has been fixed. (47567) Merge engine no longer slows down when using external JavaScript files in print sections. (48447) Fixed "ApplicationException: Null" errors encountered in some PCL outputs.

      • PAGE 685

        Known Issues Installation Paths with Multi-Byte Characters When installing the Traditional Chinese or Japanese versions of Connect, if the user specifies an alternative installation path containing multi-byte/wide-char characters it can break some of the links to the Connect-related shortcuts in the Start Menu and cause an error to appear at the end of the installer. The workaround for the moment is to use the default installation path. The problem will be addressed in a later release.

      • PAGE 686

        To add additional printer models click on the settings entry box. button next to the Model selection Colour Model in Stylesheets The colour model of colours defined in a stylesheet can sometimes change after editing the stylesheet. This is a known issue and will be addressed in a subsequent release. Online Help Links Point to Introductory Page Context sensitivity for the online help is not yet enabled in Connect.

      • PAGE 687

        Installing PrintShop Mail Connect 1.5 l l l PrintShop Mail Connect is released as a 64 Bit version only. Full details on installing and licensing PrintShop Mail Connect can be found in the online help in the installer. Note that both PrintShop Mail come with 30 day trial licenses by default. Connect 1.5 Designer Enhancements and Fixes General Designer improvements l l l l A color selection eyedropper has been added, to allow the selection of a color from elsewhere on screen.

      • PAGE 688

        Email enhancements l l l l User-definable SMTP settings. New defaults are added for Sendgrid and Mailgun (in addition to Mandrill). (SHARED-43897) The standard New email wizard has been replaced with the new Basic Email template wizard. The new wizard has improved HTML structure. (SHARED-43338) Sending a test email no longer requires data. (SHARED-41889) Tighter compression for PDF attachments that are based on a print section. (SHARED38575) l Colour picker support added to the Email template wizards.

      • PAGE 689

        l l Better tailored error messages and warnings. l Icons added representing script type as well as showing the issue severity. l Duplicated problems now filtered out. l Several other minor improvements. Improved support for raw HTML within Designer scripting API commands.

      • PAGE 690

        Connect 1.5 Output Enhancements and Fixes General l Improved content creation processing speed for templates featuring PDF backgrounds. (SHARED-44350) Email Output l l Basic Email Action wizard now made the default for new Email templates. (SHARED43338) Support added for user defined SMTP/Email Service Provider (ESP) settings. (SHARED-43897) Print Output l l l l l l l l l l New option added, allowing printing to Windows Printer Driver.

      • PAGE 691

        Connect 1.5 General Enhancements and Fixes Installer improvements l l Improvements made to installation robustness. The installer now copes better when encountered permissions issues during installation. (SHARED-43732/43737) The Update Client has been updated to 1.1.9 and has been included in the Connect 1.5 installation. (SHARED-47065) Print Manager improvements l Removing all finished jobs for a specific printer with a single step. (SHARED-42984) l Retry counters added to interface.

      • PAGE 692

        Known Issues Installation Paths with Multi-Byte Characters When installing the Traditional Chinese or Japanese versions of Connect, if the user specifies an alternative installation path containing multi-byte/wide-char characters it can break some of the links to the Connect-related shortcuts in the Start Menu and cause an error to appear at the end of the installer. The workaround for the moment is to use the default installation path. The problem will be addressed in a later release.

      • PAGE 693

        To add additional printer models click on the settings entry box. button next to the Model selection Colour Model in Stylesheets The colour model of colours defined in a stylesheet can sometimes change after editing the stylesheet. This is a known issue and will be addressed in a subsequent release. Online Help Links Point to Introductory Page Context sensitivity for the online help is not yet enabled in Connect.

      • PAGE 694

        Installing PrintShop Mail Connect 1.4.n l l l PrintShop Mail Connect is released as a 64 Bit version only. Full details on installing and licensing PrintShop Mail Connect can be found in the online help in the installer. Note that both PrintShop Mail come with 30 day trial licenses by default. Connect 1.4.2 Enhancements and Fixes Designer l l A blank page is no longer added to beginning of templates that use scripting to add pages from PDF files.

      • PAGE 695

        The language can be selected during the installation of Connect or via the Language Setting options in the Preferences dialog (note that Connect needs to be restarted in order to apply the selected language). At present only the Connect user interface has been translated. Error messages and warnings will be translated for a later release. Welcome Screen Extended l The Printer Definition Configs and HCF files available on the OL Connect website are now grouped by manufacturer, to simplify selection.

      • PAGE 696

        l Connect 1.4.1 also introduces Responsive Email Templates. Virtualisation l Connect is now supported on the Microsoft Hyper-V and Hyper-V/Azure environments as well as the VMWare Workstation, Server, Player and ESX infrastructure environments. Modifying Connect Installations l Connect 1.4.1 introduces the ability to Modify Connect installations, once Connect 1.4.1 has been installed. Connect 1.4.

      • PAGE 697

        Scripting l l l l l Result can now be written as a JSON string into an attribute or text (instead of the field value). Useful for web contexts where a front-end script can easily read the value. User-defined formatting masks can now be used when outputting dates and numerical values. Conditional script set to "Show if Condition is true" will hide the object by default. Page range can be specified via scripting when setting PDF as background.

      • PAGE 698

        l Ability to add Metadata to any output type (previously only PDF and AFP), for use within output Presets. l Static strings can now be added to Metadata in job Presets. l The Output Path in the Output Preset can now be set dynamically. l New Color setting for the Add Text option. (SHARED-40830) l Monochrome and Dithering support added to PCL output. (SHARED-39937) l l l Dithering and B&W threshold values now supported in the Print Wizard.

      • PAGE 699

        1. Go to the .ini files for the Designer and Server Config: l l C:\Program Files\Objectif Lune\OL Connect\Connect Designer\Designer.ini C:\Program Files\Objectif Lune\OL Connect\Connect Server Configuration\ServerConfig.ini 2. Change the language parameter to the required one under Duser.language=en | fr | de | ja | zh Only one of the above language tags should be selected. Once saved, Connect will appear in the selected language at next start-up.

      • PAGE 700

        Image Preview in Designer If in the Windows Internet settings (Connection Settings > LAN configuration) a proxy is enabled, but "Bypass proxy settings for local addresses" is not checked, the image preview service, conversion service and live preview tab in the Designer will not work and exhibit the following issues: l Images will be shows as 0 size boxes (no red 'X' is displayed) l Live preview does not progress, and when re-activated reports "browsers is busy" To fix the issue you must check the "Bypa

      • PAGE 701

        Legal Notices and Acknowledgements PrintShop Mail Connect, Copyright © 2017, Objectif Lune Inc.. All rights reserved. The license agreements for the associated open source third party components can be downloaded here. This application uses the following third party components: l l l l l l Adobe PDF Library which is either a registered trademark or trademark of Adobe Systems Incorporated in the United States and\or other countries. Adobe XMP Core Copyright © 1999 - 2010, Adobe Systems Incorporated.

      • PAGE 702

        l l l l l l l l l l l l Jacob Java Com Bridge which is licensed under the terms of the GNU Lesser General Public License Version 2. The source code for this can be obtained from the following location: http://sourceforge.net/projects/jacob-project/files/jacob-project/ JavaCraft JSch Copyright © 2002 - 2012 Atsuhiko Yamanaka, JCraft Inc. All rights reserved. JavaSysMon Copyright © 2009 ThoughtWorks, Inc. All rights reserved.

      • PAGE 703

        l l l l l l l l l l l Objectweb ASM, Copyright © 2000-2011 INRIA, France Telecom. All rights reserved. Relique CSV Driver which is licensed under the terms of the Lesser General Public License Version 2.1. The source code can be obtained from the following location: https://sourceforge.net/p/csvjdbc/code/ci/csvjdbc-1.0.31/tree/ Rhino 1.7R4 and 1.7.7.1 which are licensed under the terms of the Mozilla License Version 2.0.

      • PAGE 704

        l 7-Zip SFX which is licensed under the terms of the GNU Lesser General Public License Version 2.1. The source code for this can be obtained from the following location: https://github.com/chrislake/7zsfxmm Portions of certain libraries included in this application which are distributed under the terms of the Mozilla Public License have been modified. To obtain copies of the modified libraries please contact your local Objective Lune Support team.

      • PAGE 705

        l Apache Geronimo l Apache Jakarta HttpClient l Apache Log4j l Apache Neethi l Apache OpenCMIS l Apache POI l Apache ServiceMix l Apache Tomcat l Apache WSS4J l Apache Xalan l Apache ​Xerces2 Java Parser l Apache XMLGraphics l Apache XML-RPC l Barcode4j l Google Collections l Google GSON l Hibernate Validator l Jetty l LMAX Disruptor l Objenesis l OpenCSV l OPS4J Pax Web l org.json.

      • PAGE 706

        This Software includes unmodified Eclipse redistributables, which are available at www.eclipse.org. The Eclipse redistributables are distributed under the terms of the Eclipse Public License - v 1.0 that can be found at https://www.eclipse.org/legal/epl-v10.html. VSS Java FreeMarker: This product includes software developed by the Visigoth Software Society (http://www.visigoths.org/).

      • PAGE 707

        l l l This product includes software developed by the JDOM Project (http://www.jdom.org/). Portions of this software are copyright © 2010 The FreeType Project (www.freetype.org). All rights reserved. This product includes software developed by JSON.org (http://www.json.org/java/index.html). Copyright Information Copyright © 1994-2019 Objectif Lune Inc. All Rights Reserved.

      • PAGE 708