我正在开发一个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');
然后有什么办法可以在链接中显示文件
答案 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尝试发送的任何标题。