UnForm (r) Version 6.0 Copyright 1997-2004 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 6.0.b1 released on March 3, 2004 Version 6.0.b2 released on March 12, 2004 Version 6.0.b3 released on March 25, 2004 Version 6.0.b4 released on April 29, 2004 Version 6.0.b5 released on May 3, 2004 Version 6.0.01 released on May 18, 2004 Version 6.0.02 released on June 7, 2004 Version 6.0.03 released on July 1, 2004 Version 6.0.04 released on July 28, 2004 Version 6.0.05 released on September 1, 2004 Version 6.0.06 released on December 2, 2004 Version 6.0.07 released on January 27, 2005 Version 6.0.08 released on March 29, 2005 Version 6.0.09 released on June 14, 2005 Version 6.0.10 released on October 10, 2005 Version 6.0.11 released on March 13, 2006 Run-time Engine Change Beginning with 6.0.b4, all UnForm installations come bundled with a run-time ProvideX engine. This change allows UnForm to operate independently of existing PRO/5, BBj, or ProvideX user slots, enables new automated licensing features, and provides a uniform platform on which to develop future enhancements without regard to maintaining dual-dialect compatibility. Virtually all code block and expression syntax is supported without changes via the use of lexical substitution. The only change anticipated in code blocks for former PRO/5- or BBj-based installations relates to the ability to open and read native BBx files. To accomodate this potential requirement, UnForm 6 includes a function, bbxread(), that can be configured to work with your existing BBx executable to read records by key from BBx data files. The run-time engine is stored in rt/, under the UnForm server directory. The old /usr/lib/sdsi/rt directory is no longer used, and there is no confict if you continue to run UnForm 5 with its run-time while running UnForm 6. Note: Alias lines in config.unf are no longer supported Version 5 and before, when run under a PRO/5 engine (which included bundled versions), could be configured with alias lines for printers in config.unf. This is no longer the case, because the new run-time engine does not use the config.unf file. Instead, your -o options need to be directly to the devices that were named by the alias, such as -o LPT4, or -o \\srvr\ptr. On Unix, where devices are usually spooler commands, use quoted pipes or redirects: -o ">lp -dhp4000 -orawoptions". 6.0.02 5/19/04 - Corrected problems with using expressions as image file name values. 5/21/04 - Corrected a pcl dynamic image conversion problem, where the image size for rows was calculated incorrectly. 5/25/04 - Added more logic to make sure windows client submissions to a local server don't have trouble with file system timing when returning output for -p winpvw or -p win drivers. 5/25/04 - When a -p winpvw was used by the Windows client, in conjunction with a -o filename.pdf, UnForm no longer erases filename.pdf when the viewer is closed. 6/7/04 - Fixed an error 40 in ufcpcl when using a pcl attachment. The attachment would not be printed and the error message would appear in the error log file. 6/7/04 - Corrected Unix client (uf60c.pl) code to correctly handle localhost job submissions when the client was installed in a different directory than the server. 6.0.03 6/9/04 - Corrected handling of command line -gs option. 6/10/04 - Corrected problem with specific characters occurring in image streams causing a viewer error, due to an improper character conversion. 6/21/04 - Corrected an error 47 in the barcode getoffset, getcols options, if the data referenced did not exist. 6/21/04 - Corrected a problem with 0-width sides in pdf box drawing, such as 'box 1,1,40,5,right 0'. 6/22/04 - Optimized connection overhead between uf60c and uf60d. 6/23/04 - Corrected a uf60d stop/restart problem on o/s versions that use 32-bit process id numbers. 6/25/04 - Modified automated licensing code, as well as the license http server configuration, to use the standard http port 80. Some customers were unable to perform automated licensing due to firewall issues. 6/28/04 - Fixed a problem in the design tool, where mouse drawing when the text pane cursor position was in a code block would cause an endless loop of code block editor boxes to appear. 6/28/04 - Optimized internal code for performance, resulting in substantial gains on jobs with many pages of output or complex definitions. 7/1/04 - Corrected problems with box drawing at a dpi setting of other than 300 dpi. Edge thickness was improperly calculated. 7/1/04 - Corrected a problem with white text not showing up on a black shaded box. Shade 0 worked in some cases, but white did not. 7/1/04 - Corrected problems with grid shading regions, for grids of a single horizontal line with a shade option. 7/1/04 - Updated run-time engines to the current 6.05 pvx release. 7/1/04 - Corrected a problem with detect logic when a rule set header contained spaces after the closing bracket. 6.0.04 7/6/04 - Corrected soft font handling of Zebra output to format the ^CW line correctly. 7/12/04 - Corrected pdf image scaling problem where the aspect ratio caused vertically-oriented images to scale incorrectly. 7/13/04 - Added implicit correction of CR-CR-LF terminators in rule files in the designer. 7/15/04 - Corrected error 10 in ufmainp.pv when the output file name for a pdf file is changed in prejob. 7/15/04 - Added a prompt to the design tool, if a .rul file is opened and a .rud version exists, to ask if the .rud version should be opened. 7/20/04 - Updated an internal control that was issuing an invalid license error when trying to install the Windows server as a service. 7/24/04 - Corrected a problem with vshift/hshift not working when an exec() function is used in a rule set. 7/27/04 - Modified handling of the UFTEMP environment variable, to have it always take precendence over TMP and TEMP if found. 7/27/04 - Turned off output channel buffering in several places in the code in order to reduce problems with file system timing. 6.0.05 8/9/04 - Forced the output file parameter of the jobexec() function to use platform-independent slashes, avoiding problem of backslashes being interpreted as escape characters. Now \, \\, and / are all equivalent. 8/9/04 - Added .rtl to list of laser image file extensions to passthrough. Before, .pcl and .prn were the only laser image file extensions handled this way. All other extensions get converted via alchemy/magick, if configured. 8/9/04 - Added support for the NUL device on Windows, to allow dummy output in uf6ptr print drivers in ProvideX environments. 8/10/04 - Corrected a hang condition when a Windows server does not have an environment specifying TMP, TEMP, or UFTEMP paths, and two barcodes are printed in pdf output. 8/11/04 - Corrected a problem with the jobstore() function if no rows command was used in the rule set. 8/16/04 - Modified license.sh to handle work files correctly when an installation uses prefix settings from a START_UP program. 8/20/04 - Corrected a hang related to using the email command. 8/26/04 - Fixed the PDF demo trailer page to not be blank. 8/30/04 - Corrected un-graceful handling of column/row positions > 999.99, resulting in an error 43 in ufrast*.pv. 8/30/04 - Corrected an error 26 the resulted from using an expression in an attach command. 8/30/04 - Corrected a page sizing problem when a paper command was set to an invalid value. Rather than default to "letter", the size would default to an invalid page specification, resulting in crunched data and/or design tool error 12's when previewing a job. An invalid paper size is now treated as "letter". 8/30/04 - Corrected boxr edge width to more closely match the size of laser output. 8/31/04 - Corrected designer to recognize the last line of a rule set if it was immediately followed by another rule set header. 9/1/04 - Changed the boxr command, when generating laser output, to use the Bezier curve algorthim to match pdf output. As a result, the bubble corner (Micky Mouse ears), that would be generated on laser output for high scale levels is no longer available. All rounded corners may have a slightly different appearence from previous releases. 6.0.06 9/7/04 - Corrected a problem with writing a copy's output to a different file, if that file already exists. 9/13/04 - Modified handling of bad output file/device values to report any error reported by the open attempt rather than by a serial file creation attempt. 9/20/04 - Added support for a literal <34> passed via a get() function to the micr command. Normally, <34> inside a quoted literal is only resolved at rule set parse time, not during execution like a get() function. The micr command itself has been modifed for run-time conversion of this specific literal to the "on us" character. 9/20/04 - Worked around a problem with the Windows server, which when running as a service on Windows 2003 would receive period requests to restart the service (incorrectly) and would attempt to start additional pvxwin32 tasks. 9/22/04 - Corrected an additional problem related to MICR, where if the account used a C or literal <34> character, an additional "on us" symbol would be added to the account. 9/27/04 - Added a -p win5 option, which is similar to the -p win option, except that it uses the same technique that UnForm 5 did to launch Acrobat. The -p win option uses the Windows shell "print" option, while the -p win5 option looks for the Acrobat executable and builds a command line with the /p Acrobat option. There is usually a difference in that -p win will print to the default printer, while -p win5 will open a printer selection dialog first. 9/29/04 - Corrected problems when running the unform server on a system that has MAS/90 software installed, where there was a conflict with the use of a pvx.ini file. 10/8/04 - Modified the uf60c.pl script to avoid the use of the system command 'id -n -u', which failed on Solaris 9. An internal perl command is now used instead. 10/8/04 - Corrected error 81 and work file creation errors when using the html driver. A known issue remains with the html driver: if the rule set is designed to split the job into multiple files, such as file.page.htm and file.toc.htm, then the client:filename format of the -o option won't work, as the client does not know how to retrieve the additional files. 10/11/04 - Adjusted postnet barcode generation to make the bars thicker, as we received a report that the bar was too thin and out of tolerance. It is possible the postal service is tightening up acceptable tolerances. Note that postnet barcodes will now take somewhat more horizontal space than before, potentially causing conficts with other page data. 10/12/04 - Updated designer to not get an "error 35602 Key is not unique in collection" if the uf60d.ini library= line contains duplicate entries. 10/12/04 - Corrected an error 9 in the designer if you run a preview, then run a test laser print, then edit a line that would cause a drawing object to appear in the preview pane before running another preview. A drawing object will appear when editing commands that have an absolute position. 10/13/04 - Corrected a problem where images in across and down output were not properly propogated to each logical page in laser output. 10/15/04 - Corrected a problem with jobstore() and jobs with no formfeeds, where the first "page" would be stored with up to 255 lines. 10/15/04 - Added additional detail logging entries for start up processing. 10/15/04 - Modified uf60c.pl to correctly handle client output to pipes and redirects. Also added error messages for attempts to produce client- side html output, which is not possible due to the automated ability to split html output into multiple files with links on the server side. 11/03/04 - Corrected a problem with a relative text command affecting a subsequent text command if the search text is not found. 11/04/04 - Suppressed excess logging of state changes when running UnForm as a Windows 2003 service. 11/9/04 - Added optional pcl configuration line for Image Magick in the [images] section of uf60d.ini to support older versions of Magick that produced inverted black/white pcl images. The new line performs a two-step conversion that seems to get around the problem. To enable, comment out the normal pcl line, and uncomment the new one. Also noted where to get SCO versions of Magick 5.1. 11/11/04 - Corrected a problem with bold and italic commands not working, whereas the font command with bold or italic attributes worked. 11/19/04 - Corrected hline and vline commands when used in conjunction with boxr commands, where the hline/vline drawing would attempt to create a malformed rounded corner box incorrectly. 12/2/04 - Added more secure fonts for laser check printing, found in the se*.sfp files, and referenced in ufparam.txt in the [softfonts] section as font numbers in the 15000 range. Note that there is an incompatiblity between soft fonts and hp/gl, so you need to add -nohpgl to the uf60c command line and make sure you don't use rounded corner boxes in your check printing rule sets. Note if you have a ufparam.txc file in use, you will have to copy the softfonts section, or at least required parts of it, to ufparam.txc. 6.0.07 01/04/05 - Improved error message for invalid detect commands. 1/7/05 - Corrected watch variable behavior to not get double-produced when subjobs are executed from the design tool preview. 1/10/05 - Modified the temp file name generation in the Windows uf60c client, used when specifying -p win or -p winpvw without a -o, to use a Windows process ID rather than an instance handle to avoid potential duplicate file names. The issue showed up with Acrobat 7, apparently caused by Acrobat leaving files open even when the application is supposed to be closed. 1/12/05 - Added explicit code for HP-UX for the ps command options to use when stopping the uf60d server. The default commands did not always locate the process running the listener task. 1/12/05 - Modified the uf6ptr providex print driver to NOT close the print channel if running on a version of pvx prior to 6.00. The requirement of a manual close was not necessary prior to 6.00, and performing the close appears to have adverse consequences on certain operating systems. 1/12/05 - Added a special timeout mechanism to auto-shutdown a secondary process handler if the client does not communicate with it at least once within 60 seconds of startup. This should eliminate job slot hangs in cases where the process takes too long to start, causing the client to time out with an error 999, even though the process eventually does start and occupies a slot until the server is shut down or the idle timeout period expires (default of 24 hours). 1/24/05 - Corrected a problem in the uf60c Windows and Unix clients, where quotes from the command line were not always passed on to the server, potentially causing job parsing errors. 1/27/05 - Added a tcp/ip monitor feature that enables the unform server to function as a HP JetDirect printer, with any given port being associated with an UnForm client command line. For more information, see the new TCP/IP Monitor section in the manual. 6.0.08 2/8/05 - Corrected a problem where page attributes, such as orientation and duplex, were not being initialized when copy output devices were changed during a job. 2/9/05 - Corrected hang condition when running a -testpr option with no input file or to pdf output. Stand-alone clients also have to be updated, as the clients were not handling jobs with no input when -testpr was used. 2/16/05 - Corrected a problem with the bbxread() function on Windows. 2/22/05 - Corrected a problem with graphic caching causing corrupted pcl caching data. 2/25/05 - Modified the uf60d Unix script (re-generated when ufsetup is run) to perform a 'umask 0' command, to allow more open access to server- generated files. 2/25/05 - Modified uf60c clients to not wait for input if -makemacro is used without an artificial -i option. 3/1/05 - Corrected a problem if a -z file contained a nested -z file argument. 3/1/05 - Corrected a problem where -o NUL on Windows produced an invalid output error message. The NUL output on Windows allows default output to be thrown away, similiar to the /dev/null device on Unix/Linux. 3/4/05 - Added a "reuse" option to the direct tcp/ip monitor when it opens sockets for listening. This allows quicker restarts of the server without errors re-opening previously opened sockets. 3/28/05 - Corrected pdf image scaling to match that used by pcl. Pdf scaling was applying a factor that correlated to a 8.5x11, 66 line form. If a pdf image is applied to a form that differs from these dimensions, such as a 11x8.5 60 line form, the image will likely scale somewhat bigger. It may be necessary to reduce the image size in the image command. To calculate the difference, compare the actual lpi with 6.3. For example, if the page is 11x8.5 (letter landscape), deduct top/bottom margins of 0.25, resulting in 8 inches of height. For a 60 line form, that is 60/8, or 7.5 lpi. Adjustment divisor would be: 7.5/6.3=1.19. So, for example, a 13 line image could be changed to 13/1.19, or 10.92 rows. 6.0.09 4/13/05 - Added zpl support for automatically hex encoding text and barcode values that include ^, ~, or control character values. For example, 'text 1,1,{"abc"+chr(10)+"def"}' will now add the ^FH prefix to the ^FD command and generate the text as abc_0Adef. In particular, this allows maxicode barcodes to be properly constructed with embedded hex 1D and 1E values. Note that the barcode value suppied should not be pre-encoded. For example, the value should contain the binary string 0x1D rather than the hex encoded result of "_1D". 4/14/05 - Added a notice to the version (uf60c -v) message when the server is running under Windows. The message contains a list of Windows printer queue names known to the unform server, each of which can be accessed via a -o "*windev*;queuename" reference. For example, if one of the queue names is "Bob's Laserjet", you could send output to his printer with -o "*windev*;Bob's Laserjet". Take care on Unix clients talking to Windows servers, using single quotes or escaping the * values inside double quotes (-o "\*windev\*;Bob's Laserjet"). 5/3/05 - Added x*86 machine name format to the Intel-based machine classification. Before, only the i*86 machine names were interpreted as Intel. 5/11/05 - Corrected color coding that was failing and defaulting to black if an exec() function was used in a code block and the -nohpgl flag was not used on the command line. 5/17/05 - Corrected the license.sh script to specify the library path when activating the pvx runtime to prevent conflicts with existing pvx applications that rely on the PVXLIB environment variable. 5/23/05 - Modified the automatic hex encoding for zebra output to only occur when non-printable characters are present in the text value. The former adjustment dated 4/13/05 disabled the ability to embed your own zpl commands in text commands. 5/24/05 - Modified the uf6ptr pvx print driver to leave buffering enabled (not print a '-B' mnemonic) until the print channel is closed by the application. By turning off buffering, fragmented print logic in the application (one or more prints terminated by a comma before one isn't) would result in CR characters (hex 0D) embedded in lines. UnForm truncates such lines. 5/27/05 - Updated the uf60c perl client (uf60c.pl specifically) to support a -nointr option. This option tells the client to ignore interrupts (ctrl-C generally) once a connection is made to the server. The default behavior is to cancel the job. This can help on systems where it is desirable to interrupt a parent task but leave the UnForm job active. 6/2/05 - Corrected a problem in the designer where the clipboard was not properly updated by copy or cut operations. 6/14/05 - Corrected a problem with human readable barcode text in the text command. 6.0.10 6/20/05 - Modified the timing of the primary output channel's close to avoid the potential of a client trying to retreive the file while the server process still had the file opened. The likelyhood of this happening was rare, but it showed up in certain very active servers. 6/20/05 - Corrected a run-time error when editing a code block section in the GUI design tool. 6/24/05 - Modified the handling of direct tcp/ip job submissions to be more robust at handling high volumes of jobs. 7/14/05 - Corrected a fatal error if an erase command is supplied with only three parameters. 8/2/05 - Modified handling of ImageMagick generated pcl color images to properly handle rotation required for landscape output. 8/8/05 - Corrected an issue when configuring direct tcp/ip printing before ever running a test unform job using a standard (uf60c) connection. Without the test job, a control file (ufctrl.pv) was not created and the tcp monitor startup would fail. 8/12/05 - Modified the design tool to add a copy of a rule file to a designer side (Windows install path) "Backups" directory every time a rule file is saved or published. The file names are derived from the rule file .rud or .rud name plus a time stamp. Old files (over one week) are automatically purged to keep the directory from growing without limits. This will enable recovery of any edition of a rule file within one week of any activity. 9/14/05 - Corrected a problem with direct tcp/ip printing, where the monitor could get jobs confused if multiple jobs were being submitted at the same time. It was possible for one job to be left unprocessed, and another to be prematurely submitted or split into multiple pieces. 9/27/05 - Corrected an error 29 in ufmainp.pv at 19080, resulting from binary data being sent to a pdf file that had been redirected in the rule file to a different file name than the original -o option. The error would result in invalid PDF output. 9/28/05 - Corrected a problem with laser output vertical text location when a 'down n' command was used. When that command was used, the top margin was not added to the positioning of input stream text, resulting in it appearing too high on the page. PDF output was not affected and this correction positions laser data the same as pdf data. Jobs that adjusted positions of graphical elements to work around this error will unfortunately have to be modified. 10/5/05 - Corrected another problem with laser output vertical positioning, related to fonted text when printed using hp/gl, the default in many cases. 10/6/05 - Updated designer to not get an "error 35602 Key is not unique in collection" if the uf60d.ini library= line contains duplicate entries or an entry that matched the server install directory, and a Save As function was executed. 10/10/05 - Updated the server to enable design tool access to sub-folders of library paths. Unix-based servers supported this capability, but Windows-based servers did not. 6.0.11 11/8/05 - Corrected a problem with the fit option of the font command on PDF output. The original font size was being retained rather than being scaled down properly. 11/9/05 - Corrected a problem with across and down positioning in laser output when running in hpgl mode (no -nohpgl command line option). 11/14/05 - Added quotes around the design tool 'set sample' file when running previews, correcting an error 12 if the file contains spaces. 12/09/05 - Corrected a problem with jobstore when form feeds are not used and input rows (page) is less than output rows. 12/15/05 - Corrected an issue where if a ,color option is added to an image, and no -ci or -gw option is provided on the command line, barcodes can be truncated if the last image printed is smaller in dimension than the barcode. 12/20/05 - Corrected implementation of a feature added previously, where if no data was received within 1 minute of a client connection, the process handling the connection would assume the client was no longer connected and would quit with a time out message. 1/3/06 - Corrected a potential problem with jobs being left in the rpq directory (the direct tcp/ip spool path) if they get an error when initially processed. The error file was never reset, resulting in the additional attempts thinking they received an error even if no error occurred. 1/12/06 - Corrected a problem with font commands not honoring left or top margin settings when the margin command is used. 1/30/06 - Modified uf6ptr (Providex generic print driver) to erase the correct work file value after a job, at line 3510. 2/16/06 - Corrected handling of hex-encoding in Zebra output, which was resulting in quote characters being changed to _22. 3/13/06 - Corrected handling of shade 0 and fit or wrap together on a text command, where the 0 shaded text would be obscured by a black box rather than displaying on top of the box. 4/28/06 - Added lingering code to assist with Windows run-time license management. This linger code does not affect UnForm job slots. 7/10/06 - Corrected a problem in ufsetup.sh when the PVXLIB environment variable is in use by another application, where other application's ProvideX license could be reset in a new installation of UnForm. 8/8/06 - Corrected an error 47 when using hline and/or vline. 10/20/06 - Corrected a problem with page cols,rows in conjunction with across and down, only printing the first virtual page of the last set of rows. 10/31/06 - Modified the Windows client to fully initialize a -p win/winpvw local work file, in order to prevent invalid pdf output in cases where a duplicate process ID happens to be used between two different UnForm jobs. 2/25/08 - Fixed Unix auto-licensing to use HTTP/1.1 protocol to be compatible with our new web server.