2014-10-20 89 views

回答

1

如果您将PNG文件导出到某个地方,您可以轻松地再次读取它们并将其打印到PDF中。有一个名为reportlab的库,它很棒,因为它支持图像绘制。

所以我在这里提供了一个示例代码:

我生成一个PNG文件,那么我将其拖到画布,你可以改变大小和分组,只要你喜欢。

from reportlab.pdfgen import canvas 
from reportlab.lib.units import inch, cm 

#Create A QR-Code 
import qrcode 
qr = qrcode.QRCode(
    version=1, 
    error_correction=qrcode.constants.ERROR_CORRECT_L, 
    box_size=10, 
    border=4, 
) 
qr.add_data('Some data') 
qr.make(fit=True) 

img = qr.make_image() 
image_file = open("test.png",'w+') 
img.save(image_file, "PNG") 

#Draw the generated Code on a PDF Canvas 
c = canvas.Canvas('ex.pdf') 

#Add Single Images 
#c.drawImage('test.png', 0, 0, 10*cm, 10*cm) 
#c.drawImage('test.png', 10*cm, 10*cm, 10*cm, 10*cm) 

#Add Images in a loop 
for x in range (0, 3): 
for y in range (0, 3): 
    c.drawImage('test.png', x*10*cm, y*10*cm, 10*cm, 10*cm) 

c.showPage() 
c.save() 
+0

你可以在使用reportlab在mac上安装问题运行,这篇文章可以解决这个问题http://stackoverflow.com/questions/2252726/how-to-create-pdf-files-in-python。 – user1767754 2014-10-20 21:10:40

+0

现在剩下的唯一问题就是将画布放在一张纸上,用一张纸做出确切数量的图像,谢谢,顺便说一句,这里的窗口安装http://www.lfd.uci.edu/~gohlke/pythonlibs/ #reportlab – Abdelouahab 2014-10-20 21:43:54

+1

当您知道您的qr代码缩略图的确切大小时,可以非常轻松地完成此操作。只需介绍两个for循环一个用于x和y – user1767754 2014-10-21 05:49:55

1

创建你所需要的总大小的图像,然后使用paste每个QR图像放到主。 box参数用于指定在主图像中定位QR的左上角坐标。

+0

有多少我可以得到它?我觉得有限?因为我必须使用主人作为相对来源?或者我可以创造一个距离为2倍的价值? – Abdelouahab 2014-10-20 21:55:49

+0

@Abdelouahab使主人成为一张纸的大小(或者可能会少一些),并且您可以放置​​纸张的大小。 – 2014-10-20 22:06:18

+0

对不起,我误解了这个想法,我想我使用第一个图像,然后追加到她,而不是追加到一个空白的图片,并填充所有生成的图像,再次感谢你:) – Abdelouahab 2014-10-20 22:11:22