2015-01-10 2 views
1

안녕하세요 저는 작은 58mm POS 열전 사 프린터에서 "실시간"으로 텍스트를 인쇄해야하는 python 스크립트를 구현하고 있습니다. 이를 위해 저는 python-escpos 라이브러리를 사용합니다. 모든 것이 잘 실행되지만 스크립트가 끝난 후 프린터가 인쇄되기 시작합니다. 루프 중에 다른 Epson.text ("foobar") 명령을 보내려고한다는 것을 이해할 수 없습니다. 현재 모든 텍스트 인쇄 문은 전체 루프 (일부 sleep (5)와 함께 데모 루프)가 끝난 후 인쇄되고 명령 프롬프트에 돌아옵니다.python-escpos 직접 인쇄 텍스트

from escpos import * 
from time import sleep 

Epson = printer.File("/dev/usb/lp0") 

while True: 
Epson.text("Hello World\n") 
sleep(5) 
+0

마지막 진술을 명확히 할 수 있습니까? –

+0

"sudo python script.py"를 사용하여 스크립트를 시작한 다음 잠시 (예 30 초) 실행하도록 할 수 있습니다. 프린터는 스크립트를 취소 할 때까지 아무런 조치도 취하지 않습니다. 프린터가 시작되고 모든 "hello world"출력물이 인쇄 된 후 – phpman

+0

"Epson.close()"를 수행 한 후 프린터가 인쇄를 시작한다는 것을 알았습니다. 아마도 문제는 열전 사 프린터를 사용하고 있다는 것입니다. 파일 시스템/dev/usb/lp0. 해결 방법은 이제 while 루프에서 프린터로 파일 연결을 열고 sleep (5) 전에 닫습니다. – phpman

답변

3

현재 python-escpos를 유지 관리 중입니다. (이상 https://github.com/python-escpos/python-escpos)

"File"-printer를 사용하면 현재 printer.flush()를 호출해야합니다. 그렇지 않으면 인쇄 버퍼가 전송되지 않습니다. 다른 프린터의 동작에 적응해야할지 여부를 결정했습니다.

+2

그냥 업데이트 : python-escpos의 v2.1.2가 모든 명령 후에 자동으로 플러시됩니다. –

+0

스크립트를 사용하여 EPSON TM-T88IV 및 V에 맞춰 ID를 0x04b8, 0x0e02 또는 0x04b8, 0x0202로 변경했으며'TypeError : __init __()에 예상치 못한 키워드 인수가 있습니다 '라는 오류 메시지가 나타납니다. profile'' 내가 할 수있는 생각이 있니? 당신의 도움을 주셔서 감사합니다. Michael – ddlab

+0

당신은 이것을 위해 새로운 질문을 만들어야 할 것입니다. 언뜻보기에 버전 2.2 또는 이와 비슷한 버전이있을 것입니다. 이 버전에 대한 올바른 설명서를 확인하십시오. 현재 버전 3은 pip로 미리보기 버전을 설치할 때만 사용할 수 있습니다 (현재 알파 상태 임). –