[완료]emacsW32, 프린트시 한글 깨짐
WindowsXP에서 emacsW32를 사용하고 있습니다.
프린트에서 근 3주간 해메고 있는데요.
기본적인 프린트에서 이렇게 어려움을 당하니 정나미가 떨어질려고 하네요.
프린트시 발생한 문제인데 도움좀 부탁합니다.
1. emacsW32의 "File->Print Buffer"메뉴를 실행하면
"Spooling with options (page headers are not supported)...done" 라고 메시지가
나오면서 프린트가 전혀 안되는데요. 어떻게 해결해야 하는지 궁금합니다.
2. 1번의 문제로 헤매다가 고스트스크립트로 하는 방법이 있다는걸 알아서
고스트스크립트를 설치하고 "File->Postscript Print Buffer"메뉴를 실행했더니
이번에는 한글이 모두 "?"로 바뀌어서 출력됩니다.(???, ?????, ?? 이런식이죠.)
(.emacs파일에는 아래코드 추가해줬습니다.)
(setenv "GS_LIB" "C:/Program Files/gs/gs8.63/lib/;C:/Program Files/gs/gs8.63/fonts/")
(setq ps-lpr-command "C:/Program Files/gs/gs8.63/bin/gswin32c.exe")
(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" "-sDEVICE=mswinpr2"))
(setq ps-printer-name t)
3. 2번의 문제로 다시 해메고 해메다 익스플로러를 이용한 프린트 방법이 있다는걸
알았습니다. nXhtml이죠. emacsW32옵션에서 이 모드를 On(non-nil)시키고
"File->nXhtml print"를 시켰더니 익스플로러로 프린트가 되긴 하는데, 한글이
깨져서 나옵니다.
이상 3가지 문제로 어려움을 겪고 있는데 뭐가 됐던 한가지라도 해결해서
프린트를 정상적으로 할수 있었으면 하는 바램입니다.
테스트해본 것 남겨봅니다.
withtw님 글을 보고 저도 테스트를 해봤습니다.
1. usb 프린터라 그런지 cmd.exe에서 print 명령어로도 프린트가 안 돼서
테스트 자체가 불가능...다른 분께 패스.....^^;
2. 저도 똑같은 문제가 생겼습니다.
(setq ps-multibyte-buffer 'non-latin-printer)
설정을 하면 일부 일본어 같은 것은 나오는데 ascii가 아닌 부분은 제어 문자 비슷하게 나옵니다.
뭔가 폰트 문제 같은데 삽질이 필요할 듯...전 포기.....죄송...^^;
3. hfyview-quick-print-in-files-menu 설정해서 사용하신 것이라면
생성된 것을 IE에서 볼 때 IE 메뉴 View -> Encoding 에서
인코딩을 수동으로 utf-8로 바꾸어주니 정상적으로 보였습니다.
기타 의견:
w32-integ-dired-explorer-print 함수에서 아이디어를 얻었는데
간단한 프린트같은 경우 아래 같은 함수를 만들어서 사용하면 될 듯 싶습니다.
또 다른 기타 의견:
좀 복잡할 것 같지만 CUPS를 이용하는 것도 고려해 볼 수 있을 듯 싶습니다.
감사합니다.
primewizard님 답글 감사합니다.
작성해주신 코드는 잘 동작했습니다.
더 찾아보니 "w32-winprint.el"란게 또 있더군요.
링크참조:
http://www.emacswiki.org/cgi-bin/emacs/w32-winprint.el
http://www.emacswiki.org/emacs-ko/PrintWithWebBrowser
w32-winprint.el코드를 .emacs파일에 추가만 해주면 되고 다른 해줄것은 없습니다.
위 코드를 추가하고 이맥스를 다시 실행하면 emacsW32에 기본으로 있던 4개의 프린트메뉴가
사라지고 "Print Buffer with Notepad(B+W)", "Print Region with Notepad(B+W)" 두개의
메뉴가 생기는데 이걸 사용하면 됩니다.
혹시, 이 방법으로 프린트하다 노트패드에서 "데이터 실행 방지 오류"가 발생하면
아래의 방법으로 해결하시기 바랍니다.
1. C:/boot.ini 파일을 연다.
2. /noexecute의 옵션을 아래와 같이 수정한다.
/noexecute=AlwaysOff 또는
/noexecute=AlwaysOff /pae
3. 재부팅한다.
참고 링크 : http://qaos.com/article.php?sid=2213
댓글 달기