fpdf创建文件后无法看到标题

时间:2015-02-17 08:44:49

标签: wordpress pdf fpdf

我正在开发一个wordpress插件,

我想创建一个pdf文件,为此,我使用了fpdf

通过使用此代码,我可以生成pdf并将其保存到服务器

require('fpdf/html_table.php');
    $pdf=new PDF_HTML();
    $questions = $_POST['question'];
    $count = count($questions);
    $quests = "";
    $pdf->SetFont('times','',12);
    $pdf->SetTextColor(50,60,100);

    $pdf->AddPage('P');
    $pdf->SetDisplayMode(real,'default');

    $pdf->SetFontSize(12);

    for($i=1;$i<=$count;$i++)
    {
        $qus_id = $questions[$i-1];
        $get_q = "select * from `SelleXam_question` where `id`='$qus_id'";
        $get_q =  $wpdb->get_results($get_q);
        $questf = "Quest $i : ".$get_q[0]->question;
        $pdf->Cell(0, 10, $questf."\n");
        $pdf->Ln();
    }


        $dir='C:/wamp/www/';
        $filename= "filename.pdf";
        $pdf ->Output($dir.$filename);
        echo "Save PDF in folder";

但是当它保存并显示消息Save PDF in Folder时。我是unable to see the header part of the wordpress website.

或者当我使用

$pdf->Output($filename,'D');

然后有什么办法可以在链接中显示文件

1 个答案:

答案 0 :(得分:0)

在开发Wordpress时,您不能随时echo发短信。 Wordpress有一整套actions,它逐步生成呈现给浏览器的输出。如果你在不适当的时候生成输出,你将搞乱Wordpress在正确的时间生成输出的能力。

如果我正在开发此功能,我会在filter上将此功能称为the_content。您的输出代码将更改为以下内容:

function append_pdf_to_content($content) {
    //Your existing code

    $pdf->Output($filename, 'F');
    $pdf_link = "<br><a href='$filename' download>Download PDF</a>"
    return $content . $pdf_link;
}

add_filter('the_content', 'append_pdf_to_content');

如果您想使用D选项,则需要使用调用下载的php将您的用户链接到单独的target='_blank'页面。否则,PDFs标题将覆盖Wordpress尝试发送的任何标题。

顺便说一句,你也可能想看一下mPDF,它是fpdf的一个分支,并且仍在积极开发中。