2016-12-05 28 views
0

我在互聯網上遇到的所有示例都是從url(本地或網頁)加載圖像。我想要的是直接從原始字節到PDF格式的圖像。如何使用ReportLab從原始字節中繪製圖像?

UPDATE:

@georgexsh這是基於我在下面的評論的理解我的代碼:

def PDF_view(request): 
    response = HttpResponse(content_type='application/pdf') 

    ... 

    page = canvas.Canvas(response, pagesize=A4) 
    page.setTitle("Sample PDF") 


    image = StringIO(raw_image_bytes) # raw_image_bytes is from external source 
    image.seek(0) 
    page.drawImage(image, 100, 100) 

    filename = 'document.pdf' 
    page.showPage() 
    page.save() 

    return response 

回答

1

report lab Image object source code,類文件obj是可以接受的,所以你可以用StringIO包裹的圖像數據/ io.BytesIO,將其傳遞爲filename


更新:

爲你使用drawImage方法,它需要一個ImageReader OBJ:

from reportlab.lib.utils import ImageReader 
import io 
img = ImageReader(io.BytesIO(raw_image_bytes)) 
page.drawImage(image, ...) 
+0

能否請你告訴我該怎麼做?我還沒有用過'StringIO'。我得到錯誤,如「初始值必須是str或None,而不是字節」。 – someone

+0

粘貼你的代碼 – georgexsh

+0

我編輯了我的問題。 – someone

相關問題