C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65075] Re:설정된 프린터 용지 크기를 알려면 어떻게 해야 하나요?
Julien [julien] 1815 읽음    2011-09-02 01:01
질문만 보고 내용은 읽지 않은 채 답을 했더니, 지금까지 제가 엉뚱한 답을 했군요. ^^
아래 코드는 현재 선택된 프린터의 이름, 종이종류, 종이 크기를 출력해 줍니다.
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 " 를 읽고 싶습니다.
:
: 어떻게 해야 알수 있나요??
:
:
: 미리 감사 드립니다.

+ -

관련 글 리스트
65061 설정된 프린터 용지 크기를 알려면 어떻게 해야 하나요? 뽀뽀중 1558 2011/09/01
65075     Re:설정된 프린터 용지 크기를 알려면 어떻게 해야 하나요? Julien 1815 2011/09/02
65079         감사 합니다. 덕분에 문제를 해결 하였습니다. 좋은 하루 되세요 (냉무) 뽀뽀중 1361 2011/09/02
65062     Re:설정된 프린터 용지 크기를 알려면 어떻게 해야 하나요? Julien 1232 2011/09/01
65065         감사 합니다. 한나더 추가 질문이 있는데. 뽀뽀중 937 2011/09/01
65074             Re:감사 합니다. 한나더 추가 질문이 있는데. Julien 1336 2011/09/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.