질문만 보고 내용은 읽지 않은 채 답을 했더니, 지금까지 제가 엉뚱한 답을 했군요. ^^
아래 코드는 현재 선택된 프린터의 이름, 종이종류, 종이 크기를 출력해 줍니다.
Printer()->PrinterIndex 를 바꾸면 프린터를 바꿀 수 있습니다.
TPrinter* p = Printer();
wchar_t* sPrtName = p->Printers->Strings[p->PrinterIndex].w_str();
HANDLE hPrt;
if (!OpenPrinter(sPrtName, &hPrt, NULL)) return;
DWORD dwNeeded = DocumentProperties(NULL, hPrt, sPrtName, NULL, NULL, 0);
LPDEVMODE pDevMode = (LPDEVMODE)malloc(dwNeeded);
DWORD dwRet = DocumentProperties(NULL, hPrt, sPrtName, pDevMode, NULL, DM_OUT_BUFFER);
if(dwRet == IDOK)
ShowMessage(
String().sprintf(L"Printer name : %s\r"
"Paper name : %s\r"
"Paper size : %.1fmm X %.1fmm",
pDevMode->dmDeviceName,
pDevMode->dmFormName,
pDevMode->dmPaperWidth / 10., pDevMode->dmPaperLength / 10.)
);
ClosePrinter(hPrt);
free(pDevMode);
뽀뽀중 님이 쓰신 글 :
: PrinterSetupDialog1 로 프린터 및 용지크기를 설정 하였습니다
:
: 그리고 설정된 프린터 이름은
:
: Label3->Caption = Printer()->Printers->Strings[Printer()->PrinterIndex];
:
: 위와 같이 하여 가져 왔는데,
:
: 첨부된 그림처럼,
: 용지 -> 크기(Z) 에서의 용지 크기 이름인 " 10X15cm " 를 읽고 싶습니다.
:
: 어떻게 해야 알수 있나요??
:
:
: 미리 감사 드립니다.
|