2015. 5. 14. 16:08ㆍCoders
그렇게 좋아하는 것도 아니지만, 미국이란 나라를 싫어하는 것 또한 아닙니다.
정치적 성향은 약간 좌측이긴 하지만, 종북은 아니죠.
아메리카여 영원하라! 파이팅 USA! 김정은 개새끼!
이야기가 좀 샜습니다.
본론으로 돌아와서. 다음 링크를 보시죠.
http://www.vbforums.com/showthread.php?251996-PaperSize-to-millimeters-(RESOLVED)
저 또한, 저 솔루션은 이것저것 하다가 찾았습니다. 머리가 굳었는지, PaperSize 라는 클래스의 높이, 넓이 값이 1/100 인치 단위로 되어 있다 해서 모골이 송연해 지면서, 아 어찌 계산을 해야지? 하는 생각에 연습장에 써 가면서 얻은 값이 리턴값에 0.254를 곱하면 됩니다. 자세한 설명은 생략.. 센티미터로 환산하기 위해선, 0.0254를 곱하면 되겠죠.
그런데 그런 식으로 디버깅 문자열을 찍어 보면, A4용지는 다음과 같이 나옵니다.
A4 : 210.058 * 296.926
제가 알기로, A4용지의 규격은 210mm, 297mm 입니다. 영점 몇의 오차가 발생 하게 되죠.
문제는, 저걸 화면에 찍어줘야 하는 난 어쩌란 말인가요. 각 용지 규격마다 사이즈를 그냥 갖고 있어야 하는 걸까요? 아오 스트레스. 저는 저걸 또 실제 프린터의 DPI (Dots per Inch : 아오 이거도 인치당 들어가는 점의 갯수네요.)에 따라 또 계산을 해야 하죠.
대충, 밀리미터 단위 사이즈 정보가 포함된 프린트 용지 리스트를 찍어 보자면, 다음과 같이 대충 Math 함수를 통해 반올림 처리를 해야 할 것으로 보입니다.
PrintDocument pd = new PrintDocument(); foreach (PaperSize pSize in pd.PrinterSettings.PaperSizes) { System.Diagnostics.Debug.WriteLine( string.Format("{0} ({1}mm*{2}mm)", pSize.PaperName, Math.Round(pSize.Width * 0.254), Math.Round(pSize.Height * 0.254))); }
뭐 아직까지도 우리 역시 모니터나 TV 의 사이즈를 이야기 할 때 거의 인치로 이야기를 하고, 땅 넓이를 이야기 할 때에도 제곱미터 대신에 "평"을 쓰고는 하죠.
에이... 뭐 투덜댈 게 아닌가 싶기도 합니다만.
프린터 관련 코딩을 하다가 용지 사이즈가 인치로 되어 있다는 사실에 깜놀하여 글을 쓰게 되었습니다.
아무튼.
글을 하나 보시죠.
http://www.science.go.kr/boardRead.bs?dataSid=3536&boardId=SCI_THEMELIFE
읽기 싫은 분은, 위 글 내용중 첫 부분.
지난 90년대 말. 미국 NASA가 지난 1999년 쏘아올린 화성기후 탐사위성은 그해 9월 화성 대기권 근처에서 너무 낮은 고도로 비행하다가 결국 화성 대기권에 부딪혀 파괴돼 추락했다. 이 같은 실패들이 왜 일어났을까? 바로 도량형의 혼선에서 비롯됐다.
환산표는 요 링크에 있네요.
http://www.ooli.co.kr/diy/data5/no5-005.htm
요 사진 출처는 위키피디아.
'Coders' 카테고리의 다른 글
[C#] 스플리터를 스무스(?)하게 접기 (0) | 2015.06.10 |
---|---|
[ASP.NET] Page_Load 에서 Response 종료하는 코드 (0) | 2015.02.17 |
[MSSQL] 인덱스 조각화(Fragmentation) 조회 (1) | 2014.12.05 |