标签: xhtml2pdf

使用 xhtml2pdf pisa.CreatePDF() 创建 pdf 时出现 CSS 解析错误

我正在关注 xhtml2pdf 指南

我使用了示例 html 文件之一并保存为 test.html:

<html>
<head>
<style>
    @page {
        size: a4 portrait;
        @frame header_frame {           # Static Frame
            -pdf-frame-content: header_content;
            left: 50pt; width: 512pt; top: 50pt; height: 40pt;
        }
        @frame content_frame {          # Content Frame
            left: 50pt; width: 512pt; top: 90pt; height: 632pt;
        }
        @frame footer_frame {           # Another static Frame
            -pdf-frame-content: footer_content;
            left: 50pt; width: 512pt; top: 772pt; height: 20pt;
        }
    }
</style>
</head>

<body>
    <!-- Content for Static Frame 'header_frame' -->
    <div id="header_content">Lyrics-R-Us</div>

    <!-- …
Run Code Online (Sandbox Code Playgroud)

html css python pdf xhtml2pdf

7
推荐指数
2
解决办法
7081
查看次数

生成多个 PDF 并压缩它们以供下载,所有这些都在一个视图中

我正在使用xhtml2pdf在我的 Django 视图中生成 PDF。这个想法是遍历查询中存在的所有实例,然后为每个实例创建一个 PDF,然后将所有生成的 PDF 添加到一个 zip 文件中以供下载。该xtml2pdf逻辑是工作不错,但在循环逻辑是什么让我头疼。

所以这是我到目前为止的功能:

def bulk_cover_letter(request, ward_id, school_cat_id, cheque_number):
    school_type = SchoolType.objects.get(id=school_cat_id)

    schools_in_school_type = Applicant.objects.filter(
        school_type=school_type, ward_id=ward_id, award_status='awarded'
    ).order_by().values_list('school_name', flat=True).distinct()

    for school in schools_in_school_type:
        beneficiaries = Applicant.objects.filter(school_type=school_type, ward_id=ward_id, award_status='awarded', school_name=school)
        total_amount_to_beneficiaries = Applicant.objects.filter(school_type=school_type, ward_id=ward_id, award_status='awarded', school_name=school).aggregate(total=Sum('school_type__amount_allocated'))
        context = {
            'school_name' : school,
            'beneficiaries' : beneficiaries,
            'total_amount_to_beneficiaries' : total_amount_to_beneficiaries,
            'title' : school + ' Disbursement Details',
            'cheque_number': cheque_number
        }

        response = HttpResponse('<title>Cover Letter</title>', content_type='application/pdf')
        filename = "%s.pdf" %(cheque_number)
        content = "inline; …
Run Code Online (Sandbox Code Playgroud)

django zipfile python-3.x xhtml2pdf

7
推荐指数
1
解决办法
1095
查看次数

wkhtmltopdf错误“没有这样的文件或目录”(Django)

我正在尝试使用wkhtmltopdf从HTML代码创建PDF。我使用过xhtml2pdf和pisa,但是我在使用CSS样式时遇到了问题。好吧,wkhtmltopdf是我的最后选择。

我已经按照这个步骤了。 https://github.com/incuna/django-wkhtmltopdf

sudo aptitude install libfontconfig
pip install django-wkhtmltopdf
Run Code Online (Sandbox Code Playgroud)

如果我在INSTALLED_APPS中添加“ wkhtmltopdf”,它将识别出wkhtmltopdf路径。

INSTALLED_APPS = ["wkhtmltopdf"]
Run Code Online (Sandbox Code Playgroud)

好吧,当我尝试生成PDF时会生成错误。

这是我的代码:

from wkhtmltopdf.views import PDFTemplateResponse 

 context = {
            'linkedin1':self.linkedin1,
            'twitter1':self.twitter1,
            'facebook1':self.facebook1,
            'current': get_current_base_url,
           }


    html_path = "app/folder/page1_1.html"
    response = PDFTemplateResponse(request=request,
                                   template=html_path,
                                   filename="hello.pdf",
                                   context= context,
                                   show_content_in_browser=False,
                                   cmd_options=settings.WKHTMLTOPDF_CMD_OPTIONS,
                                   )
