有没有好的Python的pdf417条形码库?

5 投票
3 回答
6362 浏览
提问于 2025-04-16 23:42

我在找一个好用的Python模块来生成pdf417条形码。有没有人用过觉得不错的?

最好是那种依赖少的模块,而且能在Linux和MacOSX上都能运行。

3 个回答

0

Reportlab 确实有一个叫做 rlbarcode 的扩展,但这个扩展不支持 pdf417 条形码。我不知道还有其他支持 pdf417 条形码的 Reportlab 扩展。

不过,如果你对从 Python 生成 pdf417 条形码感兴趣,可以看看这个项目:elaphe

我还没有测试过这个项目(其实,我需要从 Python 生成 pdf417 条形码,正好找到了这个讨论和 elaphe 项目页面),我现在打算下载 elaphe 工具来测试一下。

2

我猜2013年Matteius提到的elaphe问题已经解决了,因为从那以后,关于pdf417的更新和提交记录显示有了进展。

无论如何,现在有几个其他的选择(你可以通过运行pip search elaphepip search pdf417来获取列表):

  • elaphe
  • elaphe3(这是elaphe的一个版本,专门为python3测试过);
  • candybar(没有文档?还有一个网络服务);
  • pdf417gen
  • treepoem(关于这个名字:条形码 -> 树皮诗 -> 树的诗 =D)——补充:我没有深入研究这个问题,但截至今天,生成PDF417似乎有问题。

除了pdf417gen,其他的都支持多种类型的条形码。

需要注意的是,bwipp的文档(elaphetreepoem都是基于这个)只提到了5个错误修正级别(1到5),而pdf417gen 声称支持9个安全级别(0到8)。

7

我们最近也遇到了这个问题,因为我们主要用Python,所以想找一个Python的解决方案。经过一番研究,我们发现elaphe这个项目有潜力可以生成pdf 417条形码。

不过,我们发现它在今天的标准下有些错误,因此我们开始寻找修复这个库的方法。结果发现elaphe生成的*.eps后处理脚本是过时的,ghost script无法解读,这就是条形码生成失败的原因。

幸运的是,elaphe在后台使用了一个常见的库,叫做“纯PostScript中的条形码生成器”,可以在这里找到:http://bwipp.terryburton.co.uk

这个常用的后端库被许多不同语言的项目使用来生成条形码。对我们来说,解决方案是分叉elaphe,并修正它的*.eps文件生成。

要找出*.eps文件中哪里出错,可以查看另一个使用postscriptbarcode制作的网站,它可以让你在线生成pdf417条形码(还有其他格式):http://www.terryburton.co.uk/barcodewriter/generator/

生成pdf417条形码后,它会给你下载.png、.jpg,当然还有.eps文件的选项!

使用这个.eps文件,你可以将其传递给ghost script,并调整参数,以获得你想要的pdf417条形码。然后把这个结果整合到elaphe库中,实际上提交一个请求来更新它……

这似乎有点麻烦,但在一个下午就能搞定。理想情况下,应该让elaphe库恢复正常,能够生成这些条形码,而不需要进行太多的改进。

请注意,这种方法生成条形码的性能对我们来说是几秒钟,因为它创建了2000行的eps文件,并将其传递给ghost script,后者生成另一个图像文件,作为最终的条形码结果。这种效率不如用reportlab生成code128条形码。

或许还有优化的空间:Pillow在某种程度上比PIL快吗?生成pdf417类型的条形码,我们需要eps文件的所有部分吗?还有其他优化的方法吗?

总之,Ken,这是个很好的问题,希望你觉得这个回答也不错。

撰写回答