Retro Game & PC/매뉴얼 팁 작업

작은별 도트프린터 출력 흉내내기

smores 2021. 3. 18. 22:40

조금 바쁜 생활로 자주 못오고 있었습니다. 하지만 역시 이곳에 오면 아름답던 옛 추억들을 느낄 수 있기에 무척 기분이 좋습니다. 

 

며칠전 꿀꿀이님의 작은별 워드프로세서 사용기를 보았습니다. 소프트웨어에 맞는 레이저프린터까지 장만하여 사용하시는 걸 보니 무척 부러웠습니다. 

 

https://cafe.naver.com/appleii/17980

https://cafe.naver.com/appleii/17983

 

저도 애플2c 를 장만하긴 했는데 도무지 꺼내서 만져볼 엄두를 못내고 살고 있고요. 게다가 어렵게 장만했던 레트로 기기들도 조금씩 정리해 가는 중이어서요. 그리고 애플2c 의 경우 운좋게 애플 이미지라이터까지 다 마련하긴 했지만 (프린터 리본도 넉넉합니다 ^^) 작은별과는 맞지를 않는 모양이네요. 옛날 국내에서는 엡슨 ESC/P 코드 호환되는 도트 프린터가 대세여서 이에 맞추어 프로그램들이 개발되어 그런가봅니다. 애플 실기에 레이저프린터까지 연결하여 작은별을 사용하신다니 너무 부러웠습니다. 

 

그래서 글을 읽고는 작은별을 다시 AppleWin 에 띄워 보고서 가만 보니까 예전에 제가 뭔가 했던 것이 기억이 나더군요. 꿀꿀이님의 질문에 답변을 드린것이 벌써 어언 5년이 되어가네요. ^^ 세월 참 잘 갑니다. ㅎㅎ

 

https://cafe.naver.com/appleii/14178

 

갑자기 제가 예전에 사랑의 별점에 미쳐서 도트프린터 출력 흉내도 내고 하던 기억이 다시 떠올랐습니다. 그 당시 조합형 텍스트의 경우 한글 코드를 해석해서 24핀 도트프린터용 폰트 데이터를 이용하여 포스트스크립트 이미지로 도트 프린터 출력을 흉내내는 것을 했었고요. 

 

https://cafe.naver.com/appleii/13756

 

당시 출력 결과는 개인적으로는 만족스러웠는데 지금와서는 조금 아쉬운 점들이 있습니다. 그래서 조금 더 작업을 하고 결과를 회원분들과 나누고 싶어 글을 올립니다.

 

첫번째로 아쉬운 점이 애플2에서 주로 사용하던 n바이트 코드 자료의 경우 조합형으로 바꾸는 것이 지금에 와서는 조금 어려워졌다는 점입니다. 예전에는 구글크롬에 한오토마타 라는 애드온이 있어서 이를 사용해서 자료를 완성형 코드로 변환 후 KS2TG 라는 간단한 코드 컨버전 유틸리티로 조합형으로 한번 더 변환하여 포스트스크립 이미지를 만들었었습니다. 그런데 지금은 크롬의 한오토마타가 없어졌네요. 더이상 앱스토어에서도 찾을 수 없고요. 그래서 n바이트 코드를 변환하는 유틸리티를 열심히 찾다가 못찾아서 결국은 파이썬으로 간단히 만들어 보았습니다. 아직 완전히 깔끔한 것은 아니지만 그럭저럭 변환을 하긴 합니다. 그리고 이 프로그램을 만들면서 글자 조합 오토마타에 대해 다시한번 들여다보게 되었고, 예전 C 등으로 만들때에 비해 파이썬은 너무 엄청나게 간결한 코드로 만들 수 있음에 놀랐습니다. ^^

 

두번째로 예전의 포스트스크립트 생성 파이썬 코드의 경우 파이썬 2.7 을 쓰던 때 만들어서 이제 3.x 를 쓰는 입장에서는 아주 작은 수정이 필요하더군요. 그래서 이번에 그 코드도 조금 손을 봤습니다. 

 

작은별의 경우 AppleWin 의 파일로의 출력 기능을 이용하여 출력을 해 보니, 제가 예상했던 것과는 달리 출력결과가 Epson ESC/P 를 사용하긴 하는데 9핀(혹은 24핀) 그래픽 출력을 하여 글자를 그리는 데이터가 아니라 엉뚱하게도 n바이트 한글 데이터 자체에 몇몇 ESC/P 코드가 섞여서 나오는 것을 보게 되었습니다. 이건 제게는 엄청난 횡재입니다. 프린터 컨트롤 그래픽 출력 데이터를 다시 다른 그래픽 포맷 등으로 바꿀걸 고민하던 참이었걸랑요. 그런데 어떻게 브라더 레이저의 경우 이런 데이터를 받아서 한글도 출력하는지 무척 궁금하게 되었네요. 브라더는 한국 기업도 아닌데요. 그렇다고 꿀꿀이님께서 구한 것이 국내에 맞추어 발매됬던 모델이라고도 생각되지 않고요. 

 

어쨌거나 애플윈 덕에 저도 부족하지만 작은별의 출력을 그럭저럭 postscript 나 PDF 로 가지고 제 프린터에서도 출력할 수 있게 되었습니다. ^^

 

방법을 정리하자면

 

