我正在使用GhostPDL pcl6应用程序将文本文件打印为PDF。文本文件包含从连接到PLC控制器的串行端口捕获的文本。某些打印数据来自较早的系统,该系统仅使用换行LF来换行结束,并且未提供CR回车符。结果是PDF打印有“阶梯步进”问题。激光打印机可以设置为AUTO CR以允许打印正常打印。但是,我无法找到在pcl6 print命令中设置-sDEVICE = pdfwrite设置以添加自动CR的解决方案。PYSERIAL将LF转换为LF/CR
我的串行捕获程序是基于pySerial tcp_serial_redirect.py的修改版本。
https://github.com/jaredly/pydbgp/blob/master/symbian/serial_tcp_redirect.py
这是对树莓裨用于被用作可编程设备服务器。的转发到以太网打印机端口9100
随着其他特征,以捕获串行数据到一个文本文件的连续打印,我添加了一个写入文件命令程序:
if data:
logfile = open("/var/www/active_log.txt","a")
logfile.write(data)
logfile.close()
问题是文本文件没有所需的CR字符。 Windows中的Python程序创建一个文本文件,并将LF转换为LF/CR,但不在Raspberry Pi上。
我的解决方案在原有pyserial程序发现:
http://sourceforge.net/p/pyserial/code/HEAD/tree/trunk/pyserial/examples/tcp_serial_redirect.py
我简化了加入和分割式。
if data:
data = '\r\n'.join(data.split('\n'))
logfile = open("/var/www/active_log.txt","a")
logfile.write(data)
logfile.close()
经过数小时寻找解决方案,这一个似乎是最简单的。我尝试了stty设置和其他途径。也许这可能有助于某人或者有更好的解决方案?