我正在使用GhostPDL pcl6应用程序将文本文件打印到PDF。文本文件包含从连接到PLC控制器的串行端口捕获的文本。一些打印数据来自一个较旧的系统,该系统只使用行结束时的行提要LF,并且没有提供CR回车字符。结果显示PDF打印存在“台阶”问题。激光打印机可以设置为自动CR,以允许打印正常打印。但是,我无法找到在-sDEVICE=pdfwrite打印命令中设置pcl6设置以添加自动CR的解决方案。
我的串行捕获程序基于修改后的pySerial tcp_serial_redirect.py版本。
这是用于Raspberry Pi,用作可编程设备服务器。转发到以太网打印机端口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程序中找到的:
redirect.py
我简化了连接和拆分公式。
if data:
data = '\r\n'.join(data.split('\n'))
logfile = open("/var/www/active_log.txt","a")
logfile.write(data)
logfile.close()经过几个小时的寻找解决方案,这个似乎是最简单的。我尝试了一些简单的设置和其他的方法。也许这会对某人有帮助,或者有更好的解决方案?
发布于 2014-01-20 23:05:10
据我所知,您正在尝试将所有的\n替换为\r\n。像这样的怎么样?
data = data.replace('\n', '\r\n')希望这能有所帮助。
https://stackoverflow.com/questions/21219877
复制相似问题