我正在为我的项目使用fpdf库,我正在使用它来扩展其中一个drupal模块.这些线
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
Run Code Online (Sandbox Code Playgroud)
给我一个错误:FPDF错误:有些数据已经输出,无法发送PDF
我尝试在drupal区域名称test.php之外的单独文件中创建它,并且当它被查看时它工作.这里的任何人都知道为什么这不起作用?或者这里的任何人都可以指出一个正确的pdf库,我可以在drupal中使用它来查看HTML格式的PDF格式.
Gor*_*ley 43
为了使fpdf正常工作,除了fpdf生成之外,根本不能有任何输出.例如,这将起作用:
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Run Code Online (Sandbox Code Playgroud)
虽然这不会(注意开始<?标记之前的前导空格)
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Run Code Online (Sandbox Code Playgroud)
此外,这也不会起作用(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();
?>
Run Code Online (Sandbox Code Playgroud)
我不确定drupal方面的东西,但我知道绝对零非fpdf输出是fpdf工作的要求.
小智 22
添加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();
?>
Run Code Online (Sandbox Code Playgroud)
小智 18
给我一个错误如下:
FPDF error: Some data has already been output, can't send PDF
过来这个错误:转到fpdf.php那里,转到第996行
function Output($name='', $dest='')
Run Code Online (Sandbox Code Playgroud)
之后进行如下更改:
function Output($name='', $dest='') {
ob_clean(); //Output PDF to so
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试在没有选项的情况下保存文件:“BOM 注释”,即在 Adobe Dreamweaver 中,您将文件另存为...,取消选中文件名下方的“包含 Unicode 签名(BOM) ”框。
在 Notepad++ 上,您应该选择菜单:Encoding,“ Encode in UTF-8 without BOM ”。
并将其设置为您创建的其他文件的默认值,它会在将来为您省去很多麻烦。
| 归档时间: |
|
| 查看次数: |
121404 次 |
| 最近记录: |