2016-04-11 4 views
3

Я пытаюсь создать PDF в Python с помощью ReportLab. Мне нужно изменить размер изображения PNG, чтобы правильно поместиться на странице. Когда я изменяю размер изображения, они выглядят отлично при просмотре в Microsoft Photos или перетаскиваются на текстовый документ, но когда они помещаются в PDF, они очень нечеткие.PNG нечеткий при добавлении в PDF с ReportLab

This is the scaled image который появляется хрустящий.

This is a screen grab of the pdf который выглядит нечетким.

Это код, я использую до сих пор

def resizeImage(): 
    basewidth = 500 
    img = PIL.Image.open('test.png') 
    wpercent = (basewidth/float(img.size[0])) 
    hsize = int((float(img.size[1])*float(wpercent))) 
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS) 
    img.save('sompic.png') 

def generatePDF(): 
    c = canvas.Canvas('template.pdf', pagesize=portrait(letter)) 
    #Header text 
    c.setFont('Helvetica', 48, leading=None) 
    c.drawCentredString(200, 300, "This is a pdf") 
    test = 'sompic.png' 
    c.drawImage(test, 50,350, width=None, height=None) 
    c.showPage() 
    c.save() 

resizeImage() 
generatePDF() 

Если у кого есть какие-либо предложения о том, как получить четкое изображение было бы весьма признателен!

Код изменения размера пришли сюда: How do I resize an image using PIL and maintain its aspect ratio?

+0

Выглядит довольно четким, но изображение в PDF больше, чем ваше масштабированное изображение. Используйте изображение с более высоким разрешением. – Kenney

+0

Я не очень много знаю о PIL или Report Lab - но задавался вопросом, есть ли способ установить Interpolation для этого изображения (см. Pdf Spec 8.9.5.3) – Jimmy

ответ

0

Если кто натыкается на этот маршрут, я в конечном итоге происходит с использовал смесь Python и латексов в качестве латекса могут иметь дело очень хорошо с PDF в и изображений в результате чего чистое, четкое изображение.