2014년 7월 18일 금요일

RedMon과 Ghostscript


LPT1: 포트를 사용하는 프린터로 출력되는 내용을 파일로 저장하려면 어떻게 하면 될까?

일단 포트를 캡쳐하는 소프트웨어를 찾으니 PRINTFIL이라는 것이 있다. 설치를 비롯해서 자세한 사용법은 아래 링크에 있다. 일단 30일동안 평가용으로 사용하고 그 이후에는 구입해야 한다는 것이 맘에 안든다. 두번째는 Ghostscript와 연동이 된다고 되어 있는데 실제로는 안된다. 그래서 일단 PRINTFIL을 통해 파일로 저장된 것을 다른 툴을 이용해서 PDF로 만들어야 한다는 두단계의 스텝이 맘에 안든다.

PRINTFIL사용법 ... http://www.dol82.net/430

그래서 다시 검색을 하다보니 윈도우즈에서 가상PS프린터를 아래와 같이 만들어서 사용할 수 있다는 글을 발견했다.

Postscript → Virtual Postscript Printer → RedMon → Ghostscript → GS mswinpr2 device → Physical Printer

그런데 왜 이런 복잡한 걸 하는 걸까? 주된 이유는 Postscript파일을 인쇄하는 경우에 사용한다고 되어 있다. 하지만 근래에 Postscript파일을 직접 인쇄해야 하는 경우를 본적이 없으니 원래 목적대로는 사용할 필요가 없어 보이는 테크닉이다.

하지만 가만히 보면 RedMon을 사용해서 프린터 포트를 만든 후 이 포트로 인쇄되는 내용을 Ghostscript로 보낼 수 있다고 되어 있다. 이것이 바로 내가 찾던 것이다.


1. RedMon설치

RedMon ... 두가지를 하는데 첫번째는 LPT1:과 같은 프린터 포트를 만들어 준다. 두번째는, 그 포트에 연결된 프린터에 인쇄를 하면, 인쇄되는 내용을 다른 프로그램으로 연결해 주는 역할을 해 준다.

설치파일을 받아서 압축을 풀고 setup.exe를 실행시키면 설치가 끝났다는 메시지가 나온다.



메인프로그램이 어디 있나 찾아 보니 아무데도 안보인다. 이게 뭐지? 흠... 좀 더 자료를 살펴보니 이것은 프린터에 포트를 추가해 주는 것이였다.



그럼 다른 프로그램으로 출력을 전환하는 설정은 어디에서 하나? 바로 프린터의 포트설정에서 하면 된다.



첫번째 줄에는 C:\gs\gs9.14\bin\gswin32c.exe 를 지정하였다. 이것은 Ghostscript cmd버전이다.
두번째 줄에는 @C:\gs\mswinpr2.txt를 지정하였다. 이것은 Ghostscript의 Argument가 들어 있는 텍스트파일이다.

-Ic:\gs\gs9.14\lib
-sDEVICE=pdfwrite
-dNOPAUSE
-dBATCH
-sOutputFile=c:\gs\mswinpr3.pdf -

마지막에 "-"가 있는 것은 오타가 아니다. 이것은 표준출력을 받아들여 처리하라는 의미의 Ghostscript인수다. 여기서 RedMon이 표준출력을 한다는 것을 알 수 있다. 즉, 이 프린터로 인쇄하면 출력내용이 표준출력(stdout)으로 나오게 된다. 이것을 Ghostscript가 입력파일 대신 받아들여 처리하라는 인수이다.


2. Ghostscript 설치

Ghostscript... PostScript 내용을 읽어 들여서 PDF나 JPG파일로 만들어 준다. (Ghostscript사용법 ... How to use Ghostscript)

설치파일을 받아서 설치하면 된다. 설치 후 실행파일이 두개인 것을 발견했는데 하나는 윈도우용 실행파일이고 하나는 cmd용 실행파일이였다. 너무 간단...

하지만 Ghostscript의 인수가 많아서 사용법이 너무 복잡해 보인다. 그 중에서 내가 사용할 것은 PDF를 만들 때 사용하는 것으로 아래와 같다.

스위치효과
-dBATCH파일 변환후 GS>프람프트를 표시하지 않고 종료한다.
-dNOPAUSE페이지마다 멈추지 않고 계속 진행한다.
-sDEVICE출력형식을 지정한다.
예) -sDEVICE=pdfwrite
-sOutputFile결과물을 OutputFile로 저장한다.
예) -sOutputFile=out.pdf
- (대시)입력파일에 "-"를 지정한 경우 표준입력을 의미하고, 출력파일에 "-"를 지정한 경우 표준출력을 의미한다.
RedMon과 같은 프로그램에서 출력하는 내용을 고스트스크립트에서 입력처리 하는 경우 입력파일 이름에 "-"를 지정한다.
@위와 같은 Argument를 지정한 파일이름을 지정한다. 일부는 명령줄에서 입력하고 일부는 파일에서 지정하는 것이 가능하다.
예) C:\gs\mswinpr2.txt

아래 사용예의 첫번째는 Preview.ps파일을 out.pdf로 만드는 예이고, 두번째는 type에 의한 표준출력을 입력파일로 보고 out.pdf를 만드는 예이다. 둘 다 동일한 결과를 가져 온다.

C:\gs\>gswin32c.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=out.pdf Preview.ps
C:\gs\>type Preview.ps | gswin32c.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=out.pdf -


3. 인쇄 및 개선사항

두개를 연결해서 LPT1:과 같은 곳에만 출력이 가능한 인쇄물을 인쇄하는데 성공... 하지만 흑백으로 나온다.  컬러프린터 중 PS드라이버를 윈도우즈에서 기본적으로 제공하는 프린터는 그렇게 많지가 않다. 이것 저것 테스트 해 보니 가장 좋은 것은 아래 것.


이것도 기본 설정이 흑백이라서 Preference에서 Color를 선택해 주어야 했다.

댓글 없음 :

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.