TweetFollow Us on Twitter

September 96 - Print Hints: The All-New LaserWriter Driver Version 8.4

Print Hints: The All-New LaserWriter Driver Version 8.4

Dave Polaschek

By the time you read this, version 8.4 of the LaserWriter 8 printer driver will have shipped. This driver -- LaserWriter version 8.4, for short -- is not the same old LaserWriter driver: it has new features that developers have been asking for, sports a new user interface, and beats earlier versions of the driver in the quarter mile.

Here I'll outline some of the changes -- a few minor, a few major -- that you need to be aware of for compatibility reasons. Even if you don't want to take advantage of any of the great new features, you'll at least need to address compatibility issues if any of the changes cause problems with your application.

To help you implement the new features, this column is backed up with detailed documentation on this issue's CD.

THE EXTENDED PRINT RECORD

The 120-byte print record in the previous driver version doesn't have as many free bits available as some programmers would like. So to let you save all possible printing information about a document, Apple decided to allow for extensible print records.

If all you want to do is maintain compatibility with the new driver version, you shouldn't need to change your application at all. But if you want to take advantage of the extended print record -- and implement attractive features such as access to a larger number of paper sizes, tray handling that works with the PrJobMerge function, and the ability to reliably save more user settings from the Page Setup dialog -- you do need to make some minor changes, along the following lines:

  • Because the extended print record can be any size larger than 120 bytes, your application must not make any assumptions about the record's size.

  • Although the locations of fields that are currently defined within the TPrint structure won't change, you should use PrGeneral with the extended print record opcodes (described below) to access any additional fields.

  • When using an extended print record, you'll need to call the extendPrDefault and extendPrValidate functions where you previously would have called the functions PrintDefault and PrValidate. (The new extend functions really just call PrGeneral with specific opcodes, but are more convenient to use than PrGeneral itself.) See "Extending the Print Record" on this issue's CD for more information on the extend functions and how they use the new PrGeneral opcodes.
Those who break the rules might need to make more changes. See the Print Hints column in develop Issue 26 ("The Top 10 Printing Crimes Revisited") for more information.

NEW PRGENERAL OPCODES

LaserWriter version 8.4 adds three new PrGeneral opcodes for dealing with the extended print record: kExtendPrintRecOp (which extends the print record), kGetExtendedPrintRecOp, and kSetExtendedPrintRecOp.

Table 1 gives a complete list of all the PrGeneral opcodes as of June 1996 (but be aware that printing in Mac OS 8 might not implement all of these). These opcodes are all planned to be supported by LaserWriter version 8.4, except for the ones that aren't used by LaserWriter 8 (as noted in the table). Refer to the article "Meet PrGeneral" in develop Issue 3 for more information about PrGeneral.

Table 1. The PrGeneral opcodes

Opcode Operation
4 getRslDataOp
5 setRslOp
6 draftBitsOp
7 noDraftBitsOp
8 getRotnOp
9 NoGrayScl (not used by LaserWriter 8)
10 getPSInfoOp
11 PSIntentionsOp
12 enableColorMatchingOp
13 registerProfileOp (ColorSync 1 only; not used by LaserWriter 8)
14 PSAdobeOp
15 PSPrimaryPPDOp
16 kLoadCommProcsOp
17 kUnloadCommProcsOp
18 kExtendPrintRecOp (LaserWriter version 8.4 and later only)
19 kGetExtendedPrintRecOp (LaserWriter version 8.4 and later only)
20 kPrinterDirectOpCode (not used by any LaserWriter driver)
21 kSetExtendedPrintRecOp (LaserWriter version 8.4 and later only)

NEW PRINT DIALOGS

The print dialogs have been completely redesigned for LaserWriter version 8.4.

Applications that use the approved method of extending the print dialogs will continue to function. But if your application uses a nonstandard method of extending the print dialogs, it's in trouble. The definitive source about how to extend a print dialog is PDlog Expand, available as sample code on this issue's CD and included with the Macintosh Technical Note "Print Dialogs: Adding Items" (PR 09).

