2016-07-12 211 views
2

我正在使用PDFkit與python將html頁面轉換爲pdf。在HTML中有身體只有一個圖像標籤與SRC指向像一個完整的網址:pdfkit不將圖像轉換爲pdf

<html> 
    <body style="margin: 0px;"> 
     <img style="-webkit-user-select: none; cursor: -webkit-zoom-in;" src="https://blah.blah.com" height="768"> 
    </body> 
</html> 

但是當我將HTML轉換成PDF格式是這樣的:

pdfkit.from_file(file, 'labels.pdf', configuration=config) 

我得到一個空白頁一個帶有邊框而不是圖像的盒子。

爲什麼pdfkit不能轉換圖像?

我在某處讀到我們必須給出完整的映像路徑,包括域名。但我提供的圖像網址是完整的。那麼我做錯了什麼?

+0

我很快測試這一點,得到了與PDF格式圖片。看看這個工作是否不通過配置'pdfkit.from_file(file,'labels.pdf')'。如果是這樣,那麼你的配置有問題。可能你是使用配置而不是選項? –

回答

2

我在圖片src使用的文件路徑,而不是文件的URL,如:

<img src="D:/image/path/pircure.png"> 

和它的工作,也許你可以試試。

+0

當環境改變時它會失敗。所以堅持語言的命名。 –

+1

我找到了一個更好的方法。我base64編碼圖像並將其傳遞給html。 –

1

我按照@Manish Gupta的建議將圖像編碼爲Base64數據字符串。在Python:

import base64 

def get_image_file_as_base64_data(): 
    with open(FILEPATH, 'r') as image_file: 
     return base64.b64encode(image_file.read()) 

在我Jinja2的模板(我知道這個問題是不特定於Jinja2的,但是這是我使用的是什麼):

<img src="data:;base64,{{ get_image_file_as_base64_data() }}"> 
+0

它是在django後端渲染模板更乾淨的方式。謝謝! –