본문 바로가기
Delphi Tip/출력

델파이 인쇄 출력 10편

by MonoSoft 2023. 9. 7.
728x90
반응형

델파이 인쇄 출력

728x90

 

인쇄메모리(스와핑)최적화와 인쇄속도

 

인쇄를 하는 작업은 상당한 메모리를 요구합니다.

메모리가 부족하면 여러가지 반응이 나타나는데

 

"메모리가 부족합니다"

 

라는 메시지가 나오기도 하고

뒤의 몇페이지를 아예 안하고 멍청하게 있기도합니다.

 

처리속도도 어떻게 구현하느냐에 다라 많이 달라집니다.

 

1. 선 그리기

 

윈도가 실제로 선을 그리는 일은 없습니다.

시작점부터 끝점까지 계속원을 그려서 선처럼 보이게 하는것입니다.

 

그래서 선의 굵기가 굵어지면 원은 직경이 커지고

그만큼 속도가 엄청 느려집니다.

 

결론은 선을 굵게 그릴려면 차라리

속이 꽉찬 네모를 그리는것이 빠릅니다.

 

 

2. Brush.Style := bsClear; 을 쓰지 말자

바탕에 그림을 한장 깔고

 

Brush.Style := bsClear;

 

한 다음에 그 위에 커다란 네모를

그리면 결과는 그림위에 투명한 네모가 그려지겠지요?

 

투명한 네모는 표를 그릴때도 많이 사용합니다.

 

그런데 간혹 어떤 레이져 프린터에서는

네모가 투명하지않고 까맣게 출력되기도 합니다.

 

그러면 윈도가 투명한 네모를 어떻게 그리는지 알아볼까요?

 

먼저 네모를 그리기 전에 네모가 그려진 후의

투명한 부분, 즉 네모의 안쪽을 메모리에 비트맵으로 저장합니다.

 

그리고 전체 네모를 까맣게그리고

메모리에 저장해 두었던 바탕을 다시 덮어서 그립니다.

 

이 과정에서 네모의 안쪽 영역만큼의 메모리공간을 요구합니다.

물론 일시적이기는 하지만 문서가 워낙 크다보니 상당한 메모리를 요구합니다.

 

이때 메모리가 작은 프린터에서 그런 일이 벌어지기도 합니다.

결론은 투명한 네모를 그릴때에는 귀찮더라도 선을 네번 그리는것이 안전합니다.

 

728x90
반응형

'Delphi Tip > 출력' 카테고리의 다른 글

프린터 목록 불러오기 / 기본프린터 불러오기  (0) 2023.11.24
델파이 인쇄 출력 11편  (0) 2023.09.08
델파이 인쇄 출력 9편  (0) 2023.09.06
델파이 인쇄 출력 8편  (0) 2023.09.05
델파이 인쇄 출력 6편  (0) 2023.09.04

댓글