私は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
私はdjango-wkhtmltopdfを使用していると思います。それでも動作しません。 – BingbongKim
PDFTemplateViewを使用していますか?あなたのSTATIC_ROOTセットアップは現地で開発されていますか? https://django-wkhtmltopdf.readthedocs.io/en/latest/installation.html#display-static-files – laidibug
はい、私は答えに従おうとしていますが、別のエラーがあります。私はその質問を編集した。あなたはそれをチェックしていただけますか? – BingbongKim