1

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

我有带有tinymce的textarea,用户在其中编写他的文本。然后有一个按钮“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)使用 dompdf 在新选项卡中打开 PDF

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

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

或者

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

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

2)在 dompdf 的 newtab 上生成 pdf

这是我之前实现的(我在没有会话的情况下完成了它),但它会产生关于弹出窗口的警告。

4

2 回答 2

3

您可以简单地执行以下操作:

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

formtarget="_blank" 属性将打开新标签。

希望对您有所帮助!

于 2017-08-29T06:22:04.783 回答
1

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

对您有用的是向您的标签添加一个target="somewhere_new"属性。form这样,浏览器将打开一个新选项卡,因为没有带有name="somewhere_new"属性的框架/iframe,并且您不必在服务器端执行任何特殊操作,只需在$dompdf->stream('document.pdf',array('Attachment'=>0));最后使用之前处理数据即可

于 2013-07-03T21:43:49.393 回答