Run Code Online (Sandbox Code Playgroud)

在设置中:

WKHTMLTOPDF_CMD_OPTIONS = {
'quiet': True,
}
Run Code Online (Sandbox Code Playgroud)

我的错误:

 File "/home/user/.virtualenvs/app/local/lib/python2.7/site-   packages/django/core/handlers/base.py", line 136, in get_response
response = response.render()
 File "/home/user/.virtualenvs/app/local/lib/python2.7/site-packages/django/template/response.py", line 104, in render
self._set_content(self.rendered_content)
File "/home/user/.virtualenvs/app/local/lib/python2.7/site- packages/wkhtmltopdf/views.py", line 144, in rendered_content
footer_filename=footer_filename)
File "/home/user/.virtualenvs/app/local/lib/python2.7/site-packages/wkhtmltopdf/views.py", line 103, …
Run Code Online (Sandbox Code Playgroud)

python django pisa wkhtmltopdf xhtml2pdf

6
推荐指数
1
解决办法
8027
查看次数

-pdf-frame-border破了[xhtml2pdf]

我更新了xhtml2pdf 0.0.6,PyPDF2 1.21和reportlab 3.1.8.

当我使用xhtml2pdf 0.0.5和reportlab 2.7时,我的pdf很好.现在我的所有画面都有了边框.我确实删除了"-pdf-frame-border"并试图将"-pdf-frame-border:0"或"-pdf-frame-border:none"放入,但它仍然显示帧扩展.任何人都可以点灯吗?谢谢.

xhtml2pdf

6
推荐指数
2
解决办法
1601
查看次数

在比萨(xhtml2pdf)分页只是重复最后一页

我正在使用比萨制作包含遵循通用格式的页面的PDF文件。我显然做错了,因为当我生成PDF时(无论是从命令行还是从python API生成),我都只会看到最后一页的重复。

在下面的代码上运行Pisa,我得到三个页面,每个页面都显示“ C Tuesday”,而我希望看到三个不同的页面,分别是“ A Monday”,“ B Tuesday”和“ C Tuesday”。

我当前的比萨版本是 XHTML2PDF/pisa 3.0.33 (Build 2010-06-16)

<html>
<style>
    /* 297 x 210 */
