如果客户希望在创建业务单位时生成和下载报告,则会有一个客户点击的流程。该报告将采用pdf格式。
目前我正在使用Codeigniter,我使用FPDF生成pdf文件。
pdf在请求时打开很好。但
问题: 1)PDF在同一选项卡中打开。我想在新标签中打开pdf,我有点想。 如果是pdf链接,“_ target”将帮助我在新标签页中打开pdf。但这里是服务器端生成的pdf。因此“_target”将无效,所以我正在寻找替代方案。
2)生成pdf后,不会读取下一行代码。执行实际上在这里停止。我想知道即使在输出pdf文件后我仍然可以继续这个过程。
实施例
$pdf->Output($exampleArray, 'D'); // exampleArray carries all data to PDF and helps output the pdf and D forces FPDF to download PDF rather than opening it. Instead of 'D' I can use 'I' but that will output the pdf in same tab.
$this->continueNextFunction(); // This function should run and open the views in it.
从上面的示例中,我希望看到PDF下载或“在新标签页中打开”,然后执行下一行,帮助页面重定向并打开所需的视图。
如果需要进一步说明,请告诉我。我尽力解释这里的情况。我在谷歌上看过这个,但我还没有找到任何解决方案。
对此有任何帮助将不胜感激。
答案 0 :(得分:2)
您应该在运行FPDF
代码之前创建新标签页。
备选您可以将pdf保存为文件,并使用正确的标题打开新选项卡。 看到这个问题:Show a PDF files in users browser via PHP/Perl
代码按设计终止,除非您将其保存为文件或字符串。
$pdf->Output($filename,'F');
如果您可以在输出之后详细说明您想要做什么,我可以提供更多帮助。
答案 1 :(得分:2)
以下是我们正在做的事情和一些想法:
这意味着如果您想继续执行代码,您可能需要将生成此PDF的逻辑分离到新页面中,使用target =“_ new”在新选项卡中打开它,就像您一样思考,然后提示用户下载,或者在这种情况下,您可以使用“I”值并在浏览器中打开它。
来自fpdf.php的输出()[第999-1036行]:
switch($dest)
{
case 'I':
// Send to standard output
$this->_checkoutput();
if(PHP_SAPI!='cli')
{
// We send to a browser
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
}
echo $this->buffer;
break;
case 'D':
// Download file
$this->_checkoutput();
header('Content-Type: application/x-download');
header('Content-Disposition: attachment; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
echo $this->buffer;
break;
case 'F':
// Save to local file
$f = fopen($name,'wb');
if(!$f)
$this->Error('Unable to create output file: '.$name);
fwrite($f,$this->buffer,strlen($this->buffer));
fclose($f);
break;
case 'S':
// Return as a string
return $this->buffer;
default:
$this->Error('Incorrect output destination: '.$dest);
}