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