> Well... suppose from my application, I want to convert a Word document to PDF. > How would I do that? I did quite a bit of research and the only way I found > was to use CUPS-PDF and have Word print to that printer. Then, I can retrieve > the converted PDF document. Is there any other way?
You are right, this is the only way. So there's a couple of things you have to deal with, and in particular things are different in 10.4 & 10.5. (I haven't actually tried this under 10.6 yet.) A particular quirk is that using lpoptions to set the default printer does not work if "use last printer" is the option selected for default printer in system preferences. The below code isn't your exact answer since it depends on my own code for executing processes, and is C++, but I think you can read it and get the idea: SwitchToPrinterStk::SwitchToPrinterStk( const char *pname ) : mDidSwitch( false ), mOldDefaultPrinterIsLast( false ) { ProcessResults pr = RunProcess( "/usr/bin/lpstat", "-d", NULL ); if( pr.exited && !pr.exitval ) { int idx = pr.outstr.find( ": " ); if( idx >= 0 ) mOldPrinterName = pr.outstr.substr( idx + 2, pr.outstr.length() - idx - 3 ); } pr = RunProcess( "/usr/bin/defaults", "-currentHost", "read", "com.apple.print.PrintingPrefs", "UseLastPrinterAsCurrentPrinter", NULL ); if( pr.exited && !pr.exitval ) { mOldDefaultPrinterIsLast = pr.outstr[0] == '1'; if( mOldDefaultPrinterIsLast ) RunProcess( "/usr/bin/defaults", "-currentHost", "write", "com.apple.print.PrintingPrefs", "UseLastPrinterAsCurrentPrinter", "0", NULL ); } /* 10.5: lpoptions works to set default print iff "use last printer" is not the default defaults -currentHost read -globalDomain ColorSyncDevices look for "DefaultDevice-prtr" = 24300; */ pr = RunProcess( "/usr/bin/lpoptions", "-d", pname, NULL ); mDidSwitch = pr.exitval == 0; } SwitchToPrinterStk::~SwitchToPrinterStk() { if( mOldPrinterName != "" ) RunProcess( "/usr/bin/lpoptions", "-d", mOldPrinterName.c_str(), NULL ); if( mOldDefaultPrinterIsLast ) RunProcess( "/usr/bin/defaults", "-currentHost", "write", "com.apple.print.PrintingPrefs", "UseLastPrinterAsCurrentPrinter", "1", NULL ); } -- Scott Ribe scott_r...@killerbytes.com http://www.killerbytes.com/ (303) 722-0567 voice _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com