|
현재 벡터 프로그램을 개발하고 있습니다.
프린트 하는 부분에 문제가 있어서 질문드립니다.
현재 프린팅하고 있는 방법은 이렇습니다.
비트맵은 이미지의 dpi와 프린터의 dpi가 틀리기 때문에 대부분 확대가 되어서
이미지의 손상이 있습니다.
따라서 벡터이미지 같은 경우는 확대/축소시에도 이미지의 변화가 없어야 하기
때문에 pinter dc에 프린터 dpi를 계산해서 현재 화면에 보여주는 그대로의 크기로
직접 그려주게 만들었습니다.
이렇게 처리하다 보니 일부 프린터(엡손)에서는 벡터라인이 중간, 중간에 끊어지는
문제가 발생했습니다. 이 이유는 확실하게 알수가 없었습니다.
HP 프린터에서는 여러번 테스트를 했지만 잘 되었습니다. ㅠㅠ (몇십번 테스트 해보지 않았습니다.)
이 문제를 처리하기 위해서 프린터dpi에 맞는 이미지(bitmap)를 만들고 그 이미지(bitmap)에
원하는 (화면에 보이는)비트맵을 stratchblt시키고 벡터 같은 경우는 그 이미지에 직접 그려준후
결과 이미지(bitmap)를 프린터dc로 넘겨 프린트를 했습니다.
이렇게 처리를 했더니 문제는 발생하지 않지만 메모리가 엄청나게 많이 먹는
문제가 발생했습니다.
처음 문제가 발생하는 방법으로 처리하면 몇Kbytes이면 되지만 수정후 방법은
몇Mbytes를 처리해야만 했습니다. 프린터 버퍼(스풀)에 올라가는 용량을 말합니다.
당연히 속도도 엄청 많이 걸리고 프린터 버퍼 용량에도 문제가 있을 것 같고
하여튼간에 이러한 문제가 발생했습니다.
벡터 이미지를 프린트 해보신 경험이 있으신 분은 방법 좀 알려 주셨으면 좋겠습니다.
사실 이런한 문제점의 시초는 프린터 dc에 직접 라인을 그렸을 때 라인이 끊어지는
문제가 발생했다는 것에 있습니다. 도대체 왜 이런 문제가 발생할까요?
소스 디버깅을 해 보면 문제가 없는 것 같습니다. 여러명이 소스를 봤거든요.
|