2011-12-08 3 views
0

나는 PrintDocument 클래스를 사용하여 C#에서 인쇄 응용 프로그램을 작성 중입니다. 나는 물리적 인 인쇄 부분을 내가 원하는 방식으로 작업하게 만들었지 만 요구 사항 중 하나는 이미지 파일도 저장한다는 것이다.GDI DrawString 호출이 PrintDocument에서 다르게 동작하고 이미지를 렌더링하는 이유는 무엇입니까?

인쇄 된 페이지를 렌더링 한 동일한 GDI 호출을 사용하여 이미지를 만들었습니다. 그것은 텍스트를 제외하고는 꽤 가깝게 보인다. 인쇄 된 페이지는 괜찮지 만 저장된 이미지로 인해 8pt Courier 글꼴이 0.1pt 글꼴로 표시됩니다.

나는 행운과 함께 다음을 추가 시도 :

g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; 
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; 

모든 아이디어를 텍스트 렌더링에 왜 차이로?

답변

1

게시 할 코드가 충분하지 않아 게시 된 스 니펫이 글꼴 크기 조정과 관련이 없습니다.

인쇄 된 페이지와 이미지의 가장 큰 차이점은 해상도가 크게 다릅니다. 일반적으로 600dpi 대 96dpi입니다. 프린터의 기본 배율은 1 픽셀 = 0.01 인치이며 화면에 렌더링 할 때 텍스트와 이미지를 거의 동일한 크기로 만듭니다. 이 스케일링을 변경하면 문제가 발생합니다.

코드에서 Graphics.PageUnit에 대한 할당을 찾습니다.

+0

페이지 단위를 픽셀로 설정합니다. 게시 할 코드를 단순화하기 위해 더 이상 동작을 보지 않을 것입니다. 이 시점에서 코드의 불쾌한 줄이 어디인지를 판단하기 위해 시행 착오로 이어집니다. –

관련 문제