html文件嵌入到reportlab,Reportlab的Code128条形码作为HTML图像标签,在Python中使用数据URI方案...
Julian Popov..
12
這是我自己的解決方案:
from base64 import b64encode
from reportlab.lib import units
from reportlab.graphics import renderPM
from reportlab.graphics.barcode import createBarcodeDrawing
from reportlab.graphics.shapes import Drawing
def get_barcode(value, width, barWidth = 0.05 * units.inch, fontSize = 30, humanReadable = True):
barcode = createBarcodeDrawing('Code128', value = value, barWidth = barWidth, fontSize = fontSize, humanReadable = humanReadable)
drawing_width = width
barcode_scale = drawing_width / barcode.width
drawing_height = barcode.height * barcode_scale
drawing = Drawing(drawing_width, drawing_height)
drawing.scale(barcode_scale, barcode_scale)
drawing.add(barcode, name='barcode')
return drawing
def get_image():
barcode = get_barcode(value = '01234567890', width = 600)
data = b64encode(renderPM.drawToString(barcode, fmt = 'PNG'))
print ''.format(data)
您還可以將條形碼旋轉90°:
def get_barcode_rotated(value, width, barWidth = 0.05 * units.inch, fontSize = 30, humanReadable = True):
barcode = createBarcodeDrawing('Code128', value = value, barWidth = barWidth, fontSize = fontSize, humanReadable = humanReadable)
drawing_width = width
barcode_scale = drawing_width / barcode.width
drawing_height = barcode.height * barcode_scale
drawing = Drawing(drawing_width, drawing_height)
drawing.scale(barcode_scale, barcode_scale)
drawing.add(barcode, name='barcode')
drawing_rotated = Drawing(drawing_height, drawing_width)
drawing_rotated.rotate(90)
drawing_rotated.translate(0, -drawing_height)
drawing_rotated.add(drawing, name='drawing')
return drawing_rotated
這是一個示例結果:
總結
以上是生活随笔為你收集整理的html文件嵌入到reportlab,Reportlab的Code128条形码作为HTML图像标签,在Python中使用数据URI方案...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是双向情感障碍?
- 下一篇: 花椒泡酒的功效与作用