Hi all, print_server beta 3 is around the corner. The cvs repository contains the latest version. This allows to select a printer from within an application. The settings which printer an application uses are persistent, also the page setup and job setup settings are persistent for each printer. Know bug: does not start correctly from Tracker! The Be print_server, when called from Terminal, does not start twice if it is already running. OBOS print_server behaves the same. This is handled in main() (PrintServerApp.cpp). It checks if an instance of print_server is already running and exits if so. For some reason, if started from Tracker, it seems that it blocks somewhere in main() (probably in be_roster->IsRunning(PSRV_SIGNATURE_TYPE)). Any help how this should be done correctly is appreciated. BPrintJob progresses slowly (not in cvs). Most of its methods are implemented. The print job is created, but not in the printer spooler directory and child views of a view are not added to the job file. I don't fully understand the semantic of BPrintJob::DrawView(view, rect, point) with regard to child views. I can find it out, but it would help if someone could explain how point and rect influences the rectangle that is passed to child views via call to BView::Draw(rect). Some byproducts that have been created for testing are (not in repository yet): The class PicturePrinter that extends the class PictureIterator from PDF Writer and prints a BPicture to stdout in human readable form. PrintJobReader for reading data from a print job. It allows to directly access the pages of a print job and allows to iterate through the BPictures of a page. The test application DumpPrintJob prints the contents of a print job using both classes from above. The test application Preview that shows the contents of a print job similarly to the Preview printer. It uses the class PrintJobReader. Anyone want to extend it to a preview printer add-on? That's all, - Michael