public override void OnStartPrint(PrintDocument document, PrintEventArgs e)
        {
            var printSettings = new PMPrintSettings();

            printSettings.Collate = document.PrinterSettings.Collate;
            switch (document.PrinterSettings.Duplex)
            {
            case Duplex.Simplex: printSettings.DuplexMode = PMDuplexMode.None; break;

            case Duplex.Vertical: printSettings.DuplexMode = PMDuplexMode.Tumble; break;

            case Duplex.Horizontal: printSettings.DuplexMode = PMDuplexMode.NoTumble; break;
            }
            printSettings.SetPageRange((uint)document.PrinterSettings.MinimumPage, (uint)document.PrinterSettings.MaximumPage);
            printSettings.FirstPage = (uint)document.PrinterSettings.FromPage;
            printSettings.LastPage  = (uint)document.PrinterSettings.ToPage;
            if (document.DocumentName != null)
            {
                using (var jobName = new CFString(document.DocumentName))
                    PMPrintSettingsSetJobName(printSettings.Handle, jobName.Handle);
            }
            var printInfo = document.DefaultPageSettings.print_info;

            printInfo.Printer = NSPrinter.PrinterWithName(document.PrinterSettings.PrinterName);

            sessionHandle = printInfo.GetPMPrintSession();
            var result = PMSessionBeginCGDocumentNoDialog(sessionHandle, printSettings.Handle, printInfo.GetPMPageFormat());
        }
 public PrinterSettings()
 {
     printer       = NSPrintInfo.DefaultPrinter;
     printer_name  = printer?.Name;
     page_settings = new PageSettings(this);
     //PaperSizes = new PaperSizeCollection(new[] { new PaperSize("Letter", (int)(8.5f * 72f), (int)(11f * 72f)) });
 }
Ejemplo n.º 3
0
        internal static NSPrinter PrinterWithNameOrDefaultPrinter(string printerName)
        {
            NSPrinter printer = null;

            if (!string.IsNullOrEmpty(printerName))
            {
                try { printer = NSPrinter.PrinterWithName(printerName); } catch { }
            }
            return(printer ?? new NSPrinter());
        }
Ejemplo n.º 4
0
 void InitPrinterSettings()
 {
     printer      = NSPrintInfo.DefaultPrinter;
     printer_name = printer?.Name;
 }