gpt4 book ai didi

javascript - Django HTML 和 CSS 呈现为 pdf

转载 作者:行者123 更新时间:2023-12-03 11:21:18 27 4
gpt4 key购买 nike

我正在尝试使用 Django-weasyprint 将 HTML 和 CSS 转换为 pdf 页面但我有点坚持他们的教程,因为我希望 PDF 在用户单击下载按钮时呈现当前页面,并且 pdf 会以只读权限自动下载。整个过程做起来有点痛苦。
目前,weasyprint 只是将 Django 中的 URL 转换为 pdf,但我不知道如何设置按钮以查看 weasyprint View 。
也许我正在查看它并过度复杂化,任何帮助将不胜感激。
Weasyprints 示例代码:

from django.conf import settings
from django.views.generic import DetailView

from django_weasyprint import WeasyTemplateResponseMixin
from django_weasyprint.views import CONTENT_TYPE_PNG


class MyModelView(DetailView):
# vanilla Django DetailView
model = MyModel
template_name = 'mymodel.html'


class MyModelPrintView(WeasyTemplateResponseMixin, MyModelView):
# output of MyModelView rendered as PDF with hardcoded CSS
pdf_stylesheets = [
settings.STATIC_ROOT + 'css/app.css',
]
# show pdf in-line (default: True, show download dialog)
pdf_attachment = False
# suggested filename (is required for attachment!)
pdf_filename = 'foo.pdf'


class MyModelImageView(WeasyTemplateResponseMixin, MyModelView):
# generate a PNG image instead
content_type = CONTENT_TYPE_PNG

# dynamically generate filename
def get_pdf_filename(self):
return 'bar-{at}.pdf'.format(
at=timezone.now().strftime('%Y%m%d-%H%M'),
)

我在我的电脑上制作了一个虚拟环境,它的设置与示例完全一样。目前使用 Boostrap 4。
*编辑,如果有更好的方法,欢迎分享:)
另外我想只定位正文标签,以便它只将该部分转换为 pdf 而不是整个页面。
我之前使用的解决方案是: https://codepen.io/AshikNesin/pen/KzgeYX但这效果不佳。
*编辑2.0
我已经转移到 js 并且我坚持使用这个脚本,它不想在单击函数上创建 pdf 表单,还有没有办法将 js 函数设置为仅下载 div 中选定的 Id 而不是在一定程度上? (怕它会用分辨率而不是实际需要渲染的内容)
https://jsfiddle.net/u4ko9pzs/18/
任何建议将不胜感激。

最佳答案

你不需要使用那个 django 应用程序。您可以按照博客文章 https://www.bedjango.com/blog/how-generate-pdf-django-weasyprint/ 中的示例编写自定义 View 来处理打印。

我发现应用程序限制并写了我自己的观点。这并不难。

关于javascript - Django HTML 和 CSS 呈现为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com