The deliver command and a related deliver() code block function have been added, designed to simplify the task of delivering documents by email or fax. While jobs run, subjobs are executed to produce a document that is then emailed or faxed, depending on the format of a recipient address. Different fax submission methods are supported, including command lines, email, and the internal Microsoft Fax support via the Windows Support Server. A configuration file, deliver.ini, defines how email and fax submissions are processed.
Related to the document delivery capability is address books, maintained with the new Address Book code block object, or the browser interface to the UnForm server.
More details can be found in the Deliver Configuration chapter, and the deliver command and deliver() code block function references.
Cover pages are used to generate an initial page for a job using a different rule set, allowing for custom cover pages to be generated as part of an UnForm job. This feature can be used when formatting documents for fax delivery, or for other jobs that require an initial page of a different format than the job itself.
Cover pages are defined with the cover command, the -cover command line option, or a set of code block variables, coverset$, coverfile$, and coverargs$. Cover pages can also be turned off in code blocks by setting nocover=1.
True Type Fonts
True Type font support has been added to the pcl, pdf, and postscript drivers. Most True Type fonts that are licensed for embedding and support Unicode characters can be configured in ufparam.txc file's [ttmap] section. See the Server Configuration chapter for information about configuring TrueType fonts, and the Fonts chapter for caveats and recommendations.
Unicode Character Support
In conjunction with the TrueType font enhancement, UnForm can now produce Unicode text output in two ways: via a text command using an embedded TrueType font, or via the textimage() function, which uses Image Magick to generate an image of a Unicode string.
See the Text command for information about Unicode text. There is a ttprint.rul file in the samples directory which can print all characters supported by a configured font.
The second technique for embedding Unicode text is to use a new function, textimage(). This function uses Image Magick to produce an image of text data, using a specified font. For small amounts of printed Unicode text, using images rather than embedded fonts can produce smaller output streams.
See the textimage() function in the Programming Code Blocks, Internal Functions chapter, for more information about this function.
The PDF transparency model modifies shading in images, and the text, box, and shade command shading options. This allows color AND shading, and allows items below the shaded item to show through, similar to the blending that goes on in PCL output. Transparency can be set on or off by default with the pdftrans=1 or 0 setting in uf80d.ini. It can also be turned on or off via the -pdftrans or -pdfnotrans command line options, or the transparency rule set command. If it is turned off, shading is as in previous releases.
The copies command now produces non-collated copies, like produced in the pcl and postscript drivers. Former versions treated copies and pcopies as identical in pdf output. Note that rule sets that used the copies command during PDF output will produce different page ordering than previous releases. To restore the collated copy order, use the pcopies command.
The protect command now supports 128-bit encryption, by adding the "128" option.
The image command now recognizes a 'page n' option, which leverages Ghostscript to generate a full page image of the nth page of the PDF file. The normal behavior of the image command and PDF files is to search for the first image element of the file, rather than generating an image of an entire page.
PDF files that contain incremental updates are now supported. Of particular note for this feature are attachments generated by Microsoft Word, with the 'save as PDF' add-in, which automatically adds an empty incremental update.
The micr command is now supported, using the micr TrueType font licensed for inclusion in UnForm. If micr commands should be ignored for PDF output, enclose them in 'if driver laser' blocks.
OBJECT ORIENTED PROGRAMMING FEATURES
New object oriented programming features have been added, offering modern techniques for rule set coding that can streamline code block programming. Several internal objects have been added that simplify many formerly tedious tasks. A chapter is devoted to Object Oriented Coding and to each of the new internal objects. These objects include:
- addrbook - address book management
- binfile - binary file access
- collection - collections of values by index and name
- date - date management
- doclist - library document lists
- http - http/https client for interacting with web servers
- inifile - ini file access
- keyfile - keyed file access
- libraries - library lists
- library - library management
- rac - remote access codes for documents
- search - library search execution
- system - operating system and file system access
- textfile - text file access
- xmlreader - xml document parsing
CODE BLOCK PROGRAMMING ENHANCEMENTS
In addition to the new object oriented coding techniques, many code block variables and functions have been added in this release. New functions, documented in the Programming Code Blocks chapter, include:
- arrset() updates an array with text values at specified positions, similar to the set() and mset() functions that update the page print stream text array
- basename() returns the file name from a full path
- cdate() converts text data into a date value (a Julian number)
- clientenv() now works in subjobs
- cstrans() translates text between two character sets or symbol sets
- deliver() executes a fax or email delivery of a document
- dirname() returns the directory portion of a full path
- entityencode(), entitydecode() encode and decode HTML entity values in text
- fileext() returns the extension of a filename
- fromuc() translates text from unicode
- getaddress() retrieves an address from an address book
- getcolumn() slices a column of fields out of a series of text lines
- getpaircount() returns the number of name=value pairs in a string
- getpairvalue() parses strings of name=value pairs
- getpatternvalue() locates text patterns in text strings or arrays
- imgx(), imgy() returns an image's width and height
- logwarn() logs a message to the warning messages written to a job's temp/*.err file and to the design tool
- pdfpages() returns the number of pages in a PDF file
- putaddress() writes an entry into an address book
- setlogin() sets login/password values when using the library object
- sqlconnect(), sqlexecute(), and sqlfetch() offer server-side
database access to ODBC (Windows as well as unixODBC and iODBC),
Oracle®, DB2®, and MySQL® data.
- tempfile() generates a temporary file that is automatically removed when the job completes
- textimage() generates an image with unicode text, using Image Magick
- touc() translates text to unicode
New variables include:
- coverargs$ specifies command line options for a cover page subjob
- coverfile$ names a rule file containing coverset$
- coverset$ sets a rule set to use for a cover page
- nocover=1 turns off cover page generation
- noemail=1 turns of the email command
- uf.parent contains the job ID of the parent job, helpful for logging
- uf.login$ contains the -arclogin user ID
The archive browser interface has been extensively re-written to provide more streamlined access to documents, and to document management. New features include image viewer emailing and faxing, direct document access when the library, doctype, and doc ID are known, address book management, custom forms integrated with CGI-driven rule set processing, and powerful saved searches with run-time prompting. A performance improvement in the UnForm images command is noticeable when consolidating marked PDF documents as well.
In addition, new virtual libraries are generated for external users. When an external user (a user with an entity ID) is browsing a library for the first time, a copy is made of the library metadata structures for just records identified with the entity ID of the external user (other users with the same entity ID will share this copy). This copy is maintained when the main library records are modified or deleted. The external users browse this smaller library, providing the full browsing experience, but with only their documents.
Virtual libraries are deleted if unused for 30 days. They are stored in the "ent" subdirectory structure under the library path, and will add to storage requirements, depending on how many entity ID-associated documents are copied, and how many external users login and use a library.
The first-time copy can take a while. The browsing interface warns users of this possibility.
The lockcols command and the -lockcols command line option prevent recalculation of the cols value.
WINDOWS SUPPORT SERVER ENHANCEMENTS
The Windows Support Server now supports compression when communicating with an UnForm server that supports zlib compression (indicated with the uf80c -v command). This can improve performance when using image conversion and scaling or Ghostscript-based PDF to image conversion.
Multiple archive commands are now supported. Note there is a potential behavior difference if rule sets contain multiple archive commands. Now all execute. In 7.x, only the last one executed.
A new -arclistfmt option, xmlf, adds a base64-encoded embedded file element to the listdocs xml format.
Setting noemail=1 in a code block turns off the email command, allowing code block control over whether or not to execute the email command at the end of the job.
EPS output: -p eps supported to produce an eps file based on the first page, first copy of the job. This allows output from an unform job to be used as an image for a subsequent postscript job. EPS is also widely supported in document production and imaging programs.
Control of textjob$[all] generation: -notextjob|-textjob command line control, and textjob=1|0 in uf80d.ini [defaults] section to define the default behavior.
Configuration files now support continuation lines using a "\" suffix, which indicates the next line extends the current line. This is particularly useful in the deliver.ini file, and can be used in uf80d.ini well.
The image command now supports a 'page n' option when used in the PDF driver with a PDF file named as the image. Ghostscript is invoked to convert the specified page into an image.
In cases where Ghostscript 8.10 or higher is configured, either via the Windows Support Server or in the UnForm server's [drivers] section of uf80d.ini (see pdffitpage=1 notes), the images command is now performance-optimized for both PDF and PostScript output when PDF files are used as images. PDF source images are converted to the required format exclusively with Ghostscript, bypassing the extra processing through Image Magick that was required in previous releases. Black and white PCL output was optimized in previous releases. Note that Postscript 3 (-p ps3) output supports compression of black and white images on systems with zlib support, resulting in lower bandwidth requirements for Postscript printing.
The local timezone in Internet UTC-offset format (i.e. -0800 for Pacific Daylight Time) is automatically resolved based on local system settings, and passed to MailCall when running the email command or email() code block function.
The previous server log file is renamed to uf80d.log.bak upon server restart. The server log format is now a tab-delimited file, to ease log analysis. The Windows UnForm server offers a log viewer with column sorting and filtering.
Windows print driver output is supported using the -o "*winprt*;name" option, in conjunction with an installation of Ghostscript, to support any Windows printer. See the -o option in the Command Line Options chapter.
The paper command now supports widthxheight formatting, to
allow more flexible page sizes, particularly in PDF output.
Server-side SQL database access is available via three new code block functions: sqlconnect(), sqlexecute(), and sqlfetch().
A new secure password store has been added, maintained via the browser interface by an administrator. Passwords are stored under an ID, and two functions, setlogin() and sqlconnect(), support a password format of "store:ID" to lookup the stored password value at runtime.
Numerous enhancements have been added to the Image Manager, including:
- Improved OCR operations utilizing Microsoft Office Document Imaging
- Custom form definitions, in addition to code driven custom forms
- Server-based script jobs, set value jobs, lookups, and forms, in addition to local jobs
- Support for multiple users in Terminal Server environments
- Group rotation of images at scan/import time as well as via the menu and toolbar
- Support for PDF importing, with automatic Ghostscript-based conversion to tiff
- Numerous script commands and functions for library manipulation and image management
- Uploads are logged in the server log file as line type "scan", with the message containing the library, type, doc ID, sub ID, user, and IP address of the Image Manager
The Image Manager help file describes the features in detail.
UnForm and sdOffice are registered trademarks of SDSI. CirrusPrint, General,
MailCall, sdStor, and dServe are trademarks of SDSI. Other product names
used herein may be trademarks or registered trademarks of their respective
SDSI uses Google analytics and conversion tracking on some site pages.
Site design by ZiMDesign.
UnForm 8.0 offers many significant enhancements to its already powerful predecessors. A list of major enhancements is provided below.