The new print dialogs have a pop-up menu that lets the user select between multiple panes of the dialog. In Figure 1, the General pane has been selected from the pop-up menu. When an application adds items to the print dialog, they're added to a pane that has the name of the application. Because of this new multipane dialog, applications that extend the print dialogs in a nonstandard manner will cause many problems, such as dialog items appearing in the wrong locations, standard items being overwritten within the dialog, and standard items being drawn incorrectly.

Figure 1. The new multipane print dialog

Applications also shouldn't assume that the print dialog's foreground color is black or that the background color is white. Furthermore, when applications exit their CDEFs or user items, they should be careful to leave the foreground and background colors as they found them. Other items in the dialog rely on these colors, so if you change them the standard controls in the print dialog could take on unusual colors.

ONE-PASS PRINTING

With LaserWriter version 8.4, when background printing is disabled, printing is one-pass. This means that there are no longer any big spool files to fill up your hard drive, and the first printed page comes out of the printer more quickly (because it doesn't have to wait for the entire document to spool). The downside is that because the LaserWriter driver isn't making two passes over the data to be printed, it might not be able to perform the same optimizations on the PostScript(TM) code as when background printing is enabled.

As a result, jobs printed with background printing disabled might print more slowly, and in a few cases the final quality could suffer. With the advent of one-pass printing, if your application has its own PostScript LaserPrep dictionary, it should use the PREC 103 mechanism for this dictionary. With this mechanism, the driver downloads to the printer the PostScript dictionary contained in the PREC 103 resource before it's needed by application-generated PostScript code. If the application doesn't do this and defines its own PostScript procedures at the page level, these procedures will be undefined as part of the one-pass font-handling mechanism and you'll get PostScript errors (mostly undefined operators, because the operators you defined aren't there).

PORTIONS OF THE CODE IN SHARED LIBRARIES

Some of the functionality of LaserWriter version 8.4 has been broken out into shared libraries, including the following:
  • Converter library -- generation of PostScript code

  • PPD library -- parsing of the PostScript printer description file

  • Preferences and Collection libraries -- storage and retrieval of preferences file data

  • Downloader library -- downloading of PostScript and EPS files to a printer

  • PostScript Utilities library -- PostScript utility functions

  • Communications library -- communications
In the future, Apple may provide APIs to these shared libraries for third parties.

CHANGES TO PARSING AND HANDLING OF PPD FILES

If you're a printer developer, you should know that the way PPD files are parsed and handled has changed in LaserWriter version 8.4. Previous versions of the driver would supply a "Printer's Default" choice so that the user could choose not to decide about a certain feature and accept the default setting of the printer. With version 8.4, the driver will no longer provide this option. If PPD creators want to continue to have a Printer's Default option for a user interface feature (called UIFeature in the PPD specification), they'll have to add it to the PPD file in the list of options for that feature.

Also, common features available through the PPD file will be added to the correct pane of the print dialog. Features that aren't recognized or that are vendor-specific will be placed in their own pane. This can cause problems: if you use a nonstandard naming convention for a common feature, it will be placed with all other unknown features, and if you use a standard name for a nonstandard feature, it will probably end up in the wrong location.

One other change is that you can specify the graphic elements you'd like to use for UI features specified within the PPD file. See "LaserWriter 8.4 PPDs" on the CD for information about how to design your own pane for use with LaserWriter version 8.4. The latest Apple PPD files are the best examples of how to implement the new features.

NEW ERROR CODES

LaserWriter 8 introduced a number of new error codes, but they haven't been documented -- until now, that is. See the unofficial documentation "LaserWriter 8 Errors" on the CD. Future versions of this document will be released as Technotes. These error codes are provided for debugging purposes. Be aware that they may change in the future, so you probably don't want your application to depend on them.

WRAPPING IT UP

