需要一些帮助才能使pdf导出正常工作

时间:2010-08-20 19:50:04

标签: jquery pdf export tcpdf

我正在使用第三方工具(TCPDF)将数据导出为PDF。如果我使用表单并将数据发布到导出php页面,它工作正常。但是,我有另一个需要调用相同的导出器页面,并通过ajax传递它需要的参数,以此方式输出pdf文件。一切似乎都运行正常,除非我得到pdf的输出,当我使用ajax调用时,它没有打开我的pdf阅读器来查看...它只是留下了一个空白屏幕。在Firebug控制台中,我可以看到pdf文档的输出,它只是没有弹出pdf阅读器,就像我使用表单并点击提交按钮一样。

关于我可以采取哪些措施来解决这个问题?

如果有帮助,这是我的ajax代码:

url = "admin.php?rst_post=y&action=exportresults&sid=123&answerid=321&filterinc=show&exportstyle=full&answers=long&type=pdf&export_from=&export_to=&convertyto=&convertnto=";

$.ajax({
    async: false,
    type: "GET", 
    url: url, 
    contentType: "charset=utf-8", 
    complete: function(rc)
    { 
        //alert(rc);
    }
});

1 个答案:

答案 0 :(得分:0)

这是我放在一起的工作原型。我不确定它是否能满足您的需求,但我认为它可能很接近。

假设:我假设您希望它在浏览器的Reader插件中打开。如果没有,请告诉我,我会相应地调整我的答案。

为什么不动态地向您的页面添加IFRAME并在那里显示PDF,而不是使用AJAX?这是一个工作原型:

<html>
    <head>
        <style type="text/css">
            .inlinePdf {
                width: 50%;
                height: 50%;
            }
        </style>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
        <script type="text/javascript">

            $(document).ready(function() {
                var url = "http://www.irs.gov/pub/irs-pdf/fw4.pdf";
                $("<iframe></iframe>").addClass("inlinePdf").attr("src", url).appendTo("#content");
            });

        </script>
    </head>
    <body>
        <div id="content">
        </div>
    </body>
</html>

这将在IFRAME中加载美国W-4 PDF(uggh ...税)。我正在使用document.ready执行此操作,但我可以通过单击按钮来执行此操作。

如果这很接近,请告诉我。我会相应更新。希望这有帮助!

BTW - Encosia上的这个blog post很有用(它涉及ASP.NET AJAX,但概念是相同的)。

编辑:如果您只想打开PDF的新窗口(因为您是通过网址请求它),您可以这样做而不是嵌入式IFRAME:

$(document).ready(function() {
    var url = "http://www.irs.gov/pub/irs-pdf/fw4.pdf";
    window.open(url, "_blank");
});

如果您在服务器端有控制权,请将content-disposition标题设置为attachment,然后您应该打开/保存对话框。那时新窗口应该关闭。