如何减小由 pybarcode ImageWriter 生成的图像大小,以及如何将多个图像附加到正确对齐的 docx 文件中?
我阅读了 ImageWriter 的 dpi 选项,但不知道如何使用它。
import barcode
from barcode.writer import ImageWriter
from docx import *
if __name__ == '__main__':
# Default set of relationshipships - these are the minimum components of a document
ean = barcode.get_barcode('ean', '123456789102', writer=ImageWriter())
ean.default_writer_options['module_height'] = 3.0
ean.default_writer_options['module_width'] = 0.1
filename = ean.save('bar_image')
relationships = relationshiplist()
# Make a new document tree - this is the main part of a Word document
document = newdocument()
# This xpath location is where most interesting content lives
docbody = document.xpath('/w:document/w:body', namespaces=nsprefixes)[0]
# Add an image
relationships,picpara = picture(relationships, filename,'This is a test description')
docbody.append(picpara)
# Create our properties, contenttypes, and other support files
coreprops = coreproperties(title='Python docx demo',subject='A practical example of making docx from Python',creator='Mike MacCana',keywords=['python','Office Open XML','Word'])
appprops = appproperties()
contenttypes = contenttypes()
websettings = websettings()
wordrelationships = wordrelationships(relationships)
# Save our document
savedocx(document,coreprops,appprops,contenttypes,websettings,wordrelationships,'sample_barcode.docx')
请您参考如下方法:
通常,barcode.writer 不会给出生成的输出图像大小的参数,你可能会问PIL帮助。并且正确对齐对于代码而言并不准确,但您可以尝试使用表格将它们放在正确的位置。
在 PIL 中,您可以将 png 图像的大小调整为 (480,320)
from PIL import Image
im = Image.open("barcode.png")
im.resize((480,320)).save("barcode_resized.png")
对于 docx 文件,一些表格示例是 here ,您可能需要知道适当的食物是什么,然后输入代码。
