PSL V7 was first introduced in July 2018. Since then in addition to squishing bugs we’ve added many more enhancements. We’d like to provide a summary of those enhancements.


Big data combined with the latest high speed ink jet imaging technology has made the need for speed more important than ever. What has Jet Letter done to excel in the speed race?

  • A significant speed boost has been achieved due to extensive runtime system optimization.
  • Projects such as ‘visa’ and ‘multicore’ examples now run about 2.5 times faster than in previous PSL versions.
  • Simpler wizard based projects (No table boxes but lots of pages) even better, up to 4 or better times faster.

Font Caching – The Challenge:

  • When multiple PDF forms are used in a PSL project they may contain instances of the same fonts, a circumstance that can lead in some cases to extremely large PDF files. Many fonts embedded in PDF files have sizes in excess of 500K. A typical PDF file used as a form may contain as many as 10 such fonts, resulting in an addition 5 megabytes in the output file for each form used. In some cases application use hundreds of such forms, resulting in severe output file bloat.

Our solution to this challenge:

  • PSL now keeps track of embedded fonts in PDF file used as forms and caches them by font name to prevent this. It should be noted that many PDF files contain font subsets. That is, the fonts contain only those characters that are actually used in the file. In this case caching the fonts would lead to missing characters in form files that use the same font but with a different set of characters. For this reason PSL normally checks for font subsets and does not cache them. The Adobe PDF specification provides the means of detecting such fonts.
  • Our customers have encountered PDF files produced by some commonly used applications that embed subset fonts but do not conform to the Adobe specification in doing so, resulting in missing characters due to caching. As a result a PSL workflow option has been added to disable font caching if required.


Up until V7 PSL has supported RC-4 128 bit encryption, which is the level provided by PDF version 1.4. However, newer, more secure encryption algorithms have been introduced in later PDF versions. These are AES 128 and 256 bit methodologies, added in PDF versions 1.6 and 1.7 respectively. AES 256 has since been defined as the standard method for ISO PDF 2.0.

PSL output is normally restricted to PDF 1.4 for printer compatibility. However, Jet Letter considers these encryption levels important enough to break this restriction. In any case, encryption is not relevant to printed output. As a result, when these encryption levels are used, and only then, PSL outputs the required later PDF versions.

Functions have been added to support the new levels:

Built-in Function:                    setEncryptionLevel and getEncryptionLevel

Value Function:                       encryptWith


Bar Codes & the Challenge of Ink Jet Dot Gain

A phenomenon known as “dot gain” due to ink dot expansion on paper has been an issue in lithography forever and now raises its head in Ink Jet printing. Dot gain when imaging bar codes on high speed ink jet systems can sometimes produce thin bars that are too wide to properly read. In certain codes, such as PDF 417, the great the amount of data spent the more bars in the printed code and the resulting bars need to be thinner.

Our robust solution

PSL Page Builder already includes a Box that can produce bar codes. We added to that Box an optional control to define how narrow the lines in the bar code should be. This option can be changed when considering the amount of data presented.

32 Bit ODBC Drivers

In many cases ODBC database connections are only available as 32 bit drivers. In order to make use of these it was previously necessary to run projects using these in 32 bit mode.

The PSL 64 bit runtime system now allows direct use of 32 bit ODBC drivers.

Web Colors

A new set of predefined colors known as ‘Web Colors’ used in web browsers has been added to the PSL color definition dialog. This is enabled by a click in the color management dialog.

Color Management

An option has been added to the workflow manager to embed ICC color profiles into PDF files generated by PSL. Color profiles provide control of color mapping for specific devices such as printers and monitors. The PSL installation comes with a standard set of  Adobe CMYK color profiles. Additional profiles can be downloaded and used as required, from such sources as the International Color Consortium.

Text Extraction

Two custom boxes have been added to support extraction of text from PDF files. These permit a PSL application to create data files based on the contents of a PDF file. An example has been added that illustrates how a customer information file can be extracted from a PDF file. The field values are based on text extracted from specific pages, areas and orientations in the PDF file. An example of data mining based on this has been added and is called ‘textExtraction’.

PDF/X Output

PDF/X is set of ISO standards that place restrictions on the content of PDF files to facilitate accurate printing. The Adobe PDF specifications were created reference to printing. As a result, they permit content that can cause problems with printers.

An option has been added to the workflow manager to allow PSL to generate PDF/X-4 compliant output. It should be noted that strict compliance imposes restrictions that severely limit the use of color models as well as imported artwork, such as images and PDF files used as forms. When PDF/X is enabled PSL will not permit PDF form files that are not themselves PDF/X compliant. It will, however, permit the use of colors and images that do not conform to the specified color profile.

This is left to the user’s discretion for the simple reason that compliant images can be somewhat hard to come by and printers generally do a good job of converting them in any case.

Wizard Code Updates

The PSL development system now checks for page layout wizard versions and allows automatic code updates for pages created with older versions.  Users no longer need to click buttons to cause this to happen.


Click Me