프린트 출력 결과가 다릅니다.
한 사무실이구요
1. 제 PC에서 출력 하는거랑, 옆 동료 PC에서 출력 하는거랑 결과가 달라요
2. 한 PC에서 다른 프린터기로 출력하는게 결과가 달라요.
그림(.tiff) 파일을 인쇄 하는데요.
------------------------------------------------------------
1.
기하학적으로 생긴 도형을
어디에선 선이 진하게 어디에선 연하게.
어디에선 선 중 일부가 출력이 되고 어디선 안되고.. 무튼
프린터기 동일, 프린터 드라이버 동일
프린터 속성(옵션) 동일
하게 맞췄고..
다른거라곤,
한명은 GeForce 계열 그래픽 드라이버, 한명은 Intel 계열 그래픽 드라이버라는 점입니다.
------------------------------------------------------------
------------------------------------------------------------
2.
그리고 또 이상한건
똑같은 파일(tiff)을
한 PC에서 2대의 다른 프린터기로 출력을 하면
한 프린터에서는 마찬가지로 선이 진하게 어디선 연하게
또 어디선 선 중 일부가 출력이 되고, 어디선 안되고...
막 이래요..
------------------------------------------------------------
미치겠어요...
다른데 제출 해야 하는데
실제 파일과 동일하게 나오는 프린터는 없고
다 조금씩 다르게 나와서..
파일 + 출력물 을 제출 해야 하는데
출력물과 실제 파일 내용 (그림) 이 다르니깐..
어떻게 해야 할지 미쳐버리겠네요..
뭐가 문제 일까요?
어떤 점을 살펴봐야 될까요?
어떤점이 의심스러우세요?
정답이 아니어도 좋으니.. 의심 가는 부분 아무거나 막 던져주세요 ㅠㅠ
1. 혹시 프린터 기종이 어떻게 되나요?
1. 혹시 프린터 기종이 어떻게 되나요? PostScript나 PCL 프린터가 아닌 GDI 프린터라면 가능할 수도 있습니다. https://en.wikipedia.org/wiki/Graphics_Device_Interface#GDI_printers 참고하세요.
2. 안타깝지만 원래 그렇습니다. 두 대의 다른 프린터라면 들어가는 잉크나 토너도 다를 거고 내부 처리 알고리즘도 다르죠. 그래서 색이 정확하게 나오는 게 중요하다면 프린터와 모니터 모두 캘리브레이션을 거쳐야 합니다.
답변 감사 드립니다.
1번 테스트 :
사용중인 프린터는 삼성 M4370 레이저 복합기 이구요.
매뉴얼을 찾아보니, PS, PCL 모두 지원 한다고 되어있고, 현재 설치된건 PCL로 되어 있습니다.
2번 테스트 :
프린터는 캐논 LBP7660CDN 이고 이또한 PCL로 설치 되어 있습니다.
또 다른 프린터는 HP LJ9050DN인데 이 또한 PCL로 설치 되어 있습니다.
즉.. GDI는 아닌거 같네요.. 흠 무슨 문제인지.. 도무지 감이 안잡히네요 ㅠㅠ
dd
dd
구현의 차이
/* 질문하신지 오래되었지만 나중에 보시는 분들을 위해서 올립니다. */
kernel 코드 fs/char_dev.c에 보시면 자세한 구현이 나와있습니다. 두 함수에서 구현의 차이가 납니다.
1. int register_chrdev_region (dev_t from, unsigned count, const char* name)
-> from dev_t 번호 (major + minor) 부터 count의 갯수만큼 device 번호를 할당만 합니다. (번호 할당만)
2. int register_chrdev (unsigned int major, const char( name, const struct file_operations *fops)
-> 1) 현재 정해진 major 번호를 기준으로 해당 영역의 minor device 영역을 모두 할당
2) struct cdev 구조체 할당 (cdev_alloc) , 변수 설정 ,커널 등록(cdev_add)
1번을 쓸 경우 2번에서 행하는 일들을 추가적으로 코드를 작성해야 합니다.
추가) 두 함수 모두 device file은 생성하지 않습니다. device file 생성은 1. mknod command 2. device_create function을 이용해야 합니다.
댓글 달기