Print Organizer vs. Batch Print

What is Print Organizer?

Print Organizer is the new print set utility delivered with MicroStation V8i. It is intended to improve upon and replace the previous MicroStation print set utility, Batch Print.

The best source of information about Print Organizer is the product documentation, under 'Working with Complete Designs / Printing / Print Organizer".

How is Print Organizer different than Batch Print?

Print Organizer and Batch Print are conceptually quite different, but they have the same goal. Both allow you to print multiple design regions to a single printer. The design regions may consist of sheet models, design models, shape or cell boundaries, and/or saved views. When printing to PDF, the multiple design regions may be combined into a single multi-page PDF file. Print properties such as paper size and scale may be specified in the print set, as well as display attributes and resymbolization instructions such as pen tables.

To appreciate the fundamental difference between Print Organizer and Batch Print, you must first understand the term "print definition". In MicroStation terminology, a print definition is the collection of properties that define a single printed page. A print definition includes the name of the design file, the name of the model, the print area (the extents of a particular view number or saved view, a fence, or a sheet definition), the paper size, the print scale / size / origin, the pen table file name, the color mode, the rasterized mode, the print display attributes, and many other settings. You can roughly think of a print definition as the set of values displayed in the MicroStation single-Print dialog.

In Batch Print, neither the .job file, the batchplt.spc file, nor a combination of the two makes up a print definition. Instead, a Batch Print .job / batchplt.spc pair is the recipe for creating print definitions. For example, in a common workflow, the .job file lists one or more design file names (or regular expressions for design file names to be matched at print time) and associates four specifications defined in batchplt.spc. The batchplt.spc specifications contain instructions for the printer driver configuration and paper size to use, the display attributes to set, the print size / scale / origin, and instructions on how to search for one or more print areas defined by shapes, cells, or saved views. The print set may end up consisting of a single page or many pages -- there is no way to tell just by looking at the .job file. When using Batch Print, there is no way to see in advance how the actual print area fits on the paper. The print definitions are not realized until the print processing begins, and they are discarded afterwards.

A Print Organizer set consists of complete print definitions, not recipes for print definitions. Each print definition is guaranteed to produce one and only one printed page. Each print definition contains an explicit design file and model name, not a regular expression. Each print definition contains a specific print area (which may be view extents, a fence, or a sheet definition) that is not recalculated at print time. Each print definition has a specific paper size and print scale / size / origin that may be adjusted independently of the rest of the print definitions in the print set.

Another significant conceptual difference is that Print Organizer offloads processing of design files to a background MicroStation process. Whereas Batch Print loads each design file and model into the interactive MicroStation session as it iterates through the print set, Print Organizer does not disturb the active design environment when either constructing, modifying, previewing, printing a set.

These conceptual differences open the door to many Print Organizer features that were not possible in Batch Print. They also have some drawbacks which I'll also cover.

What new features are in Print Organizer?

Here are some of the many significant features in Print Organizer that are not available in Batch Print:

• Print definitions within a set have their own settings independent from other items in the set. For example, each page in the set may be printed using a different scale, paper size, color mode, pen table, rasterized setting, etc.

• Print definitions may be grouped in folders and subfolders within the print set. This hierarchy is preserved in the bookmark tree when printing to a multi-page PDF file.

• When creating a print set from a collection of shape or cell boundaries in a single model, the resulting print definitions may be inspected, modified, removed, rearranged, and previewed prior to printing. The page sequence is no longer mandated by the order in which the boundary shapes were drawn into the design.

• Print definitions may rely on different MicroStation user and project workspaces, making it easier to compose multi-discipline print sets.

• Print standards may be automated through the use of print styles defined in design libraries.

• Output print file names and PDF bookmark names may be automatically generated using more flexible formulas than were available in Batch Print.

• Print sets do not depend on a global external specification file. Once a print set is created, its print areas and display settings are not vulnerable to accidental modification of a shared workspace file such as batchplt.spc while composing a different print set.

What are the downsides to Print Organizer?

The most significant downside to the Print Organizer architecture concerns workflows where the number of pages in the print set frequently changes. Print Organizer works best when the collection of print definitions is stable. When this is the case, you can set up your print set early in the project, rearrange and customize the print definitions as needed, and print at major milestones without having to recreate the print set. This is an improvement in reliability over Batch Print, which effectively recreates the print set every time it prints. However, if you follow the find-multiple-shape-boundaries or find-all-sheet-models workflows, Print Organizer will not automatically pick up new boundaries or models whenever you print. It also will not automatically adjust fence points stored in existing print definitions if you move the shape or cell from which those fence points were originally generated. If you rely on this behavior, you will be required to recreate the print set whenever you print. This can be made easier with effective use of print styles, providing a similar level of automation as Batch Print.

