0

我尝试将应用引擎生成的输出页面转换为 pdf,但遇到了一些问题。首先:我选择jQuery. 第二:将此javascript变量发送到新的python脚本第三:在新的python脚本中,使用xhtml2pdf进行转换。但是,我在第二步中感到困惑。以下是我的方法:

HTML:

<div class="articles">
        <h2 class="model_header">PFAM Output</h2>
    <form>
        <table align="center">
            <!--end 04uberoutput_start-->
            <table class="out_chemical" width="550" border="1">
                <tr>
                    <th scope="col" colspan="5">
                        <div align="center">Chemical Inputs</div>
                    </th>
                </tr>
                <tr>
                    <th scope="col" width="250">
                        <div align="center">Variable</div>
                    </th>
                    <th scope="col" width="150">
                        <div align="center">Unit</div>
                    </th>
                    <th scope="col" width="150">
                        <div align="center">Value</div>
                    </th>
                </tr>
                <tr>
                    <td>
                        <div align="center">Water Column Half life @20 &#8451</div>
                    </td>
                    <td>
                        <div align="center">days</div>
                    </td>
                    <td>
                        <div align="center">11</div>
                    </td>
                </tr>
            </table>
        </table>
    </form>
</div>

JS

$(document).ready(function () {
  var jq_html = $("div.articles").html();
  console.log(jq_html);
$('.getpdf').append('<tr style="display:none"><td><input name="extract" value="' + jq_html + '"></input></td></tr>');
$('.getpdf').append('<tr><td><input type="submit" value="Generate PDF"/></td></tr>');
})

新的 python 脚本进行转换

   def post(self):
        form = cgi.FieldStorage()   
        extract = form.getvalue('extract')
        print extract
        self.response.out.write(html)

当我尝试检查变量提取是否正确传输时,我得到一个空页面。似乎这个变量被忽略了......如果我用数字提供提取物,整个框架似乎很好。那么有人可以帮我确定我的方法是否正确吗?谢谢!

4

1 回答 1

1

这行代码不能正确处理转义 HTML。此外,它是一个text字段而不是一个hidden字段:

$('.getpdf').append('<tr style="display:none"><td><input name="extract" value="' + jq_html + '"></input></td></tr>');

一个更好的方法是这样的:

$('<tr style="display:none"><td><input type="hidden" name="extract"></td></tr>')
    .appendTo('.getpdf')
    .find('input')
    .val(jq_html);
于 2013-03-26T02:31:21.180 回答