在 dompdf 的 newtab 上生成 pdf

Posted

技术标签:

【中文标题】在 dompdf 的 newtab 上生成 pdf【英文标题】:generate the pdf on newtab in dompdf 【发布时间】:2013-07-02 07:10:01 【问题描述】:

有没有办法将 dompdf 创建的 pdf 打开到新的浏览器选项卡? 我试过这些。 当我单击生成按钮(现在是提交按钮)时,控制器操作 下面给出

控制器:

function generatePdf()

  require_once("dompdf/dompdf_config.inc.php");
  $data="this is a sample pdf";
  $dompdf = new DOMPDF();
  $html = $this->load->view('report/modelpdfview', $data, true);
  $dompdf->load_html($html);
  $dompdf->render();
  $dompdf->stream("mypdffile.pdf",array('Attachment'=>0));
  $this->load->view('view/mysiteView', $data);

但它在同一位置打开,导致用户将失去对该站点的控制。 (我知道浏览器中有返回按钮)

【问题讨论】:

为什么不在指向您的 pdf 的链接中添加 target="_blank"? 目前我正在这样做。但它需要服务器空间来存储文件。我只想通过编程生成一个pdf文件并将其显示给浏览器(这也可以)。无需存储文件。 【参考方案1】:

创建一个 PHP 脚本来创建您想要显示的 PDF 内容。如果合适,可以使用一些命令行参数来控制创建的内容,或者您​​可以将内容存储在会话变量中。我们就叫它makemypdf.php

javascript 中,打开一个弹出窗口,其中包含 url:

window.open(makemypdf.php, "mypdfwindow","...other window specs");

新窗口将包含您的 PDF 文件,而您的现有页面仍处于打开状态。

你的问题在内容上有点轻,所以你必须自己填写一些机制。

在您的主页中:

session_start();
$_SESSION['pdfcontent'][0] = "First PDF content";
$_SESSION['pdfcontent'][1] = "Second PDF content";

你的开窗器变成:

window.open("makemypdf.php?pdfcontent=1", "mypdfwindow","...other window specs");

makemypdf.php

session_start();
$pdfcontent = $_SESSION['pdfcontent'][$_GET['pdfcontent'];
// render your PDF document here

【讨论】:

对不起,我不明白你。如何在windows url中打开会话变量。你能举个例子吗?我还添加了更多内容。请看...

以上是关于在 dompdf 的 newtab 上生成 pdf的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 FPDI 在页面上生成多个 pdf

Mpdf 不在移动设备上生成 PDF。在台式机上完美运行

freemark在linux上生成word以后,怎么转pdf

DOMPDF 更改 html 元素的位置

DomPDF 显示除最后一页外的数据表

dompdf:模板和 $_SESSION 变量