The use of a background MicroStation process is essential in order to offer the capability to compose print sets from design files that rely on different workspaces. This is a big advantage in some environments, for example allowing you to produce a single PDF containing electrical and structural drawings where the authors made use of fonts and other resources defined in different workspaces. However, the feature does have some drawbacks: (1) Design files must be loaded into the background process before they can be processed. This can slow down Print Organizer when working with very large design files. Above a certain threshold, Print Organizer works better with many design files containing a single model rather than one design file containing hundreds or thousands of models. (2) It's a good idea to avoid working with the same design file in both Print Organizer and the interactive MicroStation session. By default, Print Organizer's background process loads the design files in read-only mode, but it is forced to unload and reload the file if it is changed by the interactive session. Use of auto-save can lead to thrashing by the background process. (3) Print preview requires graphics to be streamed from the background process to the interactive session for display in either the thumbnail preview control in the print definition Properties dialog or the larger print set preview window. This is slower than the single-process print preview in the MicroStation single-Print dialog, especially if Print Organizer first has to load the design file into the background process. To compensate for this delay, Print Organizer preview is multi-threaded. Unlike the single-Print dialog, you may proceed with changes in the Print Organizer print definition Properties dialog while the thumbnail preview is still generating.

Can I still use Batch Print?

The Batch Print application has been removed from the MicroStation V8i File menu and the product documentation. However, it may still be used in an unsupported manner for this release. The key-in "mdl load batchplt" will bring up the Batch Print dialog, and the global batchplt.spc file is still delivered with the product. There is no guarantee this will continue to be the case in the next major release.

How do I transition from Batch Print to Print Organizer?

First, Print Organizer is capable of opening Batch Print .job files. When it does this, Print Organizer basically performs the same operations that Batch Print performs when printing. Print Organizer reads the list of design files and models from the .job file, converts the specifications defined in batchplt.spc into an internal print style, and computes the set of print definitions matching what would have been generated had Batch Print been producing printed output.

Implied by this is the fact that the .job / batchplt.spc pair must be properly configured to produce valid output. Batch Print is capable of opening up a .job file successfully, but unable to produce printed output because the area specification is missing from batchplt.spc, invalid, or refers to shapes that cannot be found. Because Print Organizer converts the .job / batchplt.spc instructions into fully-realized print definitions in one operation, it cannot open a improperly configured .job file. If you find yourself in this situation, you may choose to open the .job file in the old Batch Print application, fix it, and then import into Print Organizer. Or you may find it easier and more productive in the long run to discard the damaged .job file, set up a print style containing your rules about finding shapes and setting the desired print scale, paper size, etc., and recreate the print set from scratch in Print Organizer using that print style.

Opening .job files in Print Organizer is a quick way to print legacy, static Batch Print jobs, but is not a long-term solution. For new print sets, the first step is to create a print style that Print Organizer can use to automatically create print definitions from design files, models, or Project Explorer links that you add or drop into the Print Organizer window. Creation of this print style is the conceptual equivalent to the creation of the batchplt.spc specifications you performed when you set up your Batch Print workflow.

I should point out that you don't need to create print styles to use Print Organizer. For the simplest workflows, you can manually set the printer in Print Organizer, drop the design file you wish to print into the Print Organizer window, bring up the Properties dialog(s) for the resulting print definition(s), change any properties whose default values aren't to your liking, Print, and you're done. But any realistic printing workflow will greatly benefit from either a default print style, or a print style that you explicitly specify when adding design files to Print Organizer.

Print styles in MicroStation V8i are major topic in their own right, and you will need to familiarize yourself with them using the product documentation before completing a successful transition to Print Organizer from Batch Print. To assist in understanding print styles, I've written a tutorial demonstrating their capabilities here.

How do I control output file names and/or PDF bookmark names using Print Organizer?

In Batch Print, the output file names are specified using a formula defined in the batchplt.spc printer specification. When printing from Batch Print, the PDF bookmark names are always the same as the output file name.

In Print Organizer, the output file names and PDF bookmark names are controlled independently using what are known as expressions. These expressions are a new concept in MicroStation V8i and are much more powerful than the Batch Print formulas. The ability to separate the file name from the PDF bookmark name is very helpful in some situations. For example, you may wish to include the current date or a sortable counter in the output file name, but not do so for the bookmark name inside the PDF file.

There is a good explanation of the output file name and print definition name expressions in the product documentation, under 'Working with Complete Designs / Printing / Print Organizer / Defining Print Definition and Output File Name Expressions'. Take note of the configuration variables MS_PLT_DEFAULT_PRINTDEF_NAME_EXPRESSION and MS_PLT_DEFAULT_OUTPUT_FILENAME_EXPRESSION.

To complete the transition from Batch Print to Print Organizer, you will need to take the output file name formula defined in your batchplt.spc printer specification and determine the equivalent Print Organizer output file name expression. In most cases, this involves simply picking one of the predefined expressions offered by Print Organizer, switching to custom mode, and perhaps tweaking the expression string slightly. Or you can open your .job file (assuming it's valid) in Print Organizer, bring up the output file name expression dialog, and copy the contents of the custom expression field. Once you have the desired output file name expression, open one of your common design libraries in MicroStation, bring up the Named Expressions utility, and create a new named expression using your expression string. Give it meaningful internal and external names, and make sure the Print Set keyword is checked. Finally, set MS_PLT_DEFAULT_OUTPUT_FILENAME_EXPRESSION to the internal name you assigned to your expression. Once that is done, Print Organizer automatically uses that output file name expression for new print sets. You can do the same for the print definition name expression, which controls the PDF bookmark names.

To assist in understanding the product documentation concerning named expressions and print output file names, I've written a tutorial covering the basics here.