在新标签页中打开dompdf从给定页面获取数据

时间:2013-07-03 21:39:10

标签: php css dompdf

我知道至少还有两个类似的问题,但它们对我没有帮助。

我有textarea用tinymce用户写他的文字。然后有一个按钮“PDF”,应创建pdf并在新选项卡中打开它。 pdf的内容是tinymce中的内容。

当用户点击按钮时,表单将提交给index.php操作。然后index.php从$ _POST变量收集信息并创建pdf。

我无法将其作为普通链接在新标签页中打开。 我以不同的方式尝试过它。

1)我可以在同一个标​​签中打开PDF,但这不是我需要的。这一行在同一个标​​签上打开我的pdf:

$dompdf->stream('document.pdf',array('Attachment'=>0));

2)我可以在新窗口中打开它,但随后浏览器会警告这是弹出窗口。客户不想要它。另一个问题是pdf存储在服务器上。我不想要它(弹出警告更重要)。这是我的代码:

$output = $dompdf->output();
file_put_contents('document.pdf', $output); //save pdf on server

//opens generated pdf in new window, but this creates warning for popup
echo '<script type="text/javascript" language="javascript"> 
window.open("http://modeles-de-lettres.org/test/saved_pdf.pdf", "_blank"); 
</script>'; 

我读过那些:

1)Open PDF in a new tab using dompdf

这表明:“只要在新选项卡中打开。这取决于您如何生成PDF。但这是提供带有目标属性的链接的最简单方式。”我认为这意味着我有

<a href="my.pdf" target="blank" 

<a href="my.php" target="blank" 

但是这对我不起作用,因为我应该发布我的表单以从pdf获取数据。

2)generate the pdf on newtab in dompdf

这是我以前实现过的(我没有会话),但它会弹出有关弹出窗口的警告。

2 个答案:

答案 0 :(得分:1)

问题在于你做事的顺序。您应该从用户事件中打开新窗口,例如单击按钮。如果页面加载事件上的脚本试图打开一个窗口,浏览器会认为它是一个不需要的弹出窗口,因为除了导航到该页面之外,用户还没有做任何事情。

对您有用的是在target="somewhere_new"标记中添加form属性。这样,浏览器就会打开一个新选项卡,因为没有带name="somewhere_new"属性的frame / iframe,你不需要在服务器端做任何特殊操作,只需按照之前的方式处理数据{ {1}}最后

答案 1 :(得分:1)

您可以执行以下操作:

 <button type="submit" formtarget="_blank">Submit to a new window</button>

formtarget =“_ blank”属性将打开新标签。

希望它会对你有所帮助!