Python Elaphe - 条形码生成问题

3
我想使用Elaphe生成条形码。
我正在64位Windows机器上工作。这是在Windows 7、Python 2.7上,我安装了Elaphe 0.6.0和Ghostscript 9.10。
当我运行简单的示例用法时,似乎什么也没有发生。条形码没有显示出来。当我执行_.show()时,它会挂起,但没有显示出来。我必须执行KeyboardInterrupt才能回到提示符。当我执行_.show()时,应该启动哪个查看器?但是我在Windows任务管理器中看到一个gswin32.exe进程。
请参考我的Python tracebackhttp://dpaste.com/hold/1653582/
有没有办法看到生成的PS代码?我怎样才能进行故障排除?
请帮忙。
1个回答

2
elaphe.barcode 返回的对象是一个EpsImageFile(EPS 意味着 Encapsulated PostScript),但在调用 barcode 后,它尚未运行 Ghostscript 将代码转换为位图图像。
您可以查看 fp 属性以转储生成的代码 - 其中包括所有支持的不同条形码类型的完整 PS 库代码。因此,最好将其写入文件。
b = el.barcode('qr', 'slamacow')
with open('code.eps') as outfile:
    outfile.write(b.fp.getvalue()) # fp is a StringIO instance

在文件中,你会看到类似于这样的内容:
%!PS-Adobe-2.0
%%Pages: (attend)
%%Creator: Elaphe powered by barcode.ps
%%BoundingBox: 0 0 42 42
%%LanguageLevel: 2
%%EndComments



% --BEGIN RESOURCE preamble--
... A whole lot of included library ...
% --END ENCODER hibccodablockf--



gsave
0 0 moveto
1.000000 1.000000 scale
<74686973206973206d792064617461>
<>
/qrcode /uk.co.terryburton.bwipp findresource exec
grestore
showpage

如果你想了解PIL或pillow如何运行Ghostscript,以便在命令行中自己尝试,从PIL/pillow代码中关键部分是这个(来自site-packages/PIL/EpsImagePlugin.py,第84行):

# Build ghostscript command
command = ["gs",
           "-q",                        # quiet mode
           "-g%dx%d" % size,            # set output geometry (pixels)
           "-r%d" % (72*scale),         # set input DPI (dots per inch)
           "-dNOPAUSE -dSAFER",         # don't pause between pages, safe mode
           "-sDEVICE=ppmraw",           # ppm driver
           "-sOutputFile=%s" % outfile, # output file
           "-c", "%d %d translate" % (-bbox[0], -bbox[1]),
                                        # adjust for image origin
           "-f", infile,                # input file
        ]

但在Windows上,gs命令将被替换为可执行文件的路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接