[C#] プリンタ情報からCapability, PrintTicketを取得
- LocalPrintServer→PrintQueueCollectionの中からFullNameでプリンタを検索
- GetPrinterCapability()でCapability取得
- 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 件のコメント:
コメントを投稿