我来自非编码背景,所以python,web2py对我来说很新。
我的应用需要将textarea内容(使用RTE编辑器)导出为pdf。我从textarea(redactor)获取html内容,你能否告诉我如何使用pyfpdf在点击按钮时生成pdf文件。
我不知道如何在视图中点击按钮获取html内容(图像和文本)以使用appreport生成pdf。
我能够使用app-report从现有的html文件(没有css)生成pdf(使用PISA,PYPDF不起作用),如果html文件有css则会抛出错误,
***<class 'sx.w3c.cssParser.CSSParseError'> Terminal function expression expected closing ')':: (u'Alpha(Opacity', u'=0); }\n\n\n\n.ui-state-')***
这可能是由于控制器代码中的错误造成的:
def myreport():
html = response.render('myreport.html', dict())
return plugin_appreport.REPORTPISA(html = html)
我尝试的另一件事是使用ajax post(在Javascript中)将html从我的视图传递给控制器。 Redactor是我正在使用的textarea RTE,它提供了所需的html结果。
查看:
function getContent() {
var t= jQuery('#redactor_content').getCode();
alert(t);
jQuery.ajax({
type: "POST",
url: "http://127.0.0.1:8000/Test50/default/myreport2",
data: "{g : 'jQuery('#redactor_content').getCode()'}"
});
}
控制器:
def myreport2():
g = request.get_vars
html = response.render(g)
return plugin_appreport.REPORTPISA(html = html)
由于我对编码知识不足,我无法找出并纠正错误。如果有人能帮我解决这个问题,我将感激不尽。
此致 阿卡什
答案 0 :(得分:0)
可能是这个帖子请求:
jQuery.ajax({
type: "POST",
url: "http://127.0.0.1:8000/Test50/default/myreport2",
data: "{g : 'jQuery('#redactor_content').getCode()'}"
});
}
我认为你应该让'data'参数成为文字字典,而不是字符串。像这样改变这一行(删除除一组引号之外的所有引号):
data: {g : jQuery('#redactor_content').getCode() }
这应该正确发送请求。 jQuery documentation表示数据参数应该是键值对,而不是字符串。