2012-01-22 90 views
0

我之前有一個問題,即使當我指定@font-face使用UTF-8字體時,它也不會顯示中文字符。事實證明,我無法顯示圖像以及...所以我好像我無法將任何文件嵌入到我的PDF中。無法加載圖像/文件比薩pdf Django python

這是我使用的代碼:

<img src="/static/images/bc_logo_bw_pdf.png" /> 

@font-face { 
     font-family: "Wingdings"; 
     src: url("/static/fonts/wingdings.ttf"); 
    } 

我看了看其他任務上SO

def render_to_pdf(template_src, context_dict): 
    """Function to render html template into a pdf file""" 
    template = get_template(template_src) 
    context = Context(context_dict) 
    html = template.render(context) 
    result = StringIO.StringIO() 

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), 
              dest=result, 
              encoding='UTF-8', 
              link_callback=fetch_resources) 
    if not pdf.err: 
     response = http.HttpResponse(result.getvalue(), mimetype='application/pdf') 

     return response 

    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html)) 

def fetch_resources(uri, rel): 
    import os.path 
    from django.conf import settings 
    path = os.path.join(
      settings.STATIC_ROOT, 
      uri.replace(settings.STATIC_URL, "")) 
    return path 

HTML,但它並沒有幫助。這兩個功能也沒有例外。同樣在fetch_resources函數中,返回的路徑是該文件的正確完整路徑,即/home/<user>/project/static/images/bc_logo_bw_pdf.png/home/<user>/project/static/fonts/wingdings.ttf,我不知道什麼是錯的。

UPDATE 每次我創建一個PDF,我得到的控制檯

No handlers could be found for logger "ho.pisa" 

這個消息可能此有關?

更新#2

字體現在的工作我犯了一個愚蠢的錯誤......我用的是沒有對中國的Unicode字體。但是我仍然無法在pdf上嵌入任何圖像,無論是jpeg,gif還是png。

+2

你確定你的字體真的有中文字嗎? Fount可能是unicode,但仍缺乏一些字符。 –

+0

'logger'問題無關(並且無害) – plaes

+0

感謝您的反饋。字體現在工作,但圖像仍然不起作用 – zentenk

回答

-2

我在這裏有同樣的問題。不要放棄XHTML2PDF比薩。
比薩使用PIL生成PDF並使用lib zip解碼器插入圖像。
你應該檢查你的PIL已經與拉鍊解碼器,字體和幾個組件

我有帶拉鍊解碼器安裝PIL解決這個問題的正確安裝。
http://obroll.com/install-python-pil-python-image-library-on-ubuntu-11-10-oneiric/

如果您需要更詳細的信息,您可以在這裏閱讀我的文章: http://obroll.com/how-to-load-images-files-style-css-in-pdf-using-pisa-xhtml2pdf-on-django/

+0

嘗試在您的網站上的說明,仍然不起作用:( – zentenk

+0

這不適用於我。 –

3

我終於解決了我是有這個問題......事實證明,如果我將它設置不起作用body的高度與CSS ...一旦我刪除該行圖像加載完美...

0

對我來說(django 1.4,蟒蛇2.7比薩== 3.0.33),如果我把完整的路徑圖像而不是相對的,它適用於我。 嘗試做同樣的事情。

0

一切都看起來更好。嘗試一次使用JPG圖像文件。在我的情況下,PNG文件也不起作用。

<img src="/static/images/<name>.jpg" /> 
0

沒有widthheight屬性圖像將無法正常工作。添加寬度和高度屬性。

<img src="{% static 'images/logo.png' %}" alt="image" width="200" height="150" /> 

此修補程序適用於我。