2017-09-19 92 views
0

私はDjangoテンプレートをpdfファイルに変換したいと思います。テンプレートの画像:Wkhtmltopdf - 相対パスはどのように使用できますか?

<img src="{% static "img/person.png" }%" /> 

<img src="/static/img/person.png" /> 

に変更され、これはブラウザに適しています。

しかし、私はWkhtmltopdfモジュールを使用してPDFファイルに、このhtmlファイルを変換しようとすると、エラーがあります:

$ wkhtmltopdf --javascript-delay 5000 report.html report.pdf 
Warning: Failed to load file:///static/img/person.png (ignore) 

Wkhtmltopdfモジュールのみが絶対パスが必要であると思われます。
私のような絶対パスでSRCを設定した場合:

<img src="/home/bingbong/django/project/apps/static/img/person.png" /> 

それはうまく動作しますが、私はそれが良い方法ではありません知っています。

Wkhtmltopdfで静的ルートパスを使用する方法はありますか?

どのようにして正常に変換できますか?


編集

私はこのCreating PDFs with django (wkhtmltopdf)

に従うことをしようとしています。しかし、私はhttp://falseがある理由はわかりません

Error: Failed loading page http://false (sometimes it will work just to ignore this error with --load-error-handling ignore) 
Exit with code 1 due to network error: HostNotFoundError 

subprocess.CalledProcessError: Command '['/usr/bin/wkhtmltopdf', '--encoding', 'utf8', '--javascript-delay', '1000', '--quiet', 'False', '/tmp/wkhtmltopdf3atfj280.html', '-']' returned non-zero exit status 1 

深刻であります。

は、これはこれは私のsettings.py

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 

WKHTMLTOPDF_CMD = '/usr/bin/wkhtmltopdf' 

WKTHMLTOPDF_CMD_OPTIONS ={ 
    'quiet': False, 
} 

である私のurls.py

app_name = 'apps' 
    urlpatterns =[ 
     url(r'^pdf/$', views.MyPDFView.as_view()), 
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

であり、これは、私が一緒にジャンゴにWkhtmltopdfを使用することをお勧めしますMyPDFViewクラス

class MyPDFView(View): 
    template='apps/Report.html' # the template 

    def get(self, request): 

     response = PDFTemplateResponse(
      request=request, 
      template=self.template, 
      filename="apps/Report.pdf", 
      show_content_in_browser=False, 
      cmd_options={ 
       'javascript-delay':1000, 
       'quiet':False, 
      }, 
     ) 
     return response 

答えて

0

ですdjango-wkhtmltopdfのように、静的パスとメディアパスを必要な絶対パスに変換しますPDF。

+0

私はdjango-wkhtmltopdfを使用していると思います。それでも動作しません。 – BingbongKim

+0

PDFTemplateViewを使用していますか?あなたのSTATIC_ROOTセットアップは現地で開発されていますか? https://django-wkhtmltopdf.readthedocs.io/en/latest/installation.html#display-static-files – laidibug

+0

はい、私は答えに従おうとしていますが、別のエラーがあります。私はその質問を編集した。あなたはそれをチェックしていただけますか? – BingbongKim

関連する問題