【问题标题】:Python Elaphe - Barcode Generation IssuesPython Elaphe - 条码生成问题
【发布时间】:2014-03-26 09:31:00
【问题描述】:

我想使用Elaphe 生成条形码。

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

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

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

有没有办法查看生成的 PS 代码?如何解决问题?

请帮忙。

【问题讨论】:

    标签: python python-2.7 barcode ghostscript elaphe


    【解决方案1】:

    elaphe.barcode 返回的对象是EpsImageFile(其中 EPS 表示封装的 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 命令将被替换为可执行文件的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2021-07-05
      相关资源
      最近更新 更多