2011-09-02 12 views
5

で画像を表示しません、私はこの上の他のスレッドを見てきた、と私はピサ(XHTML - > PDF)ジャンゴでは、開始するにはPDF

をこの問題を解決しようとするほぼすべてを試みたが...ていますPisaを使用してHTMLページをPDFにレンダリングするとき、前記HTMLの画像が目立たなくなります。言い換えれば、ページがHTMLにレンダリングされるとき、すべてがちょうどいいですが、Pisaを使用して出力をPDFに切り替えると、イメージは消えます。

私がやって見つけた最も一般的なものは、このように、リンクのコールバック関数を作成することです:

def fetch_resources(uri, rel): 
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, "")) 
    return path 

def my_view(request, variable1): 
    html = render_to_string('template_goes_here.html', dict, context_instance=RequestContext(request)) 
    result = StringIO() 
    pdf = pisa.pisaDocument(StringIO(html.encode("UTF-8")), dest=result, link_callback=fetch_resources) 
    if not pdf.err: 
     return HttpResponse(result.getvalue(), mimetype='application/pdf') 
    return HttpResponse('Pisa hates you! %s' % cgi.escape(html)) 

しかし、これは動作しません。 PDFは大きく表示されますが、画像はありません。

また、mkstempにHTMLを書き込んだり、コマンドラインでPDFに変換したり、HTMLを出力したり、そこに成功しなかったりするという提案もあります。

同様の問題を抱えている人(サイコロなし)のため、1.1.17ではなくPIL 1.1.16をインストールしようとしました。

私はどこに間違っているのでしょうか?

+3

ピサを​​使用しないでください。プロジェクトの続きであるxhtml2pdfを使用してください。 –

+2

私も同じ問題に直面しました.Memstempは助けもなかったのです。 Pisaは画像サイズをhtmlに設定しても画像をレンダリングしません.htmlからpdfを生成するにはimageのみを使用してください。次に他のhtmlコンテンツを追加してください。 最後にPDFを生成するためにHTMLTODOCを使用しました - > http://www.htmldoc.org/ – Abhaya

答えて

2

私はこれを見てからしばらくしていますが、ラムダやfunctoolsを使用する必要があると思います。

links = lambda uri, rel: os.path.join(settings.MEDIA_ROOT, 
    uri.replace(settings.MEDIA_URL, '')) 


pdf = pisa.pisaDocument(StringIO(html.encode("UTF-8")), 
    dest=result, link_callback=links) 
+0

2番目の見方では、これは異なる必要はありません。与えられた例がなぜ機能していないのか分かりません。 –

関連する問題