프린터의 종이 크기 및 이름을 잘 가져 오는데...
프린터가 출력 가능한 용지크기만 아니라 다른 크기의 용지크기도 가져 옵니다.
그래서 선택된 프린터의 종이크기만 가져 오려면 어떻게 해야 하나요?
예를 들어, A4 까지 출력 가능한 프린터가 있고,
A3까지 출력이 가능한 프린터가 있고
A1까지 출력이 가능한 프린터가 있는데,
각 프린터에서 출력 가능한 용지크기의 리스트만 가져오는 방법은 없나요?
Julien 님이 쓰신 글 :
:
: HANDLE hPrinter = NULL;
: DWORD dwNeeded = 0, dwReturned = 0;
: FORM_INFO_1 *forminfo = NULL;
: bool bFlag;
:
: bFlag = OpenPrinter(NULL, &hPrinter, NULL);
: if(bFlag == false || hPrinter == NULL)
: return;
:
: try
: {
: bFlag = EnumForms(hPrinter, 1, 0, 0, &dwNeeded, &dwReturned);
: if((!bFlag) && (GetLastError() != ERROR_INSUFFICIENT_BUFFER) || (dwNeeded == 0))
: return;
:
: forminfo = (FORM_INFO_1 *)GlobalAlloc(GPTR, dwNeeded);
: if(forminfo == NULL)
: return;
:
: bFlag = EnumForms(hPrinter, 1, (LPBYTE)forminfo, dwNeeded, &dwNeeded, &dwReturned);
: if(!bFlag)
: {
: GlobalFree(forminfo);
: return;
: }
:
: FORM_INFO_1 t;
: for(unsigned int i = 0 ; i < dwReturned ; i++)
: {
: t = forminfo[i];
: ListBox2->Items->Add(String().sprintf(L"Paper : %s, Size: %dmm x %dmm",
: t.pName, t.Size.cx / 1000, t.Size.cy / 1000));
: }
: }
: __finally
: {
: ClosePrinter(hPrinter);
: }
:
: 뽀뽀중 님이 쓰신 글 :
: : PrinterSetupDialog1 로 프린터 및 용지크기를 설정 하였습니다
: :
: : 그리고 설정된 프린터 이름은
: :
: : Label3->Caption = Printer()->Printers->Strings[Printer()->PrinterIndex];
: :
: : 위와 같이 하여 가져 왔는데,
: :
: : 용지사이즈는 어떻게 해야 알수 있나요??
: :
: : 미리 감사 드립니다.
|