无法传输pdf:使用wordpress时已发送的标头

问题描述 投票:0回答:1

我正在尝试在我的插件上使用dompdf创建一个保存为pdf功能,但我仍然得到Unable to stream pdf: headers already sent

我做了一些研究,解决方案不起作用。我也使用exit()作为答案之一,但它不起作用。

这是我目前的代码

include(WPtest_PLUGIN_PATH.'/admin/includes/dompdf/lib/html5lib/Parser.php');
include(WPtest_PLUGIN_PATH.'/admin/includes/dompdf/lib/php-font-lib/src/FontLib/Autoloader.php');
include(WPtest_PLUGIN_PATH.'/admin/includes/dompdf/lib/php-svg-lib/src/autoload.php');
include(WPtest_PLUGIN_PATH.'/admin/includes/dompdf/src/Autoloader.php');
Dompdf\Autoloader::register();

use Dompdf\Dompdf;

class WPtest_Save_PDF{

    //use Dompdf\Dompdf;
    function __construct(){
        add_shortcode( 'save_me',array($this,'print_callback'));
    }       


    function print_callback(){

        if(isset($_GET['print']))
        {


            $dompdf = new Dompdf();

            $dompdf->loadHtml("test");

            // (Optional) Setup the paper size and orientation
            $dompdf->setPaper('A4', 'landscape');

            // Render the HTML as PDF
            $dompdf->render();

            // Output the generated PDF to Browser
            $dompdf->stream();

            exit();
        }

    }
}

new WPtest_Save_PDF;
php wordpress dompdf
1个回答
1
投票

你的wordpress已经向浏览器发送了一些数据,当发送任何数据时,也会发送标题。

我建议你使用缓冲区(ob_start,ob_end_flush,...),但它是通用的,我不知道它是否适用于你的情况,我不是真正使用wordpress结构。

© www.soinside.com 2019 - 2024. All rights reserved.