2009-11-29 7 views
3

내 C++ MFC MDI 응용 프로그램은 엔지니어링 도면을보기에 표시합니다. CView 파생 개체를 PDF 파일로 덤프하는 좋은 방법은 무엇입니까? 어떤 라이브러리를 제안 할 수 있습니까 (네이사어가 아닌)? 저는 카이로와 libHaru 같은 몇 개의 라이브러리를 조사했습니다. 모든 그래픽 구성 요소를 그릴 수는 있지만 CView는 이미 모든 드로잉을 완료했다고 생각했습니다. 그것은 추신이나 뭔가를 통해 PDF로 덤핑 수 있습니까? 감사합니다.MFC MDI CView에서 PDF 페이지 생성

답변

1

CutePDF을 다운로드하면 PDF로 직접 인쇄 할 수 있습니다. 일반 프린터 기반 인쇄와 같습니다. 어도비 아크로뱃 프로를 얻는다면 똑같은 일을 할 수 있다고 확신합니다.

편집 :

당신은 벡터 그래픽을 저장하기 위해 드라이버에 의해 이용 될 "수"있는 방법으로 모든 드로잉을 할 수있는 장치 컨텍스트를 사용.

메시지 맵에서 WM_PRINT 명령 (ON_MESSAGE)을 처리하면 HDC가 제공됩니다. 당신은 수행하여 HDC에서 MFC 스타일 CDC를 검색 할 수 있습니다 다음과 같은 : 이제

CDC* pDC = CDC::FromHandle(hDC); 

다음과 같이 프린터에 표준 DC 그리기 명령을 실행할 수 있습니다 :

int width = pDC->GetDeviceCaps(HORZRES); 
int height = pDC->GetDeviceCaps(VERTRES); 
pDC->MoveTo(0, 0); 
pDC->LineTo(width, height); 

이 상단에서을 그릴 것입니다 왼쪽 모서리에서 오른쪽 하단 모서리. 이에 따라 모든 벡터 그래픽을 스케일링하면 잘하면 (필자는 불행히도 이것을 모르지만) 래스터 명령이 아닌 벡터 명령으로 PDF에 표시됩니다.

+0

안녕하세요. CutePDF는 나에게 좋은 출발이며 가능한 빨리 시도 할 것입니다. 내 진짜 도전 비트 맵에 반대하는 벡터 그래픽 PDF 페이지를 생성하는 것입니다. 비트 맵을 PDF로 인쇄하면 확대/축소가 너무 어색해집니다. 어쨌든 Zoom Pixation을 극복하는 것이 가능한지 CutePDF를 시도 할 것입니다. CutePDF SDK를 사용해 보셨습니까? 건배. – val

+0

나는 CutePDF SDK를 시도하지 않았다. 그러나 내가 아는 한 간단하게 HDC 명령을 프린터로 보낼 수 있습니다. "Moveto & LineTo"를 사용하여 래스터 명령이 아닌 벡터 명령을 생성합니다 ... – Goz

+0

안녕하세요 Goz, 프린터 교체를 제안했을 때 CutePDF를 시도했습니다. 그것은 나에게 약간의 탄력을 주지만, 내가 바라본대로 pixalation은 문제이다. HDC를 사용하면 내게 큰 인상을 줄 수 있습니다. HDC 아이디어에 대해 좀 더 자세히 설명해 주시겠습니까? 감사 – val