【问题标题】:unable to see header after fpdf creates filefpdf 创建文件后看不到标题
【发布时间】:2015-04-17 22:25:04
【问题描述】:

我正在开发一个 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');

那么有什么方法可以在链接中显示文件

【问题讨论】:

    标签: wordpress pdf fpdf


    【解决方案1】:

    当您为 Wordpress 开发时,您不能在任何时候都只使用 echo 文本。 Wordpress 有一系列的actions,它会逐步生成呈现给浏览器的输出。如果您在不适当的时间生成输出,您将破坏 Wordpress 在正确时间生成输出的能力。

    如果我正在开发这个,我会在the_content 上将此函数称为filter。你的输出代码会变成这样:

    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 选项,您需要使用调用下载的target='_blank' 将您的用户链接到单独的php 页面。否则,PDF 标题将覆盖 Wordpress 尝试发送的任何标题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多