UnForm (r) Version 7.0 Copyright 1997-2006 by Allen Miglore. All rights reserved. UnForm is a registered trademark of Synergetic Data Systems Inc. Published under license by: Synergetic Data Systems Inc. 2195 Talon Drive Latrobe, CA 95682 Phone: (530)-672-9970, Fax: (530)-672-9975 Email: sdsi@synergetic-data.com Web: http://synergetic-data.com Releases: Version 7.0.01 released August 20, 2006 Version 7.0.02 released September 1, 2006 Version 7.0.03 released September 8, 2006 Version 7.0.04 released October 2, 2006 Version 7.0.05 released October 16, 2006 Version 7.0.06 released October 25, 2006 Version 7.0.07 released November 9, 2006 Version 7.0.08 released December 15, 2006 Version 7.0.09 released January 5, 2007 Version 7.0.10 released March 1, 2007 Version 7.0.11 released April 4, 2007 Version 7.0.12 released June 13, 2007 Version 7.0.13 released July 23, 2007 Version 7.0.14 released September 13, 2007 Installation and configuration details are provided in the manual, unform70.pdf, included with the server installation. Configuration note regarding the Windows Support Server: To fax PDF files via the msfax() function, the Support Server needs access to GhostScript (follow "obtain" links on ghostscript.com). For bundled Support Servers (those included with a Windows UnForm server), just configure Ghostscript in the UnForm server configuration. For stand-alone installs, the Support Server has its own configuration. 7.0.02 8/23/06 - Added Help, About box to Image Manager 8/23/06 - Corrected an install problem that prevented the Image Manager from using OCR. 8/24/06 - Corrected an error 47 when using an mset() function to replace a region with "". 8/25/06 - Added additional locking checks during a rebuild library function to help avoid incomplete file erase management in cases where an individual library file is open in another application when the rebuild starts. 8/28/06 - Modified handling of jpg, gif, png, and bmp image files when displayed in the archive browser interface. The change adds an HTML wrapper page with javascript to control zooming. This will assist with IE users where the browser prints based on current image view size and doesn't offer scale to fit options on printing. 8/28/06 - Changed version number of Image Manager and the Windows client to start with 7 to be consistent with other version 7 tools. 8/28/06 - Corrected a problem where work files from cached images would not be erased when jobs were complete. 8/28/06 - Corrected Image Manager error where a force .png scan type would store the image with a .jpg extension. 8/28/06 - Modified Image Manager to sequence scanned images no matter what their extension. Formerly, if scans were done with different forced extensions, they could have duplicate file sequences and incorrectly share property definitions until one was uploaded. 8/29/06 - Updated a drawing control in the Image Manager to correct several zone drawing issues. 8/30/06 - Fixed cm2rows and inch2rows problem returning cols instead of rows. 8/30/06 - Enhanced Image Manager scripting capabilities with support for document-level properties and a new function, getDocProps, to allow a job to extract document properties, such as keywords or categories, and manipulate them before uploading. 8/30/06 - Added EntityID support to the Image Manager. 9/1/06 - Corrected an error in storing of job assignment values in the Image Manager if a blank field was in between other fields. 9/1/06 - Forced save of assigned job when a using the Select Job menu option or toolbar button in the Image Manager. Before, the job name would not be saved unless a further property change was made before the pending list was refreshed by a scan, import, or refresh option. 9/1/06 - Changed design tool "All Files" checkbox in the file open box to include files with no extension. 9/1/06 - Fixed a problem with the load command if the loaded file contained CRLF delimiters. Certain commands, such as const, would have problems with the CR characters. 7.0.03 9/5/06 - Fixed a problem with the relative text command in the pcl, pdf, and ps drivers. 9/5/06 - Corrected an error with subjobs and archive commands in cases where data existed below the page or rows size of a page. If the subjob depended on that data, it could fail. 9/6/06 - Fixed an error 13 at 1240 in ufrps.pv if a direct tcp/ip printer contained a %j in the uf70d.ini configuration line. 9/7/06 - Corrected an image scaling issue in the Image Manager if a standard resolution fax tiff image was imported. These images are 204x98 dpi resolution. Any image with differing X and Y dpi settings is now resized when displayed in the image area to adjust for the mono-dpi capabilities of the drawing control. 9/8/06 - Made miscellaneous cosmetic improvements to the Image Manager during the set values processing. 9/8/06 - Corrected an error in the bulk transfer in the web interface where all category records would be copied rather than just those for the records being transferred. 7.0.04 9/11/06 - Added entity ID to the list of fields involved in command line filtering of archives, after the title field. 9/16/06 - Corrected handling of default (non-copy-specific) tray commands in the pcl driver. 9/18/06 - Corrected a Postscript stack underflow error in the line command, and a Postscript error in the circle command. 9/18/06 - Corrected the behavior of a columns or rows setting of 1 in a box command, which for historic reasons generates a line rather than a box. This behavior under Postscript didn't match that of the other drivers, where it would draw a box rather than a line. 9/18/06 - Corrected an error in "move to" location calculation in a relative move command. 9/19/06 - Modified mailcall.bb's attempt to obtain the local timezone on a Unix system to avoid timeout errors on SCO Unix. A timezone=xxx setting in prog/mailcall.ini will now bypass the attempt to use the Unix date command, plus error handling code has been added. 10/2/06 - Removed an "about to launch..." log message related to sub jobs if logdetail is less than 2. 10/2/06 - Corrected a library auto-sequence generation problem if the library name was not specified as its full path in an archive command. 10/2/06 - Changed the mailcall.bb program to be a file type for the correct run-time engine, allowing calls to mailcall.bb to process correctly in code blocks. 10/2/06 - Corrected the default symbol set in the shipped ufparam.txt file to be 9J. 10/2/06 - Corrected a permission issue in the master build process that prevented the default ppd directory files from being included in the Windows server distribution. 10/2/06 - Corrected problem with getcols, getoffset, erasecols, and eraseoffset on text commands. 7.0.05 10/4/06 - Corrected a problem with uf70d.exe and the Windows Support Server hanging on startup when running on non-English versions of Windows. 10/4/06 - Modified uf70c.pl to run with Perl taint checks on, so that it should successfully operate in suid environments. 10/13/06 - Corrected handling of ufparam.txc file. 10/15/06 - Corrected a bug in socket handing on the server that could cause unexpected behavior in rare circumstances (specific characters at specific positions in socket transmissions that exceeded 4096 bytes). 10/15/06 - Corrected browser search result delete link to delete the correct search result file rather than search result 1. The changes were to the srlist.html and srlist_row.html templates. 10/15/06 - Updated Image Manager to work around file open issues related to browser plugins when uploading non-image files. The work around makes work file copies of Pending documents and navigates to the copy rather than the original Pending version. Work files are periodically purged automatically. 10/15/06 - Changed fill behavior on rounded corner boxes and circles in PDF output, so if no shade or shade color is provided, no fill occurs. This allows early elements such as barcodes to show through a non-filled object. 10/16/06 - Enhanced the log() function to log to the system log file if the custom file syntax is used but the custom file is null - log(msg$,""). 10/16/06 - Added two new [archive] section uf70d.ini configuration options. defperm= default permissions on new libraries. Must be a combination of r, w, d delimited by semi colons (or null for no permissions). For example, defperm=r;w would allow read/write by default. defseq=0|1 sets Force Sequence option for new libraries. Set to 1 to turn this flag on, 0 to turn it off. 10/16/06 - Added a new [defaults] section uf70d.ini option, bufsize=nnn, where nnn is the number of bytes to in the initial block tested for binary input streams. Prior versions of UnForm used 1024, and version 7 changed to 8192. This parameter allows users to return to the older block size if their application depended on it. 7.0.06 10/18/06 - Modified the Image Manager to correctly handle multi-page TIF images when the configuration does not force a particular image format. 10/20/06 - Corrected some problems with category html exports, where the link to categories from the primary index was not present. 10/20/06 - Removed an extraneous html printing of an expression when in a search result view and starting points are entered. 10/20/06 - Corrected a problem related to repeated start point entries in html search result view. The ID portion would retain the initially entered value rather than using subequent values. This was corrected with a change to the srview.html template. 10/23/06 - Corrected two problems with the uf70c.pl script. Corrected -z file support to correctly handle arguments as if they were part of the command line at the client end. Corrected the script to allow it to find o/s commands that are symbolic links. 10/24/06 - Corrected postscript crosshair pattern printing. 10/25/06 - Obtained a new version of the run-time engine for Windows to replace a version that was, unknown to us, set to expire on November 1, 2006. All Windows installs MUST update to this version, unfortunately. 7.0.07 10/31/06 - Corrected a run-time error 53 when the Windows server configuration 'Uninstall' as a service button is pushed. 10/31/06 - Corrected a problem where a jobstore() command would only store as many lines as were found on the last page of a job. 11/2/06 - Corrected an ending range problem when using -arclist/-arclistdocs with -arcorder category and -arcend. 11/3/06 - Corrected a problem with Postscript JPG images causing multi-page documents to not print correctly. 11/7/06 - Corrected a bug in the Image Manager tool to allow it to scan multi-page tifs correctly. 11/9/06 - Modified Image Manager to enable job management when non-image documents are being viewed. 11/9/06 - Corrected a bug in licensing that occurred if a license included a scanning activation key but not a designer activation key. 7.0.08 11/20/06 - Corrected error 26 in line 2080 of ufhpgltx.pv with invalid symbol set. Invalid symbol set will default to ufparam.txt default symbol set. 11/20/06 - Modified design tool to print rule sets in color, as the version 6 design tool did. To do this, word wrap mode will be turned off while printing. 11/20/06 - Modified the Windows client uf70c.exe to process empty input files, including deleting them if a -ix is used, matching the behavior of the Unix client. 11/30/06 - Modified the Windows server licensing window to display existing job, designer, and scanning activation keys when a server has been previously licensed. In addition, a message box has been added when activation is performed to indicate that it completed. The only way to test an activation is to start the server and confirm it is running with the desired number of print, designer, and scanning licenses. 12/1/06 - Corrected a problem with the getfilefield function if a csv file contained CRLF line terminators, where the CR would wind up in the data. Also fixed an error 1 if text file records exceeded 1024 bytes. 12/4/06 - Modified the uf7ptr Pvx print driver to use a session-global file sequencer to prevent problems with Adobe preview windows having a previous file open on a WindX client. 12/5/06 - Modified the Windows Support Server msfax cover tag and fax number parsing to work with either comma or semicolon delimiters, due to a code use of commas and a documented use of semicolons. 12/7/06 - Corrected error 47 using duplex$, ufpage.pv line 2030. 12/14/06 - Enhanced parsing of pdf attachments to support a wider variety of file formatting, including CR-delimited lines and name elements with no white space between other name elements. 12/15/06 - Added the directory where a rule file is located, if specified with a full path, to the search path for files. This means that image files, merge files, attachments, etc. can be referenced by simple names if they are in the rule file's directory. 12/15/06 - A new uf.arcjob variable is available to indicate that a subjob is an archive-generated subjob. Also, when this value has been set, output redirection is disabled, so if the rule set attempts to send PDF output to a different location in the prejob code block or via an output command, UnForm will ignore the attempt in order to allow the archive to properly store the pdf file. 7.0.09 12/17/06 - Changed postscript text that specified "black" or "white" colors to generate non-color output, suitable for black and white laser printers. 12/21/06 - Made images command resolution carry through to pcl image conversions for laser output. It was applying only to Ghostscript conversion of pdf to an interim image. 12/21/06 - Corrected blank page print if an images command did not contain any image files, when printing to pcl or postscript printers. 1/2/07 - Added new uf.arcenabled variable, which is 1 if archiving is licensed, 0 if not. 1/4/07 - Optimized image conversion routines in the Windows Support Server for pcl, pclc, and eps, to perform faster with large images. 1/4/07 - Added support for direct Ghostscript pdf to pcl scaling when running the images command to pcl output, bypassing the secondary image conversion required for older versions of GhostScript. The result is much faster tiled image output when adding pdf images to pcl output. PDF and Postscript output performance is also improved, though not by as much, by producing smaller images to convert when tiling pdf files. Since this capability was introduced at Ghostscript 8.10, and therefore cannot be assumed available, the feature is turned on in one of two ways: If the gs= line is enabled in the [drivers] section of uf70d.ini, then GhostScript is executed locally by the UnForm server. In this case, if GhostScript is level 8.10 or higher, you can set/add a line pdffitpage=1 in the [drivers] section to tell UnForm the capability is available. If the gs= line is disabled, and the sshost= line is enabled in the [defaults] section of uf70d.ini (or you use the sshost() code block command), then UnForm will assume that GhostScript is available via the Windows Support Server and is a current release (>8.10) and can therefore use the pdf scaling capability. Note that GhostScript must be installed separately and configured in the Windows Support Server to enable its use. It is not bundled with the Support Server. 1/4/07 - Added support for a "tray x" option in the images command, to force laser and postscript output to draw paper for the attachments from the identified tray. 1/5/07 - Fixed a fatal error in the design tool if a command contained a single quote for an option, such as 'image 10,10,10,10,"', and the line was edited using the command editor (double-click or right-click). 1/5/07 - Fixed missing support in the design tool for many single-option commands, such as tray or bin. 1/5/07 - Modified the design tool to fix European-style (comma decimal point like 123,99) positions and lengths to force period decimal point values in the derived command line in the command editor window. 1/5/07 - Added a '-timeout seconds' command line option to the image manager executable, uf70scn.exe. 1/5/07 - Corrected an error 47 if a text or barcode eraseoffset and erasecols options exceeded the width of a line. 7.0.10 1/8/07 - Modified the ufsetup.sh script to prompt for a location for the perl interpreter, rather than assuming the plain name 'perl' is always correct. This allows for an installation using a different perl than the system default, such as in cases where an Activestate perl is installed for UnForm but an existing perl must be maintained to support previously installed packages. 1/16/07 - Added the margin command to the design tool command editor. 1/16/07 - Added the -lib "dir;dir;..." option to add to the directory search list dynamically, in addition to the library= setting found in the uf70d.ini file. This feature is utilized by a concurrent enhancement to the design tool, allowing merge, image, and attach commands to reference names in the originating rule file directory without a full path. 1/16/07 - Corrected a problem in the connect process of the Image Manager, where each invalid login acquired and held a license until the program was closed. 1/16/07 - Added warnings and code defenses regarding attempting to use the -p winpvw option when submitting jobs via direct tcp/ip printing. These corrections also eliminate a Windows client error related to attempting to erase a NUL or NUL device, which was an implicit output device generated for direct tcp/ip jobs that did not contain a -o option. 1/19/07 - Modified all clients to distinguish between active jobs and those that have only made it to the Initialized stage when displaying job history. 1/22/07 - Updated the design tool to support menu jumps to rule set names with leading or trailing spaces. 1/23/07 - Added a cursor position initialization string to pcl attachments to correctly position attachments that assume an initialized page environment for image positions. 1/23/07 - Added the textfile(pathOrExt$) code block function, which creates and returns the name of a work file. The pathOrExt$ string can be null, in which case a temporary file is created, and erased at job end, or a period and extension (such as .pdf), which does the above but forces the extension on the temporary file, or a full path, which creates the file and will NOT erase it at job end. The code block can then open the file and write to it. 1/29/07 - Corrected an error 47 in ufrast, ufrastp, and ufrasts when a hline or vline command was used in a form with cbox commands. 1/30/07 - Updated all uf70c clients to recognize that -arcdel does not require an input stream. Without a -i option, or standard input on Unix, -arcdel command lines would hang waiting for input. 1/31/07 - Corrected a problem if a merged rule set name was bisected by a 10,000 byte block boundary in the merge file. 2/1/07 - Added code to avoid an error 42 at 10260 in ufrule.pv if a detect referenced a row outside the range of 1 to 255. Also added support for detect col,0 to indicate the given column and any row. 2/8/07 - Corrected a client hang resulting from empty input and no named rule set on a command line. 2/12/07 - Changed 24-bit jpeg detection to accomodate images with non- documented SOF frames. 2/15/07 - Corrected a problem with multiple dbexecute commands in sequence without initializing the response$ variable before second and later executions. The dbexecute command could hang if that variable was not initialized between commands. Now this initialization is automatic. 2/20/07 - Corrected a problem when browsing by category under a user login with an entity ID, where no document records would display. 2/26/07 - Corrected a problem in uf70c.pl, where it would not properly handle quoted arguments inside a -z or -zx file. 2/27/07 - Corrected a rule set caching issue if merge commands used the same rule set name from different rule files. 7.0.11 3/19/07 - Fixed uf70c.pl to handle -slon/-sloff options without reporting errors about stty not being found. 3/20/07 - Fixed zdarkness to not get set when unused, eg. no default of 0 3/21/07 - Added additional error handling to the images.dat purge routine to not get stuck if the file is corrupt. 3/21/07 - Added code to return some time slots to the o/s when pushing large results back to a client over a socket. 3/23/07 - Corrected a problem with soft font identification when running without -nohpgl. 3/23/07 - Modified the file creation parameters for the image cache (images.dat) to use disk space more efficiently. To invoke this enhancement, stop the server, remove images.dat, and restart the server. The file will be re-created automatically and image caching will start again. 3/23/07 - Corrected a line count problem with html output when no rule set is detected. The lines per page was incorrectly based on the last page of the print stream. The change looks for the last non-empty line on each page. 3/26/07 - Corrected handling of copy specific image commands in postscript output (i.e. 'if copy 1,3,5 ... image 1,1,12,10,"logo.jpg" ... end if). 3/27/07 - Corrected file channel handling that produced error 13's when running bulk transfers and problems in the scanning workstation when looking up document types, IDs, and Sub IDs. This problem only affected Windows unform servers. 3/29/07 - Reduced polling time on raw ports to improve performance when servers are configured to listen on many raw ports. 3/29/07 - Corrected the scanning tool's document date/time interpretation upon upload to retain the time portion. 4/2/07 - Corrected a memory leak in the Windows Support Server. 4/2/07 - Corrected a problem using color names with text commands in postscript output. 4/4/07 - Corrected hex string handling in zebra, which had been updated in unform 6 and not propogated to unform 7. 4/4/07 - Corrected a problem with work files being left behind when using the textfile("") function. 4/4/07 - Corrected a problem when the imaging tool uploaded an image with no library defined, and the default library would not be updated. 7.0.12 4/5/07 - Corrected a imaging tool detection problem with ocr zones that contain patterns with "=" characters, such as the default "alpha numeric". 4/10/07 - Corrected a problem with relative text commands that should have occurred multiple times per page. The text value was being reset after the first occurence. 4/20/07 - Modified four html templates to support document identification values that require URL-encoding. Also modified some internal programs to support the same issue. These are the templates, in web/en-us: subdocedit.html subdocvw_row.html docedit.html subdoc_row.html 4/24/07 - Corrected a problem with PDF metrics in the font command. 4/26/07 - Added a feature to the -arcsubid command line option and the subid=xxx URL element to allow retrieving the first or last sub ID matching a seed value. This feature is useful when trying to access a document directly from an application. The two recognized syntaxes are "seed->" for the last sub ID and "seed-<" for the first. For example, the following command line option would return the last sequenced PDF image in an auto- sequenced library: -arcsubid "@unform->". To force interpretation of a "->" or "-<" suffix literally, use "\->" or "\-<" respectively. 5/7/07 - Optimized automatic keyword generation in the archive command, which can result in dramatic performance improvements when archiving large reports with many hundreds or thousands of pages. 5/7/07 - Corrected an error 14 when generating a .err file when a zebra job generated syntax errors or other warning messages. 5/8/07 - Added the category index value as a pipe-delimited value to the -arclist formats of csv, tab, and pipe. This is added whenever the -arcorder value is "category", as the documentation indicates. 5/9/07 - Corrected a fit/wrap problem in pdf output related to a change made on 4/24/07. 5/10/07 - Modified the jpeg parser to be capable of identifying more jpeg file structures. 5/24/07 - Corrected an image positioning error in postscript output, where the vertical position was using a cpi rather than lpi value in its calculation. 5/29/07 - Corrected a problem if a 1-based text array is used in an inspage() function, where the page stored would have offset lines. 5/31/07 - Added some additional error handling to the Windows Support Server log window after a report of an error when a very large number of log entries are present. 6/13/07 - Corrected an image caching problem in zebra output when using the Windows Support Server for dynamic zpl image generation. 7.0.13 6/18/07 - Corrected relative expressions searching outside width of page. 6/18/07 - Modified the listener to slow down file system polling that is used to check for shutdown requests. The frequency of polling may have a negative impact on some file systems. 6/21/07 - Added code to prevent a hang if a regular expression of any number of any character (i.e. "[\*]*") is used in any command that supports relative regular expression, such as font, text, barcode, etc. The correction treats any regular expression that matches 0 characters as "not found" even though techically the pattern is found everywhere. 6/25/07 - Added code to address a rare pdf file structure that places an "endobj" keyword at the end rather than the beginning of a line. UnForm would hang in an endless loop until it ran out of memory. 7/13/07 - Corrected a problem related to line commands with expressions. 7/23/07 - Corrected a problem with search bulk action copy and transfer functions, where the shadow records would not be updated correctly in the target library. As a result, the browser maintenence analyser would report mismatches, and a re-build option would fail. 7.0.14 7/31/07 - Corrected a problem with the putdocidprop function, where document categories were not being updated. 8/20/07 - Corrected browser Browse function filter to be correctly honored during page navigation (first, previous, next, last links). 8/22/07 - Corrected browser Browse function so next and previous page links would work correctly on systems that do not support zlib compression. 8/30/07 - Changed rule file parsing to recognize an else associated with a block if (if condition then:) only when on a line by itself (as documented). This prevents else clauses in other non-block if statements from confusing the parser. 9/4/07 - Corrected Windows Support Server to erase a work file used when converting images. 9/4/07 - Corrected the parse() and parseq() functions to return the last element of a space-delimited string. 9/13/07 - Changed rule file parsing to allow a # command after the 'if' line of a block if then:...end if structure. 9/13/07 - Corrected the msfax and db* functions to report errors properly if the Windows Support Server is not accessible. 9/13/07 - Modified the rule file parser to honor a merge command in the global area of the rule set, to allow global constants to be placed in a merge file. 7.0.?? 10/03/07 - Corrected a problem where merge commands would be executed twice, potentially causing code block code to be double executed. 10/8/07 - Corrected three problems with MICR on PostScript printers. The point size selected was too large, the location was 1/8 inch above the position used by PCL MICR, and the check number was not getting the ON US prefix and suffix symbol. 10/8/07 - Corrected an error 43 at line 5020 in ufrastp.pv, in the rare circumstance that an unformatted text dump of more than 999 lines is sent to UnForm, with not rule set selected, when it is running in demo mode. 10/10/07 - Modified uf70c/uf70c.pl to avoid using the Unix hostname command, as under SCO Open Server 6 that fails. For this change to work, after the update you must run ./ufsetup.sh to re-create /usr/bin/uf70c. 10/25/07 - Corrected bold metric calculations for pdf alignment. 12/4/07 - Corrected a problem with postscript output of grayscale jpg images to color printers, where the images would be printed as three tiles. 12/6/07 - Added pcl attachment parse support to remove pattern deletion commands, which can affect UnForm graphical shading. 12/7/07 - Added a default ROP operation to the pcl init sequence to work around a problem with attachments that reset the ROP value. 12/18/07 - Corrected a problem with constants not being resolved in rule set merge command parameters. 12/19/07 - Corrected a problem with the last annotation in a pdf job carrying forward to later pages. 1/10/08 - Corrected a bug when using a javascript command and referencing the copy variable in a code block. If code used copy in a way that would cause an error if was outside the range of 1 to copies, an error would occur. 2/5/08 - Corrected a pcl fit/wrap problem where bold proportional fonts were calculated as if in normal weight. 2/25/08 - Fixed Unix auto-licensing to use HTTP/1.1 protocol to be compatible with our new web server.