首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >FPDF错误:某些数据已输出,无法发送PDF

FPDF错误:某些数据已输出,无法发送PDF
EN

Stack Overflow用户
提问于 2012-02-28 10:42:05
回答 15查看 157.1K关注 0票数 32

我在我的项目中使用了fpdf库,并使用它来扩展其中一个drupal模块。这几行

代码语言:javascript
复制
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();

给我一个错误:PDF错误:一些数据已经被输出,无法发送

我尝试在drupal区域之外的一个单独的文件中创建这个文件,文件名为test.php,在查看时它可以正常工作。这里有人知道为什么这个不起作用吗?或者这里的任何人都可以给我一个合适的pdf库,我可以在drupal中使用它来查看HTML到PDF格式。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-02-28 10:59:59

要让fpdf正常工作,除了fpdf生成的内容之外,根本不能有任何输出。例如,这将会起作用:

代码语言:javascript
复制
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

而这不会(注意开始<?标记之前的前导空格)

代码语言:javascript
复制
 <?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

此外,这也不会起作用( echo会破坏它):

代码语言:javascript
复制
<?php
echo "About to create pdf";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

我不确定drupal方面的事情,但我知道绝对零的非fpdf输出是fpdf工作的必要条件。

票数 50
EN

Stack Overflow用户

发布于 2015-06-18 14:28:02

在顶部添加ob_start ();,在末尾添加ob_end_flush();

代码语言:javascript
复制
<?php
    ob_start();
    require('fpdf.php');
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Hello World!');
    $pdf->Output();
    ob_end_flush(); 
?>
票数 35
EN

Stack Overflow用户

发布于 2012-10-19 18:46:35

给我一个错误,如下所示:

FPDF error: Some data has already been output, can't send PDF

要克服这个错误:转到其中的fpdf.php,转到996行

代码语言:javascript
复制
function Output($name='', $dest='')

在此之后,进行如下更改:

代码语言:javascript
复制
function Output($name='', $dest='') {   
    ob_clean();     //Output PDF to so
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9475686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档