2014-02-24 105 views
2

我想用Elaphe生成條碼。Python 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碼?我如何解決問題?

請幫忙。

回答

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命令將次被替換e可執行文件的路徑。