标签: pisa

django - 比萨:将图像添加到PDF输出

我正在使用网络上的标准示例(http://www.20seven.org/journal/2008/11/pdf-generation-with-pisa-in-django.html)将django视图/模板转换为PDF.

是否有一种"简单"的方式在模板中包含图像(来自服务器上的URL或引用),以便它们显示在PDF上?

pdf django pdf-generation image pisa

32
推荐指数
2
解决办法
2万
查看次数

有没有办法用django模板中的pisa生成包含非ascii符号的pdf?

我正在尝试使用此代码段从模板生成pdf:

def write_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 http.HttpResponse(result.getvalue(), mimetype='application/pdf')
    except Exception('PDF error')
Run Code Online (Sandbox Code Playgroud)

所有非拉丁符号都没有正确显示,模板和视图使用utf-8编码保存.

我已经尝试将视图保存为ANSI,然后保存到用户unicode(html,"UTF-8"),但它会抛出TypeError.

另外我想也许是因为默认字体不支持utf-8所以根据比萨文档我试图在样式部分的模板体中设置字体.

那仍然没有结果.

有没有人有一些想法如何解决这个问题?

python pdf django pisa

19
推荐指数
1
解决办法
8000
查看次数

Django/Python:用适当的语言生成pdf

我在我的Django应用程序中使用Pisa/xhtml2pdf从HTML源生成pdf.那是:

  1. 我生成格式化所有'打印'东西的HTML文件(例如分页符,页眉,页脚等)
  2. 我使用Pisa将此HTML转换为pdf

这个过程还可以,但速度很慢(特别是在处理长表时),我必须根据Pisa功能/限制使用HTML/CSS.

问题是:这是从Web应用程序生成pdf的正确方法(即创建HTML然后将其转换为pdf)还是有更直接的方法,即用更合适的语言"编写"pdf?

python django pdf-generation pisa xhtml2pdf

18
推荐指数
2
解决办法
3067
查看次数

在Python中用html转换为.doc转换器?

我正在使用pisa,这是一个用于Python的HTML到PDF转换库.

对于Word文档是否存在相同的东西:用于Python的HTML到.doc转换库?

python ms-word pisa

9
推荐指数
2
解决办法
1万
查看次数

使用Pisa将pdf写入磁盘

我在浏览器中的django中有pisa生成.pdfs,但如果我想自动将文件写入磁盘怎么办?我想要做的是能够在指定的时间点生成.pdf版本文件并将其保存在uploads目录中,因此没有浏览器交互.这可能吗?

django pisa

8
推荐指数
1
解决办法
4170
查看次数

比萨pdf转换器使用大型表格非常慢

我正在使用Pisa将HTML转换为PDF(在Django项目中).处理跨越多个页面的表时,它非常慢:

一个200行的表需要150秒才能转换,而如果我把它分成更小的表需要15秒.

是否有建议由比萨处理的HTML表的提示或最佳实践?

django pdf-generation html-table pisa xhtml2pdf

8
推荐指数
1
解决办法
1994
查看次数

ReportLab的.浮动带有两列的文本

首先,我是python,reportlab,xhtml2pdf的新手.我已经用reportlab完成了我的第一个pdf文件,但是我遇到了以下问题.

我需要两列中的大文本.

首先,我创建我的画布,创建我的故事,将我的大文本作为一个段落添加到故事中,创建我的框架,最后将故事添加到框架中.

c = Canvas("local.pdf")
storyExample = []
textExample = (""" This is a very large text Lorem Ipsum ... """)
storyExample.append(Paragraph(textExample, styleText))
frameExample = Frame(0, 0, 50, 50,showBoundary=0)
frameExample.addFromList(storyExample,c)
c.showPage()
c.save()
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.但我需要在两列represantation中显示文本.

现在文本只是流动我的框架像:

|aaaaaaaaaaaaaaaaaaaa|
|bbbbbbbbbbbbbbbbbbbb|
|cccccccccccccccccccc|
|dddddddddddddddddddd|
Run Code Online (Sandbox Code Playgroud)

但我需要这样:

|aaaaaaaaa  bbbbbbbbbb|
|aaaaaaaaa  cccccccccc|
|bbbbbbbbb  cccccccccc|
|bbbbbbbbb  dddddddddd|
Run Code Online (Sandbox Code Playgroud)

我希望你理解我想说的话.

python reportlab pisa xhtml2pdf

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

xhtml2pdf比萨css打破无功能

我正在使用Djang +使用xhtml2pdf.pisa使用html + css生成PDF.但是,我遇到了CSS的各种奇怪问题.

以下是我的代码:

from django.template.loader import render_to_string
import cStringIO as StringIO
import xhtml2pdf.pisa as pisa
import cgi, os
def fetch_resources(uri, rel):
    path = os.path.join(settings.STATIC_ROOT, uri.replace(settings.STATIC_URL, ""))
    return path
def test_pdf(request):
    html = render_to_string('pdf/quote_sheet.html', { 'pagesize':'A4', }, context_instance=RequestContext(request))
    result = StringIO.StringIO()
    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), dest=result, link_callback=fetch_resources)
    if not pdf.err:
        return HttpResponse(result.getvalue(), mimetype='application/pdf')
    return HttpResponse('Gremlins ate your pdf! %s' % cgi.escape(html))
Run Code Online (Sandbox Code Playgroud)

我的模板:

<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    {% load static from staticfiles %}
    {% load i18n …
Run Code Online (Sandbox Code Playgroud)

python django pisa xhtml2pdf

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

“需要一个有效的文件名!” xhtml2pdf 与 Django

我的问题是:我正在使用 xhtml2pdf 库从 html 创建 pdf 文件。创建 pdf 文件后,我使用 sendgrid API 通过电子邮件将该文件发送给用户。但是,我无法在 pdf 文件中保留嵌入的图像,因为应用程序返回给我“需要有效的文件名!” 信息。我在几个地方进行了研究,但找不到解决方案。使用的代码如下。

HTML 代码:

<img src="/static/media/logo.jpg" alt="Image">
Run Code Online (Sandbox Code Playgroud)

python代码(将html转换为pdf):

def link_callback(uri, rel):
"""
Convert HTML URIs to absolute system paths so xhtml2pdf can access those
resources
"""
# use short variable names
sUrl = settings.STATIC_URL
mUrl = settings.MEDIA_URL
mRoot = settings.MEDIA_ROOT

# convert URIs to absolute system paths
if uri.startswith(mUrl):
    path = os.path.join(mRoot, uri.replace(mUrl, ""))

else:
    return uri  # handle absolute uri (ie: http://some.tld/foo.png)

# make sure that …
Run Code Online (Sandbox Code Playgroud)

django pisa python-3.x xhtml2pdf

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

CSS不是由Dja的Pisa的pdf生成渲染的

我使用Pisa从HTML生成pdf文件:

def fetch_resources(uri, rel):
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
    return path

def write_pdf(template_src, context_dict, filename):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = open(filename, 'wb')
    pdf = pisa.pisaDocument(StringIO.StringIO(
        html.encode("UTF-8")), result, link_callback=fetch_resources)
    result.close()
Run Code Online (Sandbox Code Playgroud)

我的HTML有一个外部CSS的链接,并且正确呈现,但比萨不使用CSS(例如字体大小,表格单元格宽度,文本对齐...).

<!DOCTYPE html>
<html lang="fr">
<head>
    <link rel="stylesheet" href="/site_media/style/style.css" />
</head>

<body>
....
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢

css python django pisa

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