첨부 소스 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

▶ 제어판에서 수정한 프린터 설정 정보 구하기 예제

using System.Printing;

PrintQueue printQueue = LocalPrintServer.GetDefaultPrintQueue();

PrintTicket printTicket = GetPrintTicket(printQueue);

 

728x90

 

▶ 제어판에서 수정한 프린터 설정 정보 구하기

using System.Printing;
using System.Runtime.InteropServices;
using System.Windows.Controls;

#region 인쇄 티켓 구하기 - GetPrintTicket(printQueue)

/// <summary>
/// 인쇄 티켓 구하기
/// </summary>
/// <param name="printQueue">인쇄 큐</param>
/// <returns>인쇄 티켓</returns>
public PrintTicket GetPrintTicket(PrintQueue printQueue)
{
    try
    {
        PrintDialog printDialog = new PrintDialog();

        string printerName        = printQueue.FullName;
        string defaultPrinterName = printDialog.PrintQueue.FullName;

        PrintTicket printTicket;

        if(defaultPrinterName != printerName)
        {
            SetDefaultPrinter(printerName);

            printDialog = new PrintDialog();

            printTicket = printDialog.PrintTicket;

            SetDefaultPrinter(defaultPrinterName);
        }
        else
        {
            printTicket = printDialog.PrintTicket;
        }

        return printTicket.Clone();
    }
    catch
    {
        return printQueue.CurrentJobSettings.CurrentPrintTicket.Clone();
    }
}

#endregion
#region 디폴트 프린터 설정하기 - SetDefaultPrinter(printerName)

/// <summary>
/// 디폴트 프린터 설정하기
/// </summary>
/// <param name="printerName">프린터명</param>
/// <returns>처리 결과</returns>
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool SetDefaultPrinter(string printerName);

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요