【问题标题】:Output() in fpdf does not workfpdf中的输出()不起作用
【发布时间】:2012-09-22 12:00:57
【问题描述】:

我正在尝试生成一个包含饼图的 pdf 文件。由于我有以下错误:

FPDF错误:部分数据已经输出,无法发送PDF文件

在战斗了大约一个小时后,我发现它可以很好地与:Output("Report.pdf",'F'); 但显示错误消息:Output( );.

所以我被困在这里......有人可以帮助我解决这种情况吗?

【问题讨论】:

  • 您在调用 Output() 之前向浏览器发送了一些数据,这就是问题所在,您可以将您的 php 脚本粘贴到 pastebin.com 并将链接粘贴到此处,以便我们查看您在哪里错误。
  • 它不仅与回显有关,还与输出缓冲区有关。如果缓冲区的内容包含 UTF-8 BOM 和/或空格以外的字符,它将抛出确切的错误。
  • @itachi-实际上它包含一个饼图..所以它可能是问题..??

标签: php pdf fpdf


【解决方案1】:

尝试将以下内容放在 php 文件的开头:

error_reporting(E_ERROR | E_PARSE);

这将避免输出E_WARNING 错误,而无需查看代码以进行正确修复,这可能会有所帮助。

【讨论】:

  • @itachi-这是脚本pastie.org/private/cyyml88ju3ewbu12jxumq..Now你能告诉我错误是什么吗...
  • 所有变量,如 $arraygrabber,$num_users 生成正确的纯字母值......我怀疑 PieChart 功能。
  • 我没有发现该代码有任何错误,所以请确保“
  • @Nelson-我先检查了!!如果你能观察到它在 _checkoutput() 中显示错误; fpdf.php 中的函数,我认为它不仅包含 UTF-8 BOM 和/或空格。但是解决方案是什么?!!
  • 哦,我明白了,但这不是真正的错误,这只是 FPDF 告诉您它检测到已发送的输出..您必须检查该输出的生成位置
【解决方案2】:

你已经回显了一些东西,所以你的 httpresponse 已经有一个标题,上面写着“我是一个 html 文本响应”,你不能修改它来说你是 也是一个 pdf 响应。您必须选择仅输出 html(因此您提供文件名作为输出函数的参数,以便生成访问 pdf 的链接)或通过删除任何 echo、printf 或外部仅输出 pdf

【讨论】:

  • @artragis-我的脚本中既没有'echo'也没有'print'语句..我已经知道了..你能提出其他建议吗..?感谢回复
  • 所以如果你没有回声,那么你在脚本中忘记了 ?> 之后的寄生虫“新行”字符。
【解决方案3】:

Output

输出接受第二个参数

I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
D: send to the browser and force a file download with the name given by name.
F: save to a local file with the name given by name (may include a path).
S: return the document as a string. name is ignored.

【讨论】:

  • 是的,我知道。我想用 'I' 来做,默认情况下是 Output();。但它显示错误..但是输出(“”,'F');.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多