我想在Django网站中添加条形码生成,并想知道最好的库或api是什么.我的第一个偏好是可以从Python调用的东西 - 用Python编写或C/C++ lib,我可以用ctypes/SWIG包装.否则,如果必须,我可以调用命令行.
我至少需要EAN和UPC符号.
我试过pybarcode但图像质量太低了.而且Elaphe看起来很有希望,但是从Python解释器我可以做的只是一个QR码 - EAN和UPC错误(可能是因为文档中的语法/用法不清楚).
我正在使用pyBarcode生成PNG,条形码下方的数字在右侧被切断.如何轻推几个像素?

根据文档,我需要做这样的事情:
barcode.writer.BaseWriter(paint_text=my_callback)
Run Code Online (Sandbox Code Playgroud)
并定义一个这样的回调:
my_callback(xpos, ypos)
Run Code Online (Sandbox Code Playgroud)
和:
use self.text as text
Run Code Online (Sandbox Code Playgroud)
我究竟如何将所有这些应用到我的Django视图(下面)?
def barcode(request):
import barcode
from barcode.writer import ImageWriter
from cStringIO import StringIO
def mm2px(mm, dpi=300):
return (mm * dpi) / 25.4
class MyImageWriter(ImageWriter):
def calculate_size(self, modules_per_line, number_of_lines, dpi=300):
width = 2 * self.quiet_zone + modules_per_line * self.module_width
height = 1.0 + self.module_height * number_of_lines
if self.text:
height += (self.font_size + self.text_distance) / 3
return int(mm2px(width, dpi)), int(mm2px(height, dpi))
f = BarcodeForm(request.GET)
if f.is_valid():
try: …Run Code Online (Sandbox Code Playgroud) 我想让访问者使用点击并拖动来缩放图像:
<html>
<body>
<svg>
<image>
Run Code Online (Sandbox Code Playgroud)
有一个JavaScript库可以帮助我吗?
我注意到Raphael有点击和拖动方法,但我仍然需要编写很多JS来:
我可以做到这一切,但听起来很费时间.我应该使用一个开源脚本吗?其他建议?
我正在尝试向字符串添加尾随“s”,除非字符串的最后一个字符是“s”。如何在 Django 模板中执行此操作?下面的 [-1] 导致错误:
{{ name }}{% if name[-1] != "s" %}s{% endif %}
Run Code Online (Sandbox Code Playgroud) 我的Django网站的客户可以上传打印设计:PDF,PSD,AI和EPS.如果他们上传的文件类型不是PDF,我想将其转换为PDF.
所以我的问题是:如何将Photoshop,Illustrator和CorelDraw文件转换为PDF(以编程方式)?
我试过UniConvertor但是它:不支持PSD,扭曲了我的AI输入,拒绝了我的EPS输入.知道任何变通方法吗?
我愿意为每种文件类型运行单独的脚本.我用谷歌搜索"psd to pdf"但结果看起来都像垃圾邮件.(看来图像转换是一个家庭手工业.)理想情况下,我想要开源,但我会采取我能得到的.
我想要PDF中的所有内容的原因是我可以使用ReportLab绘制出血线并向客户返回"证据".我使用的印刷公司也需要PDF.
思考?建议?
如何从Python解释器导入pyBarcode?根据pyBarcode文档,第一步是import barcode.当我尝试它说它没有这样的模块.
~# python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
[GCC 4.4.5] on linux2
>>> import barcode
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named barcode
Run Code Online (Sandbox Code Playgroud) 当我的application_controller.rb重定向到users_path这样:
def after_sign_in_path_for(resource)
users_path
end
Run Code Online (Sandbox Code Playgroud)
重定向工作.但是,如果我将其更改为user_path:
def after_sign_in_path_for(resource)
user_path
end
Run Code Online (Sandbox Code Playgroud)
我收到路由错误.这是我的routes.rb:
devise_for :users
get "users/show"
resources :orders
resources :users do
resources :orders
end
Run Code Online (Sandbox Code Playgroud)
我想也许我应该像这样传递userID:
def after_sign_in_path_for(resource)
@user = User.find(params[:id])
user_path(@user)
end
Run Code Online (Sandbox Code Playgroud)
但错误又回来了Couldn't find User without an ID.救命?
如何使用JavaScript为Django模板标记分配参数值?
{% url path.to.some_view arg=v %}
Run Code Online (Sandbox Code Playgroud)
这不起作用:
<script>
var v = 5;
</script>
{% url path.to.some_view arg=v %}
Run Code Online (Sandbox Code Playgroud) 从 python 控制台这有效:
convert -quality 100 in.pdf out.png
Run Code Online (Sandbox Code Playgroud)
但是当我像这样将该命令添加到我的 Python 脚本时:
Popen(['convert', '-quality 100', 'in.pdf', 'out.png'])
Run Code Online (Sandbox Code Playgroud)
我得到:
unrecognized option `-quality 100'
Run Code Online (Sandbox Code Playgroud)
如果我将该参数更改为'-quality=100'我仍然收到错误。
我试着像这样修复它:
Popen(['convert', '-quality', '100', 'in.pdf', 'out.png'])
Run Code Online (Sandbox Code Playgroud)
它运行但无法生成out.png.
更新:最后一个版本正在运行。我原先一定是打错了。