我正在使用网络上的标准示例(http://www.20seven.org/journal/2008/11/pdf-generation-with-pisa-in-django.html)将django视图/模板转换为PDF.
是否有一种"简单"的方式在模板中包含图像(来自服务器上的URL或引用),以便它们显示在PDF上?
有很好的项目可以从html/css/js文件生成pdf
我想以编程方式控制chrome或firefox浏览器(因为它们都是跨平台的),以使它们加载网页,运行脚本并设置页面样式并生成用于打印的pdf文件.
但是我如何开始以自动方式控制浏览器,以便我可以做类似的事情
render-to-pdf file-to-render.html out.pdf
我可以通过浏览页面然后将其打印到pdf手动轻松完成这项工作,并在pdf文件上获得准确的,100%规范的html/css/js页面.甚至可以在浏览器中的pdf配置选项中省略url标头.但同样,我如何开始尝试自动化这个过程?
我想在服务器端自动化,打开浏览器,导航到页面,并使用浏览器呈现的页面生成pdf.
我做了很多研究,我不知道如何提出正确的问题.我想以编程方式控制浏览器,可能就像selenium一样,但我将网页导出为PDF(因此使用浏览器的渲染功能来生成良好的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所以根据比萨文档我试图在样式部分的模板体中设置字体.
那仍然没有结果.
有没有人有一些想法如何解决这个问题?
在这个广阔的领域中,有没有人有幸在HTML上成功创建带有嵌入式SVG的PDF?我一直在接收分段故障.
或者是否有任何其他方法可以将SVG嵌入到HTML文件中,然后将其导出为PDF而不是wkhtmltopdf?
从python2中的django网页生成pdf有很多种不同的方法.最干净的可能是比萨和报告.但这些对python3不起作用.
到目前为止,我唯一成功的方法是渲染模板,将其写入文件,然后通过subprocess.popen使用wkhtmltopdf.这可以正常工作,但它不会加载任何我的静态文件,如CSS和图像.
有没有合适的解决方案?可以wkhtmltopdf从命令行读取我的静态文件,在某种程度上,还是像pisa/reportlab这样的库,它支持python3?
我无法找到这样的图书馆
我正在开发一个Python/Django项目,我必须将一些高度风格的html内容转换为PDF.目前我正在使用该wkhtmltopdf库.虽然转换工作几乎完美,但有一些关于CSS3和HTML5支持的问题.有些样式无法正确转换为pdf,我必须更改CSS和HTML以使其更适合打印,因此我可以正确转换为PDF.直到最近我还以为是没有工具,可以做100%的转化率,但比我发现这与在线演示http://www.html-to-pdf.net/free-online-pdf-converter.aspx有其远优秀的HTML5和CSS3支持,但它是为.NET编写的.有这种转换级别的Python支持吗?
注意:我将有很多需要转换的HTML页面,并且每个人调整CSS对我来说不是一个好选择.我需要的东西可以100%转换从HTML到PDF的样式.
我带着一个我无法回答的新问题回来,整整一天都摸不着头脑.
我想通过点击"下载PDF"按钮从网页生成PDF.我尝试了几个模块,包括Reportlab和XHTML2PDF,但我无法生成任何pdf,也无法下载...这是我在Reportlab中做的,在Django网站中将HTML渲染为PDF
- - views.py - -
import cStringIO as StringIO
import ho.pisa as pisa
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
from cgi import escape
def index_data(request):
#Code to generate data
return render(request, "analytics/stat.html", locals())
return render_to_pdf(
'analytics/stat.html',
{
'pagesize':'A4',
'mylist': results,
}
)
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("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
return HttpResponse('We …Run Code Online (Sandbox Code Playgroud) 我想生成一个PDF,它将以表格格式显示我的queryset的输出,例如:
query = ModelA.objects.filter(p_id=100)
class ModelA(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200)
p_id = models.IntegerField()
description = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我需要显示的值name,description并pid在生成的PDF.
当我查看将参数传递给Jasper Report REST 2 API的文档时:http://community.jaspersoft.com/documentation/jasperreports-server-web-services-guide/v550/running-report-asynchronously我看到了我需要一个"参数"字典.链接中的示例显示了XML并不是那么有用,因为它不清楚具体的JSON应该是什么样子.我能找到的最接近的链接是:http://community.jaspersoft.com/documentation/jasperreports-server-web-services-guide/v56/modifying-report-parameters.现在,我将相应的内容发送到服务器(以及我能想到的所有其他排列),然后我继续得到"400 Client Error:Bad Request".我真的可以使用python代码的确切示例来生成所需的"参数"参数,例如"my_parameter_1 ="test_value_1".
这是我目前的POST数据(为简洁起见,缺少一些参数).我知道这是正确的,因为如果我省略"参数"参数,报告工作正常:
{
'outputFormat': 'pdf',
'parameters': [{'name': 'ReportID', 'value': ['my_value_1']}],
'async': 'true',
'pages': '',
'interactive': 'false'
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用报告实验室将我创建的HTML文档转换为pdf。html文档如下。我不确定如何执行此操作,而且我已经上网查找了,似乎无法找到解决方案。
html文件
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Convert to Pdf</title>
</head>
<body>
<h2>Convert to pdf</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at tempus massa. Quisque congue dui venenatis rutrum imperdiet. Nulla congue magna sit amet magna posuere, in elementum felis dapibus. Mauris maximus feugiat lorem, a bibendum orci fringilla a. Pellentesque rhoncus dignissim tempus. Aliquam semper convallis odio ut pharetra. Nunc bibendum neque at bibendum ornare. Curabitur lobortis odio ac turpis tincidunt, at venenatis nibh …Run Code Online (Sandbox Code Playgroud) pdf ×8
django ×6
python ×6
html ×3
pisa ×2
reportlab ×2
wkhtmltopdf ×2
django-views ×1
html-to-pdf ×1
image ×1
jasperserver ×1
java ×1
json ×1
parameters ×1
rest ×1
svg ×1