【问题标题】:open dompdf in new tab taken data from given page在新选项卡中打开 dompdf 从给定页面获取数据
【发布时间】:2013-07-03 21:39:09
【问题描述】:

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

我有带有 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

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

【问题讨论】:

    标签: php css dompdf


    【解决方案1】:

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

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

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

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 仅供参考,目标不需要是名称。您也可以使用“_blank”关键字。
      • @BrianS 这样,如果用户要提交相同的表单两次,浏览器将重用新选项卡,这通常是需要的。我应该更清楚。对不起!
      • 同意,但想确保包含该信息。我做了类似的事情,但就我而言,我不想想重用窗口。
      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 2011-04-23
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2017-01-05
      相关资源
      最近更新 更多