当前位置: 首页 > 知识库问答 >
问题:

使用wkhtmltopdf Django生成pdf

益何平
2023-03-14

我试图用这个库创建一个pdf,实现最简单的de docs示例

使用url并直接从模板中呈现,如下所示

url(r'^pdf/$', PDFTemplateView.as_view(template_name='my_template.html',
                                       filename='my_pdf.pdf'), name='pdf'),

这是模板文件的 html

<!DOCTYPE html>
<html>
 <head>
    <title>Hello Wold</title>
 </head>
    <body>
       <p>My First Pdf</p>
     </body>
</html>

但是当我尝试访问url时,错误是这样的

/pdf/“NoneType”对象处的AttributeError没有属性“endswith”

我如何能修理它

这是回溯

回溯:get_response139.response=response中的文件“/usr/local/lib/python2.7/dist-packages/django/core/handers/base.py”。render()文件“/usr/local/lib/python2.7/dist-packages/django/template/response.py”位于render 105.self中。content=自我。rendered_content文件“/usr/local/lib/python2.7/dist-packages/wkhtmltopdf/views.py”位于rendered_content 123中。delete=(非调试)文件“/usr/local/lib/pyton2.7/dist packages/wkhtltopdf/views/py”在render_to_temporary_File 78中。content=make_absolute_paths(content)文件“/make_absolute.paths 151中的/usr/local/lib/python27/dist-ppackages/wkhtmletopdf/utils.py”。如果不是x['root'].endswitch h('/'):

异常类型:AttributeError位于/pdf/Exception Value:“NoneType”对象没有属性“endswith”

环境:

请求方法:获取

Django Version: 1.6.2
Python Version: 2.7.3
Installed Applications:
    ('django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'south',
     'rest_framework',
     'cian',
     'django_extensions',
     'wkhtmltopdf')
Installed Middleware:
    ('django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware')

这是django-wkhtmltopd错误的屏幕截图

共有3个答案

沈良策
2023-03-14

错误是我没有在设置中定义media_root和media_url。py包装器希望您有staticroot、mediaroot、staticurl和mediaurl可以工作

长孙硕
2023-03-14

看起来您的根路径有问题。尝试在Django设置文件(settings.py)中设置STATIC_URL

斜光耀
2023-03-14

发生此错误是因为wkhtmltopdf使用settings.pySTATIC_ROOT的路径生成pdf文件。尝试为STATIC_ROOT分配一个值并进行测试。

STATIC_ROOT = 'path.to.your.static.directory'
 类似资料:
  • 我正在尝试使用iText7将内容添加到现有的PDF中。我已经能够创建新的PDF,并使用段落和表格为其添加内容。然而,一旦我重新打开我创建的PDF并尝试向其写入更多内容,新内容就会开始覆盖旧内容。我希望新内容在旧内容之后附加到文档中。我怎样才能做到这一点? 编辑 这个类设置了一些常见的方法,这些方法将在对PDF文档进行每次更改时执行。 这就是我将内容添加到pdf的方式 当我执行第二个类时,它似乎将原

  • 可以使用Spring RestDocs生成的另一件事是Spring Cloud Contract DSL文件和文档。如果您将其与Spring Cloud WireMock相结合,那么您将获得合同和存根。 提示 您可能会想知道为什么该功能在WireMock模块中。来想一想,它确实有道理,因为只生成合同并且不生成存根就没有意义。这就是为什么我们建议做这两个。 我们来想象下面的测试: this.mo

  • 你好。我可以使用SOAPMessage从java项目中的web服务生成类吗?。这是WS,我想生成这里的类。提前谢谢。

  • 需要一个用作所有函数的返回类型的类型。如果我需要生成一个AST,我应该使用什么返回类型?ANTLR3使用了 对象。 当输入节点时,我可以创建树的一个节点,但应该如何跟踪它的父节点? 关于如何将树重写规则转换为生成AST节点的方法,是否有任何示例?如果不是,是否可以为下面的规则提供一个示例? 下面是(3)的规则:

  • 问题内容: 我试图将XML数据从网页转换为PDF文件,希望能完全在JavaScript中完成。我需要能够绘制文本,图像和简单形状。我希望能够完全在浏览器中做到这一点。 问题答案: 示例创建一个“ Hello World” PDF文件。

  • 本文向大家介绍使用jspdf生成pdf报表,包括了使用jspdf生成pdf报表的使用技巧和注意事项,需要的朋友参考一下 由于前台html已经动态生成报表,而且,前台有一个功能,一个date range组件,当你拖动的时候,报表会在不提交到后台的情况下动态变化。 因此需要用到js生成生报表: 用到的组件: 前台动态生成的chart现在一般是用的html5的canvas或者是svg,很不幸运,我遇到的