That's a quick rundown of the new features of the newest version of the LaserWriter driver. These features should make printing a better experience for the user, should give the developer more flexibility, and should require no changes to most applications. And to top it all off, they're cool!


    RELATED READING

    • "Print Hints: The Top Ten Printing Crimes Revisited" by Dave Polaschek, develop Issue 26.

    • "Meet PrGeneral, the Trap that Makes the Most of the Printing Manager" by Pete "Luke" Alexander, develop Issue 3.

    • Macintosh Technical Note "Print Dialogs: Adding Items" (PR 09).

    • "Extending the Print Record,""LaserWriter 8.4 PPDs," and "LaserWriter 8 Errors," all on this issue's CD.

DAVE POLASCHEK (dpolasch@apple.com) continues to be confused by California. There's nice weather when it isn't baseball season, the earth moves even when he's alone, and it's easier to find good wine than good beer. Dave works in Developer Technical Support (DTS) at Apple. If you'd like more details, look at http://www.best.com/~davep/.*

 
AAPL
$524.94
Apple Inc.
+5.93
MSFT
$40.01
Microsoft Corpora
-0.39
GOOG
$536.10
Google Inc.
-20.44

MacTech Search:
Community Search:

Software Updates via MacUpdate

VMware Fusion 6.0.3 - Run Windows apps a...
VMware Fusion allows you to create a Virtual Machine on your Mac and run Windows (including Windows 8.1) and Windows software on your Mac. Run your favorite Windows applications alongside Mac... Read more
Tweetbot 1.5.1 - Popular iOS twitter cli...
Tweetbot is a full-featured OS X Twitter client with a lot of personality. Whether it's the meticulously-crafted interface, sounds and animation, or features like multiple timelines and column views... Read more
Mac DVDRipper Pro 4.1.7 - Copy, backup,...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
PDFpenPro 6.2 - Advanced PDF toolkit for...
PDFpenPro allows users to edit PDF's easily. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Create... Read more
PDFpen 6.2 - Edit and annotate PDFs with...
PDFpen allows users to easily edit PDF's. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Features... Read more
Monolingual 1.5.9 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. It requires a 64-bit capable Intel-based Mac and at least... Read more
Maya 2015 - Professional 3D modeling and...
Maya is an award-winning software and powerful, integrated 3D modeling, animation, visual effects, and rendering solution. Because Maya is based on an open architecture, all your work can be scripted... Read more
Starcraft II: Wings of Liberty 1.1.1.180...
Download the patch by launching the Starcraft II game and downloading it through the Battle.net connection within the app. Starcraft II: Wings of Liberty is a strategy game played in real-time. You... Read more
Sibelius 7.5.0 - Music notation solution...
Sibelius is the world's best-selling music notation software for Mac. It is as intuitive to use as a pen, yet so powerful that it does most things in less than the blink of an eye. The demo includes... Read more
Typinator 5.9 - Speedy and reliable text...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more

Latest Forum Discussions

See All