1. AppleWin 의 출력을 파일로 redirect 하는 기능을 이용하여 작은별 문서를 출력합니다. 이때 몇몇 옵션 설정을 전부 해제해 주어야 합니다. 그래야 한/영 변환 (ctrl_K, ctrl_A) 코드까지 다 얻을 수 있으니까요. 이게 꼭 필요한 것이 새로 만든 n바이트 문서를 조합형으로 바꾸는 단계에서 한글 상태여서 변환이 필요한지 여부를 판단할 수 있기 때문입니다. AppleWin 의 설정을 다음과 같이 해 주세요.

 

 

 

 

2. 출력한 파일을 (이름을 printer.txt 로 했다고 가정하고 파이썬 코드에 넣어 놓았습니다) LittleStarNbyte2Johap.py 와 같은 폴더에 넣고 이 프로그램을 수행하면 johap.txt 를 만들어 냅니다. 이지뷰어 등으로 보면 이 경우 라인피드 컨트롤 문자가 요즘(PC 도스 이후)과 달라서인지 글 개행이 제대로 안됩니다만, 나중에 포스트스크립트로 변환을 하면 그런데로 제대로 나누어집니다.

 

 

 

 

3. johap.txt 가 준비되었으면 조합형 문서를 postscript 로 변환하는 JohapText2Postscript.py 를 실행합니다. 파일 이름을 물어보면 johap.txt 를 넣어주면 되고요. 그러면 데이터를 분석해서 페이지별로 도트 이미지를 그리기 위한 도트의 위치 데이터 파일을 page1.txt, page2.txt ... 식으로 만들어 내고, 이것을 다시 읽어들여서 함께 첨부하는 DrawPS31.exe 코드를 실행해서 각각의 파일 이름에 해당하는 postscript 이미지 파일을 만듭니다. 

 

출력된 포스트스크립트 데이터는 텍스트 파일입니다. 텍스트 에디터로 열어보면 첫 시작부분에 점을 어떻게 그릴지에 대한 정의가 있습니다. 

 

/ft1 {

0.115 0.115 0 360 ellipse 0 0 0 setrgbcolor fill

} def

 

여기서 첫 두 숫자가 타원의 좌우/상하 길이가 됩니다. 이를 더 크게 하면 글자가 진해질 것이고, 작게 하면 글자가 흐려지지만 도트가 하나씩 구분되어 도트프린터 출력 느낌이 조금 더 날겁니다. setrgbcolor 앞의 세 숫자는 색상 정의인데 각각이 r, g, b 에 해당하여 0-1 사이의 실수값을 넣어줄 수 있습니다. 예를 들어 1 0 0 하면 빨강 도트로 다찍게 되고요.

 

본인 PC 에 ghostscript 와 gsviewer 가 설치되어 있으면 쉽게 그 이미지를 볼 수 있고, 아닌 경우라도 인터넷에 무료로 파일 변환을 해 주는 서비스가 많아서 이를 PDF 로 바꾸고, 바꾼 PDF 파일들을 다시 merging 하여 하나의 파일로도 쉽게 만들 수 있습니다. 

 

https://www.ps2pdf.com/

https://smallpdf.com/merge-pdf

 

리눅스 사용자라면 아예 터미널을 열고 명령어 만으로도 이런 작업은 간단히 다 할 수 있고요.

 

윈도우에서 직접 포스트스크립트를 보시려면 제가 사용하는 구버전을 올려놓은 공유 링크를 드리겠습니다. 개인적으로는 이 구버전이 최근의 신버전보다 쓰기에 편하게 느껴집니다. 큰 그림의 경우라도 처음부터 천천히 그려나가는 과정을 다 보여주는데, 요즘것은 한참 아무것도 안보여주다가 마지막에 다 된 그림을 짠 ! 하고 한번에 보여주더라고요. 저는 간혹 제품 개발시에 프로세스 처리 과정도 이걸로 시뮬레이션 하듯 보는 경우가 있는데 요즘 버전은 그게 안되서 불편하게 느끼곤 했습니다.

 

https://www.dropbox.com/sh/vp6gsdpotp4l8lb/AACNSN-cPai1f7Wu0pvBKRTca?dl=0

 

프로그램 코드를 보시면 영문은 한가지 폰트만 준비한 것에 비해 한글 폰트는 3가지(TB24M-명조, TB24G-고딕, TB24P-필기)가 있습니다. 원하는 것을 선택하여 출력할 수 있습니다. 코드에서 세가지 중 하나를 선택하도록 나머지는 comment 처리 하시면 됩니다.

 

postscript 로 만들어서 본 모습과 PDF로 변환하여 본 모습을 스크린샷으로 몇개 남깁니다. 

 

아직까지는 AppleWin 에서 출력한 n바이트 조합형 데이터의 모든 컨트롤 문자를 다 확인하지 못하여 몇가지만 대응하였기 때문에 문단 정렬 등에도 문제가 있고, 페이지 넘김도 그냥 룬문자 같은 아이콘이 하나 출력되는 것으로 끝나는 등 완성도는 조금 떨어집니다. 관심있는 분들이 업데이트 하시면 공유해 주시면 좋겠습니다.



 

 

 

 

 

 

 

KS2TG.zip
0.07MB
LittleStart-nByteKorean.zip
0.05MB

'Retro Game & PC > 매뉴얼 팁 작업' 카테고리의 다른 글

dosbox CRT scan mode  (0) 2022.03.28
작은별 도트프린터 출력 흉내내기  (0) 2021.03.19
Active GS joystick keys  (0) 2020.10.20
PRODOS  (0) 2020.10.20
Colossal Cave Adventure Walkthrough  (0) 2019.10.09