2017-04-13 10 views
0

を使用しているとき、私はdjango-easy-pdfを使用していますロードしないと、私は次のビューがあります。ジャンゴ - 画像はPDF見る

class PrescriptionView(PDFTemplateView): 
    template_name = 'meds/prescription.html' 
    context_object_name = 'meds' 
    model = Medicament 

    def get_queryset(self): 
     ids = map(int, self.kwargs['selected'].split(",")) 
     return Medicament.objects.filter(id__in=ids) 

    def get_context_data(self, **kwargs): 
     context = super(PrescriptionView, self).get_context_data(pagesize="A5", title="Ordonnance", **kwargs) 
     return context 

をそして、私は次のHTMLページがあります。

{% load staticfiles %} 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <style> 
      @page { size: A5; 
       @frame headerLogo { 
        top: 23mm; 
        left: 20mm; 
        width: 50mm; 
        height: 24mm; 
        -pdf-frame-content: headerLogo; 
       } 
      } 
     </style> 
    </head> 
    <body> 
    <div id="headerLogo"> 
     <img src="{% static 'img/banner.png' %}"> 
    </div> 
</body> 

しかしバナーを.pngイメージが読み込まれず、次のエラーが表示され続けます。

missing explicit frame definition for content or just static frames 

getFile '/static/img/banner.png' None '/home/nids/cabin' 
'<div id="headerLogo"> <img src="/static/img/banner.png"/> </div>' 
Traceback (most recent call last): 
    File "/home/nids/cabin/dentist/lib/python3.5/site-packages/xhtml2pdf/context.py", line 828, in _getFileDeprecated 
    nv = self.pathCallback(name, relative) 
    File "/home/nids/cabin/dentist/lib/python3.5/site-packages/easy_pdf/rendering.py", line 35, in fetch_resources 
    path = os.path.join(settings.STATIC_ROOT, uri.replace(settings.STATIC_URL, "")) 
    File "/home/nids/cabin/dentist/lib/python3.5/posixpath.py", line 89, in join 
    genericpath._check_arg_types('join', a, *p) 
    File "/home/nids/cabin/dentist/lib/python3.5/genericpath.py", line 143, in _check_arg_types 
    (funcname, s.__class__.__name__)) from None 
TypeError: join() argument must be str or bytes, not 'NoneType' 
Need a valid file name! 
'<img src="/static/img/banner.png"/>' 
line 0, msg: missing explicit frame definition for content or just static frames, fragment: 
line 0, msg: getFile %r %r %r, fragment: '<div id="headerLogo"> <img src="/static/img/banner.png"/> </div>' 
line 0, msg: Need a valid file name!, fragment: '<img src="/static/img/banner.png"/>' 

他の静的ファイルに問題はありませんこのpdfファイル以外の画像

答えて

-1

約10時間で問題を解決しようとしていましたが、OH MA GOD、IT SOLVED。 問題は非常に簡単でした - このパッケージを再インストール

1.pip install --pre xhtml2pdf。

2.pip install --pre reportlab。

3.pip install django-easy-pdf。

ちょうどを覚えておいてください。の前にこのコマンドを実行してください。 もうひとつ、純粋なhtmlのimgタグに高さと幅を設定しようとします。