当用户单击 "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;
  }
}