@page {
  size: a4 landscape;
  margin: 1cm;
  margin-bottom: 2.5cm;

  @frame header {
    -pdf-frame-content: headerContent;
    background-color:black;
    color:white;
    top : 0cm;
    margin-left: 0cm;
    margin-right: 14.5cm; 
    height: 2.5cm;
    width: 14.9cm;
  }

  @frame lhs {
    -pdf-frame-content: lhs;
    background-color:white;
    color:black;
    top : 4.5cm;
    margin-left: 0cm;
    margin-right: 14.5cm; 
    height: 13.5cm;
    width: 14.9cm;
  }

  @frame footer {
    -pdf-frame-content: footerContent;
    color:black;
    bottom: 1cm; …
Run Code Online (Sandbox Code Playgroud)

python pisa xhtml2pdf

5
推荐指数
1
解决办法
3678
查看次数

xhtml2pdf 子元素显示父元素的边框

希望有人可以解决这个问题。在 Google 上还没看到有人用过它。

我在 Python 中使用 xhtml2pdf,尝试生成一个带有页眉、页脚的简单文档,我的内容是带有标题的文本块。我希望在每个内容周围都有边框,但我却在每个子元素周围都有边框。

这是我的 HTML

@page {
  size: letter;
  border: 0;
  @frame header_frame {
    -pdf-frame-content: header;
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: .5in;
    height: 1.5in;
  }
  @frame content_frame {
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: 1.5in;
    height: 7.5in;
  }
  @frame footer_frame {
    -pdf-frame-content: footer;
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: 9.5in;
    height: 1in;
  }
}

h1 {
  padding-top: 5pt;
}

.desc {
  margin-top: 3px;
  margin-bottom: 3px;
  padding: …
Run Code Online (Sandbox Code Playgroud)

css python xhtml2pdf

5
推荐指数
0
解决办法
1248
查看次数

Django - pdf 响应编码错误 - xhtml2pdf

我正在我的 Django 网站上开发发票 PDF 生成器。我用xhtml2pdf. 它似乎有效,但编码不正确。当我使用变音符号时有错误的符号/字符。

这是一个视图:

def render_to_pdf(template_src, context_dict):
    template = get_template("pdf/pdf.html")
    context = context_dict
    html  = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('utf-8'), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf; encoding="utf-8"')
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))
Run Code Online (Sandbox Code Playgroud)

这是 html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>title</title>
  </head>
  <body>
    <p>? š ž Ž x y ? ? ó</p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是生成的pdf: 在此处输入图片说明

你知道如何让它正常工作吗?

pdf django encoding diacritics xhtml2pdf

5
推荐指数
1
解决办法
1858
查看次数

如何将绘图与其他 HTML 内容一起导出为 pdf?

我尝试了 3 个将 HTML 转换为 PDF 的库,即 xhtml2pdf、weasyprint 和 wkhtmltopdf。

我的 HTML 中包含图表,它们是离线图表,即。从plotly.offline.plots生成的图表

当我在浏览器中加载相同的 HTML 时,图表和其他 HTML 内容呈现良好,但当使用上述任何一个库将其转换为 PDF 时,HTML 内容呈现良好,但图表在 PDF 内变为空白。

from plotly.graph_objs import Scatter
from plotly.offline import plot

fig = plot([Scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])], output_type='div')

Run Code Online (Sandbox Code Playgroud)

我将这个无花果传递到 Django 模板并将其渲染为

{{ fig|safe }}
Run Code Online (Sandbox Code Playgroud)

使用 xhtml2pdf、weasyprint 和 wkhtmltopdf 将 HTML 转换为 PDF,但它们都没有显示图表。

我的代码中缺少什么?谁能告诉我任何 HTML 到 PDF 转换库都会在 PDF 中呈现 Plotly 图表吗?

python wkhtmltopdf xhtml2pdf weasyprint plotly

5
推荐指数
1
解决办法
3479
查看次数

Django - 使用XHTML2PDF创建和存储PDF文件

截至目前,我们正在使用XHTML2PDF动态生成PDF并在需要时输出到浏览器.现在我们的要求已更改为仅生成一次PDF并将其存储在服务器中.应该向用户显示该链接以查看PDF.你能指出任何资源或片段来达到这个目的吗?

python django xhtml2pdf

4
推荐指数
1
解决办法
1258
查看次数

application/pdf pisa __init __()得到了一个意外的关键字参数'mime type'

这是代码:

def render_to_pdf(template_src, context_dict):
     template = get_template(template_src)
     context = Context(context_dict)
     html  = template.render(context)
     result = StringIO.StringIO()
     pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
     if not pdf.err:
        return HttpResponse(result.getvalue(), mimetype='application/pdf')
        return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))
Run Code Online (Sandbox Code Playgroud)

我使用django 1.7,错误是

init()得到了一个意外的关键字参数'mimetype'

请求方法:GET请求URL:http://127.0.0.1 :8000/admin/amministrazione/ddts/ stampa// Django版本:1.7.7异常类型:TypeError异常值:

init()得到了一个意外的关键字参数'mimetype'

例外位置:/home/stefano/.virtualenvs/company2/local/lib/python2.7/site-packages/django/http/response.py in init,第318行Python可执行文件:/home/stefano/.virtualenvs/company2/ bin/python Python版本:2.7.6

django httpresponse pisa python-2.7 xhtml2pdf

4
推荐指数
1
解决办法
2655
查看次数