Everything Else
R6405: Page Setup is not retained between launches

Known Problem only in version 6.1 of macOS applications

The Problem

Because Helix collections have many different views, some designed for printing specific things (like checks) on specific paper sizes, each template stores its own Page Setup and Print dialog information — collectively known as a print record — within the structure of the collection. This is how Helix — unlike most other programs — can remember that your Invoice view prints on Letter size paper while your Sales Report view prints in landscape orientation on Legal size paper.

To compare this to the ‘normal’ way things work in macOS: choose Page Setup for this web page and note that the Scale is 100%. Then open a new browser window and use Page Setup to change that window’s Scale to 50%. Now switch back to this window and check Page Setup again — this window’s Scale has been set to 50%! This is the way Page Setup works — by using one set of Page Setup values for all windows — in virtually every other application. Clearly this approach does not work for Helix collections with multiple views designed for various functions.

This “print record” information — page orientation, scale, number of copies, etc. — that the operating system sends to Helix when a Page Setup dialog is used is significantly different in macOS than in OS 9. The data is both bigger (more settings are stored) and differently arranged. In addition, the print record is an “opaque” data structure within the operating system. That is, Helix never has access to this information — the print dialog that you see in Helix, is provided by the OS; our role (after the user prints) is limited to feeding the data to the system’s printer driver. The advantages of this method are that each program does not have to maintain its own printing code, and that every application’s printing system looks and works basically the same. the main disadvantage is that programs are highly dependent on the OS when printing. All we can do is pass the print record and forth and hope it makes sense.

To avoid breaking backwards compatibility — and because of significant differences between the internal structures of the OS 9 and macOS printing information — Helix ignores the stored (Classic) print record, meaning that customized settings (orientation, scale, etc.) stored when printing in Classic are not used in macOS. In other words, views ‘forget’ their Page Setup settings in macOS.

This is why some users report that Page Setup and Print dialog settings do not ‘stick’ — that is, retain their page orientation, scale, and other settings — in macOS.

Partial Workaround

To provide a partial workaround, the Page Setup data for each template is stored in memory in macOS, so the settings are retained as long as the Helix program is running. When you Quit the macOS native version of Helix Client, Engine or RADE, the settings are lost and must be re-specified the next time a view is to be printed.

Stored printing information has always been problematic — for example, when switching from one model of printer to another — so although the ‘Classic vs. macOS’ issue will be resolved eventually, we recommend that all printing sequences include a Page Setup command set to ‘Always Show Dialogs,’ giving the user an opportunity to confirm their desired settings when printing. Put the Page Setup command in a separate sequence, set to ‘Always Show Dialogs’ and nest this inside your other printing sequences, just before the ‘Print’ command. When the printing situation has stabilized, change the nested sequence to ‘Optionally Show Dialogs’ and the user will no longer see the dialog before printing.


This limitation exists in all macOS native Helix 6.1.x products.

This limitation is removed in Helix 6.2 and later.

Additional Notes

See TS6405: Page Setup and Scaled Printing in macOS for more information on printing in macOS.