Impressario[tm] is a printing and scanning environment for Silicon Graphics® IRIS® workstations. The Impressario Developer's Kit provides solutions for a wide range of UNIX® audiences: printer and scanner driver developers, application program developers, and end users.
The goal of Impressario is to provide an intuitive, friendly, and reliable interface for end users, while increasing system capability and performance for driver and application developers. Users can simply drag and drop a file onto a printer icon to print the file. Other graphical tools in the end-user's environment provide information on the capabilities and status of any accessible printer or scanner.
The Impressario printing environment provides two main end-user enhancements:
Support for a wide range of printers from high-quality color printers to high-speed black-and-white printers
Graphical printing tools that allow a user to submit a print job and monitor the status of the job and the printer
Impressario enables developers of printer drivers and scanner drivers to showcase each product's special features and capabilities and present them to the user via a graphical dialog box. Application programmers can greatly reduce the development time required to support printing and scanning functions.
The Impressario printing environment is built on top of the AT&T System V® printer spooling interface. Model files, filters, and printer drivers are provided to convert a wide variety of file types (ISO text files, Silicon Graphics Image files, PostScript® files, and so forth) to formats for both raster printers and PostScript printers. Using the Impressario host-based PostScript interpreter, it is possible to print PostScript documents to raster printers with performance that greatly surpasses printer-based PostScript interpreters. Impressario also includes the PrintBox Motif widget[tm], a graphical user interface (GUI) for printing.
Impressario server software contains filters and drivers for sending jobs to a printer connected directly to a host workstation. In addition, all Impressario printer drivers maintain status information in a globally available printer object database.
The Impressario scanning environment provides generic scanner support. Impressario scanner application programs and Impressario scanner drivers run as separate executables, enabling any scanning application to interact with all scanner drivers.
Impressario gives application developers a number of valuable resources, including:
libspool, a printer spooling system abstraction library that enables complex printing functions to be defined with only a few lines of code
Application programming interfaces for easy access to the end-user's scanning environment
A network-transparent version of the printer object database library routines to inquire directly about printer configuration and status
The Impressario Programming Guide is written for the following users:
Printer driver developers
Scanner driver developers
Application program developers who need to print or scan from their applications
The 1.2 release of Impressario contains the following new features:
Networked scanner support; scan from scanners not directly attached to your machine
Support for large color prints (the newly added HP DesignJet 650C® supports color plots up to 36" x 44")
Support for 48-bit color scanners; true 16-bits/channel color image support
Inclusion of the Silicon Graphics Image format library (libimp), an ANSI-compliant, clean, and optimized library that supports all 8-bit to 48-bit Silicon Graphics Image formats
More image file formats; automatically views and prints TIFF[tm], GIF[tm], PBM, PGM, PPM, Silicon Graphics Image RGB, FIT, PhotoCD[tm], and JPEG formats. Rotate, mirror, gamma-adjust and resize any of these image types. Drag-and-drop them all onto your printers
![]() | Note: Be sure your server is running 1.2. |
Complete backward compatibility with IRIX[tm] 4.0.5 Impressario 1.1. Support for IRIX 4.0.5 clients with IRIX 5.2 servers, IRIX 5.2 clients with IRIX 4.0.5 servers
Since this guide has four separate audiences, the list provided below gives the areas of most interest to each user:
Printer driver developers should read chapters 1–6, 10, 11, and 12.
Printer application program developers should read chapters 1, 6,
and 12.
Scanner driver developers should read chapters 1, 2, 7–9, 11, and 12.
Scanner application program developers should read chapters 1, 2, 9, and 12.
The followings conventions are intended to help make information easy to access and understand:
Chapter 1, "Impressario Architecture," discusses Impressario's printing and scanning architectures and defines Impressario compliance for printer driver and scanner driver developers.
Chapter 2, "Installing Impressario Software," explains how to install the Impressario software. It includes product-specific information that is supplemental to the IRIS Software Installation Guide.
Chapter 3, "Printer Drivers," provides an overview of printer driver processing, plus a detailed analysis and discussion of an example printer driver. The required printer filter/driver options are also covered.
Chapter 4, "Printer Model Files," discusses the printer model files and describes the modifications to be made by printer vendors to the printer model file template.
Chapter 5, "Printer Graphical Options Panel," discusses the graphical options panel that visually showcases a printer's features. The major topics discussed are options handling, panel layout, development, naming, installation, invocation, and termination.
Chapter 6, "Printing Libraries," describes the libraries used by printer drivers, filters, and applications. The libraries described are the libspool library, the libprintui library, and the libpod library.
Chapter 7, "Scanner Drivers," explains how to write a scanner driver. It provides a detailed analysis of the template scanner driver. The major topics are the driver template, header files, data structures, functions and macros, and installation and testing.
Chapter 8, "Scanner-Specific Options," discusses how to implement scanner-specific options for a scanner driver. The major topics are options, the scanner driver interface, perspectives, and installation and testing.
Chapter 9, "Generic Scanner Interface," describes a generic interface between a scanner driver and an application program. The major topics are the coordinate system for scanning, data structures, and data type conventions.
Chapter 10, "Testing for Impressario Compatibility," explains how to use the programs that test printing compatibility with the Impressario environment. It explains how to test Impressario printing compatibility, an Impressario printer, and an Impressario printer software installation.
Chapter 11, "Packaging Your Impressario Product," explains how to package the Impressario software product that you have created.
Chapter 12, "Enhancing Impressario with Plug-Ins," explains how to add new features to the Impressario open architecture. The major topics are how the Impressario file conversion pipeline works, how to add a new filetype to Impressario, and how to use an alternate PostScript RIP.
Appendix A, "Stream TIFF Data Format," describes the Stream TIFF file format, the primary interchange file format between printer filters and drivers, and libstiff, a C-language application programming interface used to read and write Stream TIFF files. Stream TIFF is also used by gscan(1) to store images in TIFF files and to scan to the screen (in conjunction with vstiff(1)).
Appendix B, "Silicon Graphics Image File Format API," describes libimp, the C-language API for reading and writing Silicon Graphics Image format files. The image processing features of libimp are also described.
Appendix C, "Printer Object Database (POD) File Formats," defines the file formats for printer configuration, status, and log files in the POD. The major topics are general syntax, input parsing rules for libpod files, printer configuration file format, and printer status file format.
Appendix D, "Transition Notes," explains how migrate from Impressario 1.1 software to 1.2 and from Impressario 1.0 software to 1.2. It also explains how Impressario application developers and filter/driver developers can take advantage of the new features in Impressario 1.2.
Appendix E, "Scanner Driver Architecture," describes the architecture of a scanner driver and discusses the template scanner driver, required and optional functions, and queues and multi-threaded scanner drivers.
Appendix F, "Man Pages," lists all Impressario online man pages: general interest, printer developers, and scanner developers.
The following books, available online through Silicon Graphics, contain information related to Impressario:
IRIX Programming Guide, Volumes I and II, Silicon Graphics, Inc.
IRIS Indigo Magic Integration Guide, Silicon Graphics, Inc
IRIS Advanced Site and Server Administration Guide, Silicon Graphics, Inc.
IRIX Device Drivers Programming Guide, Silicon Graphics, Inc.
IRIX Device Drivers Reference Pages, Silicon Graphics, Inc.
X Library Programming Guide, Volume I, O'Reilly & Associates
X Window[tm] System, Volume 4, O'Reilly & Associates
Motif[tm] Programmer's Guide, Prentice-Hall, Inc.
Motif Reference Manual, Prentice-Hall, Inc.
Motif Style Guide, Prentice-Hall, Inc.
Impressario Programming Guide, Silicon Graphics, Inc.
Impressario User's Guide, Silicon Graphics, Inc.
After installing online documentation, you can view the Impressario Release Notes. If you have a graphics system, select "Release Notes" from the Tools submenu of the Toolchest to display the grelnotes graphical browser. Refer to the grelnotes(1) man page for information on options to this command. If you do not have a graphics system, you can use the relnotes command. Refer to the relnotes(1) man page for accessing the online release notes.
Adding the product name to the relnotes command displays the table of contents for that product's release notes. For example:
% relnotes Impressario The chapters for the "Impressario" product's release notes are: chap title 1 Introduction 2 Installation Information 3 Changes and Additions 4 Bug Fixes 5 Known Problems and Workarounds 6 Documentation Errors Use "/usr/sbin/relnotes productname chapter" to view a chapter |
Appendix F lists the man pages provided online with Impressario. To access the online man pages, type:
man page-name |
The Impressario release identification information is listed below:
Version number: 1.2
Product code Impressario Server: SC4-IMPS-1.2 CD
Product code Impressario Developer's Kit: SC4-IMPD-1.2 CD
Additional printer copy of Impressario Programming Guide: M4-IMPD-1.2
System software requirements: IRIX 5.2 or later