Wordpress:如何重定向到空白页面,以便内联/浏览器PDF创建工作


Wordpress: How to redirect to a blank page so inline/browser PDF creation will work?

我在Wordpress中使用mPDF。

我创建了一个wordpress模板,其中有以下代码:

echo '<form name="MyForm" method="post">';
echo '<input name="download" type="submit" value="Download PDF" />';
echo '</form>';   
if(isset($_POST['download'])) {  
    include('mpdf/mpdf.php');
    $mpdf=new mPDF();
    $mpdf->WriteHTML($my_html_stuff);
    $mpdf->Output('my_file.pdf', 'D');
} 

这是行不通的,因为 Wordpress 在 $mpdf->Output() 之前输出东西。在$mpdf->Output()之前,我需要一些空白的东西才能正常工作。

我正在考虑首先重定向到一个完全空白的页面,然后执行$mpdf->Output().关于如何最好地解决这个问题的任何建议?

看起来问题是您在尝试输出 PDF 之前输出表单。

尝试先输出 PDF,然后终止脚本:

if(isset($_POST['download'])) {  
    include('mpdf/mpdf.php');
    $mpdf=new mPDF();
    $mpdf->WriteHTML($my_html_stuff);
    $mpdf->Output('my_file.pdf', 'D');
    exit;
} 
echo '<form name="MyForm" method="post">';
echo '<input name="download" type="submit" value="Download PDF" />';
echo '</form>';

此外,请确保在表单处理器之前没有任何输出。如果这是主题中的模板,请不要调用get_header。最佳做法是将表单处理器从模板文件中取出。您可以将其放在主题的功能.php文件中,也可以将其作为插件实现。将后端处理与前端分开有助于避免此类情况。

相关文章: