FPDF错误:有些数据已经输出,不能发送PDF
我正在为我的项目使用fpdf库,并使用它来扩展drupal模块之一。 这些线
$pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output();
给我一个错误: FPDF错误:一些数据已经输出,不能发送PDF
我试图创build一个单独的文件之外的drupal区域名称test.php,并在查看它的工作。 这里的任何人都知道为什么这不起作用? 或者任何人都可以指向我一个正确的PDF库,我可以用在Drupal中查看HTML格式为PDF格式。
为了使fpdf正常工作,除了fpdf生成外,根本就没有任何输出。 例如,这将工作:
<?php $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
虽然这不会(注意开始<?
标签之前的空格)
<?php $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
此外,这也不会工作( echo
将打破它):
<?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工作的要求。
给我一个错误如下:
FPDF error: Some data has already been output, can't send PDF
来过来这个错误:转到fpdf.php
在那,转到行号996
function Output($name='', $dest='')
之后进行如下更改:
function Output($name='', $dest='') { ob_clean(); //Output PDF to so
添加ob_start ();
在顶部和最后添加ob_end_flush();
<?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(); ?>
尝试保存没有“BOM注释”选项的文件,即在Adobe Dreamweaver中,将文件另存为…, 取消选中 “ 包括Unicode签名(BOM) ”文件名下方的框。
在Notepad ++上,您应该select菜单: 编码 ,“ 使用UTF-8 编码 , 无BOM ”。
并将其设为您创build的其他文件的默认设置,将来您将可以省去很多麻烦。
你好,你有一个会议标题在页面的顶部。 或任何包括如果你有尝试添加这个代码在页面顶部它应该工作正常。
<? while (ob_get_level()) ob_end_clean(); header("Content-Encoding: None", true); ?>
欢呼声:-)
FPDF错误消息将指向您正在发送一些内容的PHP线路。
如果你没有提示什么文件和行发送一些内容,你可能有一个编码不匹配在你的包含/需要文件。
为了我
-
fpdf.php
是ANSI编码的, - 我的
pdf-generator.php
是UTF-8编码的 - 我的数据库连接inlude是UTF-8编码(这种UTF-8编码确实会引起FPDF错误,我不得不将它切换回ANSI)
在我的情况下,我已经设置:
ini_set('display_errors', 'on'); error_reporting(E_ALL | E_STRICT);
当我提出生成报告的请求时,浏览器中显示了一些警告(如使用弃用函数)。
off
display_errors
选项,报告已成功生成。
如果您是PDF生成之前的代码输出通知/警告,请尝试closures它们。 error_reporting(0)
。 然后处理那里的警告
你需要打电话给图书馆
require('fpdf.php');
<?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'¡Hola, Mundo!'); $pdf->Output(); ?>
第一步检查文件夹的权限第二步把这个
ob_start();
在线之前
$pdf->Output();
我用了以下,它为我工作
require_once ('pdf/fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(F,'/var/www/html/PATH/filename.pdf'); ob_end_flush();