0

我来自非编码背景,所以 python、web2py 对我来说非常新。

我的应用程序需要将 textarea 内容(使用 RTE 编辑器)导出为 pdf。我从 textarea (redactor) 获取 html 内容,请您告诉我如何使用 pyfpdf 在按钮单击时生成 pdf 文件。

我不知道如何在单击按钮时获取 html 内容(图像和文本)以使用 appreport 生成 pdf。

如果html文件有css,我可以使用app-report从现有的html文件(没有css)生成pdf(使用PISA,PYPDF不起作用)它会引发错误,

***<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,并且 alert 为我提供了所需的 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)

由于我对编码的了解较少,我无法找出并纠正我的错误。如果有人可以帮助我解决这个问题,我将不胜感激。

问候, 阿卡什

4

1 回答 1

0

可能是这个帖子请求:

jQuery.ajax({ 
    type: "POST", 
    url: "http://127.0.0.1:8000/Test50/default/myreport2", 
    data: "{g : 'jQuery('#redactor_content').getCode()'}" 
  }); 
}

我认为您应该将“数据”参数设置为文字字典,而不是字符串。像这样更改此行(删除除一组引号之外的所有引号):

    data: {g : jQuery('#redactor_content').getCode() }

这应该正确发送请求。jQuery 文档说 data 参数应该是键值对,而不是字符串。

于 2012-07-27T19:04:04.353 回答