2010-09-15 52 views
0

我试图通过jquery load()显示一个由PHP创建的动态生成的PDF,FPDFlib在div上,但是我得到的是一个字符堵塞。有没有办法解决它?php-jquery-pdf在div上加载pdf

在此先感谢

我试图纠正我的代码以这种方式,但继续显示果酱

$.post("./php/stampa_login.php", 
    {piatta:'<? echo $_POST["piatta"] ?>'}, 
    function(data){ 
     $("#stampa_content").load("./temp/login.pdf") 
}); 

小时。

+0

我们可以看到你的代码,请,似乎是一个输出的问题。 – RobertPitt 2010-09-15 17:37:34

回答

2

这似乎是正确的。 jQuery的load()通过AJAX获取URL;如果该URL为PDF,则表示为浏览器的“字符堵塞”,因为PDF和HTML不兼容在所有中,格式完全不同。

您可能想要的是将PDF作为<object>打开,但您希望用户在其浏览器中安装了一些PDF插件。让我们退后一步:通过显示PDF来尝试在这里实现什么?

+0

我通过JQuery的php页面加载生成PDF;我想这是问题,可能是我可以解决一个帖子请求生成PDF的PHP页面,将其保存在本地和负载后显示... – haltman 2010-09-15 18:01:53

0

雅,似乎是一个输出问题。你有没有尝试过头功能输出正确?尝试正确的输出或代替在div中打开PDF,只需更新pdf的链接

+0

我使用这些标头:header('Accept-Ranges:bytes “); \t \t \t header(“Content-type:application/pdf”); – haltman 2010-09-15 18:05:16

+0

我不认为这会奏效。您将不得不使用新生成的PDF链接更新div。 – 2010-09-15 19:12:52

1

您可以创建空白embed标记并将src属性作为链接。在您的回拨功能中。这将完美加载PDF文件。

$("#embed_tag_id").attr("src", "./temp/login.pdf"); 
+0

我要尝试这个解决方案谢谢提示! – haltman 2012-06-03 15:25:59

1

而不是使用$('#whatever')。load();

你会想是这样的:

$("#stampa_content").html($('<object>', { data : "./temp/login.pdf", type : "application/pdf", width : 800, height : 600 }); 

什么,会做的,而不是试图将PDF内容加载到一个DIV,这将创建启动你的PDF阅读器的块(如Adobe Reader),然后它将加载PDF本身并显示它。

或者,你可以去这样的事情:http://dev.funkynerd.com/projects/jquery-pdfdoc/wiki