이런저런 필요가 있을거 같아 라벨프린터를 산게 2년이 넘었는데 사실 집에서 쓰기가 번거롭더라구요.
결국 음식 유통기한이나 냄새제거제 등등 사용기간 확인하려고 날짜 뽑는게 주요 사용처일텐데,
그때마다 PC나 폰으로 어플 켜서 날짜 입력하기는 귀찮으니,
버튼 하나 누르면 오늘 날짜가 나오는 방법을 알아보기 시작했습니다.
브라더 라벨 프린터에 명령어 형태로 인쇄를 시킬수 있는 API(?) 가 세가지 형태가 있더라구요.
( https://www.brother.co.jp/eng/dev/command/reference/index.aspx )
흑백 이미지를 도트 형태로 이진수로 쏘는 Raster,
텍스트를 그대로 입력받는, 표준에 가까운 ESC/P,
그리고 브라더 독자규격일거 같은 P-touch template 인데...
문제는 제가 가지고 있는 PT-P750W 제품은 소형이라서인지 Raster 모드밖에 지원을 안하네요. 의도적인 차별로 보입니다.
처음에 이걸 모르고 ESC/P 메뉴얼만 보고 왜 출력이 안되는지 한참 헤맸네요.
텍스트->이미지 변환 라이브러리까지 직접 알아보기는 너무 일이 커져서 포기할까 했는데,
리눅스에 USB로 연결한 브라더 라벨프린터로, 명령어로 출력하는 라이브러리를 이미 만들어둔 사람이 있네요.
( https://mockmoon-cybernetics.ch/computer/p-touch2430pc/ )
심지어 딱 2주전 마지막 커밋이 "PT-P750W 지원" 입니다! 이 무슨 운명의 장난인지.
./configure && make && make install 을 직접 해본건 몇년만인거 같은데... 컴파일 해서 보니 잘 됩니다.
글씨 수직정렬 같은 부분만 대충 한번 조정해주고...
용도 없이 주문부터 해뒀던 aqara 지그비 버튼을 zigbee2mqtt 에 페어링하고,
버튼 클릭 mqtt 메시지를 잡아서 프린터로 쏘는 파이썬 스크립트를 간단하게 짰습니다.
잘 되네요. 프린터 전원 켜고, 바로 위에 붙여둔 버튼을 누르면 누른 횟수대로 오늘 날짜가 찍혀 나옵니다.
여러번 찍었을때 날짜 사이에 커팅라인이 칼로 안썰리고 점선만 인쇄되는게 흠인데,
코드를 좀 고쳐봐도 잘 안돼서 당분간 이대로 쓰렵니다. ㅎㅎ
파이썬 스크립트는 백업을 겸해 첨부해 두었습니다.
클리앙은 파일첨부가 없네요. https://cafe.naver.com/stsmarthome/21549 전체공개 게시글에 첨부되어 있습니다.
방법 요약:
- 브라더 라벨프린터를 리눅스 머신에 USB로 연결
- https://mockmoon-cybernetics.ch/cgi/cgit/linux/ptouch-print.git 코드 받아서 빌드
- 남는 지그비 버튼을 zigbee2mqtt 에 페어링
- 첨부한 파이썬 스크립트, 위쪽의 옵션들 잡아서 리눅스 머신에 실행시켜두기
근데 그럼 원래 컴퓨터에 연결해서 쓸려면 USB케이블을 다시 옮겨 연결해야하니 조금 번거롭기도 하겠네요 ㅠ
저 제품은 와이파이를 지원해서, 기존에는 USB연결을 아예 안쓰던 상황이라 괜찮았습니다.
그리고 라벨프린터도 컴퓨터에서 일반적인 프린터로 인식되기 때문에,
해보진 않았지만 리눅스에서 CUPS 사용해서 공유프린터로 열어두면 문제 없을거 같아요 ㅎㅎ
여기서는 도장님이셨군요. ㅎㅎ
블투방식이라아쉽습니다