2

如何减小 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')
4

1 回答 1

1

通常,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 文件,这里有一些表格示例,您可能需要知道什么是正确的食物,然后输入代码。

于 2012-05-27T13:01:04.757 回答