Have a Special Dead Trigger 2 Easter Bas...
Have a Special Dead Trigger 2 Easter Basket Full of Goodies, Courtesy of Madfinger Games Posted by Rob Rich on April 18th, 2014 [ permalink ] Dead Trigger 2 | Read more »
Almost All of Playdek’s Library is on Sa...
Almost All of Playdek’s Library is on Sale Right Now, and You Should Check it Out Posted by Rob Rich on April 18th, 2014 [ permalink ] Playdek has released quite a few great iOS ports of board and card games over the years, and now most of them... | Read more »
Zynga Launches Brand New Farmville Exper...
Zynga Launches Brand New Farmville Experience with Farmville 2: Country Escape Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
David. Review
David. Review By Cata Modorcea on April 18th, 2014 Our Rating: :: MINIMALISTIC IN A DIFFERENT WAYUniversal App - Designed for iPhone and iPad David is a minimalistic game wrapped inside of a soothing atmosphere in which the hero... | Read more »
Eyefi Unveils New Eyefi Cloud Service Th...
Eyefi Unveils New Eyefi Cloud Service That Allows Users to Share Media Across Personal Devices Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
Tales from the Dragon Mountain: The Lair...
Tales from the Dragon Mountain: The Lair Review By Jennifer Allen on April 18th, 2014 Our Rating: :: STEADY ADVENTURINGiPad Only App - Designed for the iPad Treading a safe path, Tales from the Dragon Mountain: The Lair is a... | Read more »
Yahoo Updates Flickr App with Advanced E...
Yahoo Updates Flickr App with Advanced Editing Features and More Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
My Incredible Body - A Kid's App to...
My Incredible Body - A Kid's App to Learn about the Human Body 1.1.00 Device: iOS Universal Category: Education Price: $2.99, Version: 1.1.00 (iTunes) Description: Wouldn’t it be cool to look inside yourself and see what was going on... | Read more »
Trials Frontier Review
Trials Frontier Review By Carter Dotson on April 18th, 2014 Our Rating: :: A ROUGH LANDINGUniversal App - Designed for iPhone and iPad Trials Frontier finally brings the famed stunt racing franchise to mobile, but how much does its... | Read more »
Evernote Business Notebook by Moleskin I...
Evernote Business Notebook by Moleskin Introduced – Support Available in Evernote for iOS Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Deal Alert! 13-inch MacBook Pro on sale for $...
Best Buy has the 13″ 2.5GHz MacBook Pro on sale for $999.99 on their online store. Choose free shipping or free instant local store pickup (if available). Their price is $200 off MSRP. Price is valid... Read more
Free HopTo 2.2 Helps Enhance Your Productivit...
The HopTo app helps you do more on your iPad by providing more and easier adaccess to files and documents. Version 2.2 adds Egnyte and HopTo’s Mac OSX File Connector. If you already have the hopTo... Read more
National Distracted Driving Awareness Month:...
As the country recognizes National Distracted Driving Awareness Month, Sprint is reminding wireless consumers to focus on driving while behind the wheel, to not text or email while driving, and to... Read more
13-inch 2.4GHz Retina MacBook Pro available f...
Abt has the 13″ 2.4GHz 128GB Retina MacBook Pro available for $1229 including free shipping. Their price is $70 off MSRP. Read more
iMacs on sale for up to $160 off MSRP this we...
Best Buy has iMacs on sale for up to $160 off MSRP for a limited time. Choose free home shipping or free instant local store pickup (if available). Prices are valid for online orders only, in-store... Read more
iPad Airs on sale this weekend for up to $100...
Best Buy has WiFi iPad Airs on sale for $50 off MSRP and WiFi + Cellular iPad Airs on sale for $100 off MSRP on their online store for a limited time, with prices now starting at $449. Choose free... Read more
Apple restocks refurbished Mac minis starting...
The Apple Store has restocked Apple Certified Refurbished Mac minis for up to $150 off the cost of new models. Apple’s one-year warranty is included with each mini, and shipping is free: - 2.5GHz Mac... Read more
Hyundai Brings Apple CarPlay To The 2015 Sona...
Hyundai Motor America has announced it will bring Apple CarPlay functionality to the 2015 Sonata. CarPlay is pitched as a smarter, safer and easier way to use iPhone in the car and gives iPhone users... Read more
Updated iPads Coming Sooner Than We Had Thoug...
MacRumors, cites KGI securities analyst Ming Chi Kuo, well-respected as an Apple product prognisticator, saying that Apple will introduce an upgraded iPad Air and iPad mini in 2014/Q3, meaning the... Read more
Toshiba Unveils New High And Low End Laptop M...
Toshiba has announced new laptop models covering both the high-end and low-end of the notebook computer spectrum. Toshiba 4K Ultra HD Laptop Toshiba’s new Satellite P55t features one of the world’s... Read more

Jobs Board

*Apple* Inc. Research Data Specialist - Appl...
…of Worldwide Market Research & Intelligence. The team is responsible for conducting Apple branded consumer market research. It is also responsible for analyzing data Read more
*Apple* Automotive Parts Department position...
Apple Automotive is one of the fastest growing dealer…and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive, we Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Retail - Manager - Holyoke - Apple I...
Job Summary Keeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you’re a master of them all. In the store’s fast-paced, Read more
*Apple* Retail - Manager - Apple (United Sta...
Job SummaryKeeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you're a master of them all. In the store's fast-paced, dynamic Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.