3

我正在尝试在使用 fpdf 输出 pdf 时显示页面标题。

目前我只获得用于创建 pdf 的 .php 文件的路径。例如

www.mydomain/inc/pdf/php

如果我输出除 fpdf 代码以外的任何内容,例如

<title>This is my title</title>

或者

<title><? echo $title ?></title>

我收到这样的错误...

部分数据已输出,无法发送PDF

这是因为您显然只能在页面上输出 fpdf 数据。那么是否可以以某种方式与 fpdf 或与 fpdf 一起添加标题标签?

看到页面标题而不是我的 pdf.php 文件的路径会更好。

干杯

4

2 回答 2

5

FPDF 发送一个 PDF 文件,而不是 HTML。所以默认情况下,浏览器只会提示下载它,或者如果你有插件,它会在浏览器中打开它。就使用标题而言,PDF 查看器或 PDF 插件很可能会使用文档的文件名或标题作为页面的标题。( $pdf->SetTitle('FPDF tutorial');)

同样,FPDF 输出 PDF 而不是 HTML。如果您开始输出 HTML,然后尝试回显 PDF 内容,那将是乱码。PHP 也不允许您在输出 (HTML) 开始后修改标头,这会引发错误。

如果您将 PDF 存储在系统上或能够配置到 FPDF 模块的路由,则可以使用 HTML 和<object>标签将其包含在页面上,但这将是不同的设置,并且需要更多步骤。通过这样做,您可以添加所需的所有 HTML,并在页面上的小屏幕上显示 PDF。

于 2012-09-05T22:27:05.417 回答
3

pdf 文件不是 HTML 文件。Web 浏览器会显示一个标题,因为它会读取 HTML 代码并对其进行解析。

有时网络浏览器会因为外部插件而呈现 PDF 文件,因此,如果要呈现 HTML 代码和 PDF 文件,则必须学习一点 HTML 并使用框架或 iframe。

快速片段:

<html>
  <header>
    <title>Heya, I'm not a path!</title>
  </header>
  <body>
    <iframe src="Put here the path of the web/file you want to show"></iframe>
  </body>
</html>

如你所见,有一个 iframe 标签,iframe 就像一个盒子,里面加载了另一个网页,所以网络浏览器会渲染 HTML 代码(包括标题),然后渲染一个盒子,里面有另一个不同的网页( PDF 文件),您可以使用 css 配置 iframe 标签以适应 Web 浏览器大小。

于 2012-09-05T22:38:34.153 回答