2008년 5월 12일 월요일

USB프린터에서 prn파일 인쇄하기

USB포트로는 prn파일 인쇄 명령을 쓸 수 없는 줄 알고 있었는데...

다시 웹검색을 하다가 알아낸 것이...


"포트"탭의 "프린터 풀링" 옵션을 이용해서 간단히 해결되었습니다.

1. 프린터가 연결되어있는 컴퓨터의 해당 프린터 등록정보로가서...





2. 프린터 풀링을 설정을 합니다.





3. 인쇄명령은...

프린터가 연결되어있는 컴퓨터의 명령프롬프트에서(만든 prn파일이름이 test라고 할때)

?:\>copy test.prn prn /b

다른 명령으로

?:\>print /d:LPT1 test.prn

print명령도 인쇄는 잘 되었지만, 빈 페이지 한장이 더 출력되는 문제가 있었습니다.

포트명을 지정해주어 확실하고 잘 작동되는 명령은

?:\>copy test.prn LPT1 /b

위와 같이 하는 것이 좋을 것 같습니다.




*** 중요 ***

예전 프린트 서버에 내장된 FTP서버에 prn파일업로드 방식으로 인쇄한 적이 있는데,

txt파일같은 간단한 문서의 경우는 아무 조건 없이 인쇄가 되었지만,
그림이나, 복잡한 서식의 문서의 경우는 반드시 해당 프린터 드라이버를
이용해서 prn파일을 만들어야 출력이 잘 되었습니다.

(다른 기종 프린터 드라이버를 이용해서 만든 prn파일로 인쇄 명령을 내렸을 때는
출력물이 깨져서 나옴.)


이 방식에서도 그런지 시험은 해보진 않았지만,

같은 기종의 프린터 드라이버 설치 후, 그것을 이용해서 prn 파일을 만들어야 할 것 같네요.


출처 :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=188935&SiteID=1




이것을 배치파일로 만들어
탐색기에서 prn파일을 클릭할때 인쇄를 할지, 말지 Yes, No로 선택하는 파일을
작성해보기로 했습니다.

배치파일 관련 명령어를
아는게 거의 없어서 검색을 해보니
어떤 분이 잘 정리해서 작성해 주셨네요..

제목 : 배치파일] Yes / No 선택 묻기, 도스의 CHOICE 명령 대용, 사용자 입력 받기 - DOS-Windows Batch File

http://mwultong.blogspot.com/2006/09/yes-no-choice-dos-windows-batch-file.html

완전히 이해가 가진 않았지만(본인 실력 별볼일 없음..ㅠㅠ),

위의 블로그 글 소스에

copy %1 prn /b 하고 조금 더 내용 추가해서 만든 것을
탐색기에 적용해서 사용해 봤는데, 잘 작동하네요..^^;


Copy명령으로도 포트를 직접 지정해서 인쇄할 수 없을까? 하다가 찾아내었는데...

copy test.prn LPT1 /b

copy test.prn COM1 /b

위와 같은 명령으로도 인쇄가 되었습니다.

프린터 풀링포트 설정할 때,

USB외의 다른 포트를 LPT1말고도 COM1이나 COM2로 맞추고
포트를 직접 지정해서 인쇄가 가능했습니다..

그런데 포트를 직접 지정하는 것이 제대로 작동되는 경우가 있었는데,

장치 관리자의
포트 항목에서 존재하는 포트만이, (메인보드 하드웨어상으로 포트가 존재해야함.)
인쇄가 가능했습니다.

[예를 들어 풀링설정창에는 LPT2~3, COM3~4, 포트 등이 있고, LPT2등을 선택해서 풀링 설정을 한 후

copy test.prn LPT2 /b

명령을 내렸을 때, 인쇄명령이 제대로 작동하지 않음.
포트가 실제로 존재해야하고 그에 맞는 드라이버가 미리 설치되어 있어야 하는 것 같음.]

만약 LPT1포트에 [프린터01]이 연결되어있고,
USB프린터에도 [프린터02]가 연결되어있는 환경에서,

COM1과 USB프린터에 풀링설정이 되어있을 때,

copy test.prn prn /b 명령을 내린다면,

사용가능한 첫번째 포트(LPT1) 우선으로 인쇄할 것이란 생각이 들어서...
prn 파일이 [프린터01]에만 인쇄될 가능 성이 있어보입니다.

위와같은 상태에서 prn파일을 [프린터02]로 인쇄하기 위해서는

copy test.prn COM1 /b

위와같은 식으로 명령을 내려주면 USB프린터로 잘 인쇄 될 것이란 생각이 듭니다.


@echo off
setlocal

if "%1"=="" goto NOINPUT

echo %1을 인쇄하시겠습니까?
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:LOOP

set /p YN=(Y/N)

if /i "%YN%" == "y" goto YES
if /i "%YN%" == "n" goto NO

goto LOOP
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:YES
echo %1을 인쇄합니다.
copy %1 prn /b
goto QUIT

:NO
echo %1의 인쇄를 취소합니다.
goto QUIT

:NOINPUT
echo prn파일을 입력하지 않았습니다.
goto QUIT

:QUIT
pause

그냥 위에 배치파일 YESNO 작성하신 분의 글에다 몇가지 끼워넣었는데....

잘되긴 하네요. ㅜㅜ



댓글 없음:

댓글 쓰기