当用户单击 "PDF" 按钮时,如何将 Django 网页下载到包含所有 css 的 PDF 中? (它到底是怎样的,变成 PDF)
How do I download a Django webpage into a PDF with all the css when user clicks "PDF" button? (Exactly how it looks, into a PDF)
我曾尝试使用多种技术,如 weasyprint 和 reportlab,但无法将用户看到的网页制作成 pdf。我已经阅读了文档,但也许我遗漏了一些步骤,但我最终想获取他们正在查看的确切页面,当按下“PDF”按钮时,它将整个网页下载到一个 PDF 中,其中包含所有 css 和一切。
网页确实包含用 plotly 制作的热图图表,有时网页可以有 2 个图表,有时最多 20 个图表。
我目前只是调用了 'window.print()' 函数,但它切断了图表,我希望如果我使用 weasyprint 或类似的技术,那么我可以正确显示图表。
提前谢谢你。
您可以使用 window.print()
并且为了避免您的图表在页面中间被剪切,您可以向它们添加 CSS class(例如小部件)并添加到你的 CSS:
@media print {
.widget {
break-inside: avoid;
page-break-inside: avoid;
}
}
我曾尝试使用多种技术,如 weasyprint 和 reportlab,但无法将用户看到的网页制作成 pdf。我已经阅读了文档,但也许我遗漏了一些步骤,但我最终想获取他们正在查看的确切页面,当按下“PDF”按钮时,它将整个网页下载到一个 PDF 中,其中包含所有 css 和一切。
网页确实包含用 plotly 制作的热图图表,有时网页可以有 2 个图表,有时最多 20 个图表。
我目前只是调用了 'window.print()' 函数,但它切断了图表,我希望如果我使用 weasyprint 或类似的技术,那么我可以正确显示图表。
提前谢谢你。
您可以使用 window.print()
并且为了避免您的图表在页面中间被剪切,您可以向它们添加 CSS class(例如小部件)并添加到你的 CSS:
@media print {
.widget {
break-inside: avoid;
page-break-inside: avoid;
}
}