3

我想Elaphe用来生成条形码。

我正在使用 64 位 Windows 机器。Elaphe 0.6.0这是在 Windows 7、Python 2.7 上,我已经Ghostscript 9.10安装了。

当我运行简单的示例用法时,似乎什么都没有发生。条形码不显示。当我执行_.show()时,它挂起但没有任何显示。我必须做一个KeyboardInterrupt才能回到提示。当我这样做时应该启动什么查看器_.show()gswin32.exe但是,我在 Windows 任务管理器中看到了一个进程。

请参考我在http://dpaste.com/hold/1653582/上的 Python 回溯

有没有办法查看生成的 PS 代码?如何进行故障排除?

请帮忙。

4

1 回答 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 或枕头如何运行 Ghostscript,以便您可以在命令行中自己尝试,PIL/枕头代码的关键部分是这样的(来自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命令将替换为可执行文件的路径。

于 2014-08-29T08:47:41.550 回答