Search code examples
objective-cmacoscocoaprinting

How do I change the NSPrintInfo duplex?


Using UIKit I can set up a print job using UIPrintInfo as normal and set the printInfo.duplex to UIPrintInfoDuplexShortEdge which means that when I print multiple pages in landscape orientation the document comes out nicely laid out on the paper.

I would like to do the same in Cocoa but I can't find the equivalent. How do I do this?


Solution

  • You need to access the low-level Core Printing object and modify that:

    PMPrintSettings printSettings = printInfo.PMPrintSettings;
    if (PMSetDuplex(printSettings, kPMDuplexTumble) == noErr)
        [printInfo updateFromPMPrintSettings];