2015年12月4日金曜日

[C#] プリンタ情報からCapability, PrintTicketを取得



  1. LocalPrintServer→PrintQueueCollectionの中からFullNameでプリンタを検索
  2. GetPrinterCapability()でCapability取得
  3. DefaultPrintTicketでPrintTicket取得

using System;
using System.Collections.Generic;
using System.Linq;
using System.Printing;
using System.Text;
using System.Threading.Tasks;
namespace GetPrintTicket
{
    class PTicket
    {
        static void Main(string[] args)
        {
            PTicket provider = new PTicket();
            provider.run();
        }
        private void run()
        {
            PrintQueue printQueue = null;
            LocalPrintServer localPrintServer = new LocalPrintServer();
            PrintQueueCollection localPrinterCollection = localPrintServer.GetPrintQueues();
            System.Collections.IEnumerator localPrinterEnumurator = localPrinterCollection.GetEnumerator();

            for (;;)
            {
                if (!localPrinterEnumurator.MoveNext())
                {
                    return;
                }
                printQueue = (PrintQueue)localPrinterEnumurator.Current;
                if (printQueue.FullName == "PS Standard UI Replacement")
                {
                    break;
                }
            }
            PrintCapabilities printCapabilities = printQueue.GetPrintCapabilities();
            Console.WriteLine("Capability");
            Console.WriteLine("\tCollationCapability:");
            for (int i = 0; i < printCapabilities.CollationCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.CollationCapability[i]);
            }
            Console.WriteLine("\tDeviceFontSubstitutionCapability:");
            for (int i = 0; i < printCapabilities.DeviceFontSubstitutionCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.DeviceFontSubstitutionCapability[i]);
            }
            Console.WriteLine("\tDuplexingCapability:");
            for (int i = 0; i < printCapabilities.DuplexingCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.DuplexingCapability[i]);
            }
            Console.WriteLine("\tInputBinCapability:");
            for (int i = 0; i < printCapabilities.InputBinCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.InputBinCapability[i]);
            }
            Console.WriteLine("\tMaxCopyCount:" + printCapabilities.MaxCopyCount);
            Console.WriteLine("\tOrientedPageMediaHeight:" + printCapabilities.OrientedPageMediaHeight);
            Console.WriteLine("\tOrientedPageMediaWidth:" + printCapabilities.OrientedPageMediaWidth);
            Console.WriteLine("\tOutputColorCapability:");
            for (int i = 0; i < printCapabilities.OutputColorCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.OutputColorCapability[i]);
            }
            Console.WriteLine("\tOutputQualityCapability:");
            for (int i = 0; i < printCapabilities.OutputQualityCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.OutputQualityCapability[i]);
            }
            Console.WriteLine("\tPageBorderlessCapability:");
            for (int i = 0; i < printCapabilities.PageBorderlessCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageBorderlessCapability[i]);
            }
            Console.WriteLine("\tPageImageableArea:" + printCapabilities.PageImageableArea);
            Console.WriteLine("\tPageMediaSizeCapability:");
            for (int i = 0; i < printCapabilities.PageMediaSizeCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageMediaSizeCapability[i]);
            }
            Console.WriteLine("\tPageMediaTypeCapability:");
            for (int i = 0; i < printCapabilities.PageMediaTypeCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageMediaTypeCapability[i]);
            }
            Console.WriteLine("\tPageOrderCapability:");
            for (int i = 0; i < printCapabilities.PageOrderCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageOrderCapability[i]);
            }
            Console.WriteLine("\tPageOrientationCapability:");
            for (int i = 0; i < printCapabilities.PageOrientationCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageOrientationCapability[i]);
            }
            Console.WriteLine("\tPageResolutionCapability:");
            for (int i = 0; i < printCapabilities.PageResolutionCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PageResolutionCapability[i]);
            }
            Console.WriteLine("\tPageScalingFactorRange:" + printCapabilities.PageScalingFactorRange);
            Console.WriteLine("\tPagesPerSheetCapability:");
            Console.WriteLine("\tPagesPerSheetDirectionCapability:");
            for (int i = 0; i < printCapabilities.PagesPerSheetDirectionCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PagesPerSheetDirectionCapability[i]);
            }
            Console.WriteLine("\tPhotoPrintingIntentCapability:");
            for (int i = 0; i < printCapabilities.PhotoPrintingIntentCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.PhotoPrintingIntentCapability[i]);
            }
            Console.WriteLine("\tStaplingCapability:");
            for (int i = 0; i < printCapabilities.StaplingCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.StaplingCapability[i]);
            }
            Console.WriteLine("\tTrueTypeFontModeCapability:");
            for (int i = 0; i < printCapabilities.TrueTypeFontModeCapability.Count; i++)
            {
                Console.WriteLine("\t\t" + printCapabilities.TrueTypeFontModeCapability[i]);
            }
            PrintTicket printTicket = printQueue.DefaultPrintTicket;
            Console.WriteLine("Ticket");
            Console.WriteLine("\tCollation: " + printTicket.Collation);
            Console.WriteLine("\tCopyCount: " + printTicket.CopyCount);
            Console.WriteLine("\tDeviceFontSubstitution: " + printTicket.DeviceFontSubstitution);
            Console.WriteLine("\tDuplexing: " + printTicket.Duplexing);
            Console.WriteLine("\tInputBin: " + printTicket.InputBin);
            Console.WriteLine("\tOutputColor: " + printTicket.OutputColor);
            Console.WriteLine("\tOutputQuality: " + printTicket.OutputQuality);
            Console.WriteLine("\tPageBorderless: " + printTicket.PageBorderless);
            Console.WriteLine("\tPageMediaSize: " + printTicket.PageMediaSize);
            Console.WriteLine("\tPageMediaType: " + printTicket.PageMediaType);
            Console.WriteLine("\tPageOrder: " + printTicket.PageOrder);
            Console.WriteLine("\tPageOrientation: " + printTicket.PageOrientation);
            Console.WriteLine("\tPageResolution: " + printTicket.PageResolution);
            Console.WriteLine("\tPageScalingFactor: " + printTicket.PageScalingFactor);
            Console.WriteLine("\tPagesPerSheet: " + printTicket.PagesPerSheet);
            Console.WriteLine("\tPagesPerSheetDirection: " + printTicket.PagesPerSheetDirection);
            Console.WriteLine("\tPhotoPrintingIntent: " + printTicket.PhotoPrintingIntent);
            Console.WriteLine("\tStapling: " + printTicket.Stapling);
            Console.WriteLine("\tTrueTypeFontMode: " + printTicket.TrueTypeFontMode);
        }
    }
}

0 件のコメント:

コメントを投稿