【问题标题】:How to return a pdf object instead of saving using fpdf如何返回 pdf 对象而不是使用 fpdf 保存
【发布时间】:2014-10-14 13:32:53
【问题描述】:

我需要创建一个 pdf 文件并通过 POST 请求发送到服务器。 创建pdf,代码很简单

require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output("mypdf.pdf");

为了发布,我阅读了 pdf 文件

$file_contents = file_get_contents("mypdf.pdf");

有没有一种方法我不必先写入文件然后再从文件中读取? 一些方法

$file_contents = $pdf->Output();

【问题讨论】:

  • @lordkain 对不起,但这对我不起作用。在这个答案上,用户正在尝试显示它。而我试图以与从文件中读取时相同的格式获取它。你能告诉我该怎么做吗?谢谢。

标签: php pdf fpdf


【解决方案1】:

根据 fdf Output() 文档:

Output([string name, string dest])

名称

文件的名称。如果未指定,文档将被发送到名为 doc.pdf 的浏览器(目标 I)。

目的地

发送文档的目的地。它可以采用以下值之一:

  • I:将文件内联发送到浏览器。如果可用,则使用该插件。当一个人在生成pdf的链接上选择“保存为”选项时,使用名称给出的名称。
  • D:发送到浏览器并使用 name 指定的名称强制下载文件。
  • F: 使用 name 指定的名称保存到本地文件(可能包含路径)。
  • S:将文档作为字符串返回。名称被忽略。

因此,如果要将文件内容传递给变量,请使用:

$pdf_file_contents = $pdf->Output("","S");

【讨论】:

    【解决方案2】:

    如果我没有正确回答问题,您想要数据流吗?

    如果是这样,Output() 采用 2 个参数,name and destination。发送S 作为目标参数将返回pdf 数据的string

    所以,保留你的代码

    require('fpdf.php');
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Hello World!');
    $file_contents = $pdf->Output("mypdf.pdf","S");
    

    source

    【讨论】:

    • 我可以将它也用作 ajax 调用的返回值吗?
    • 有没有办法直接在 Azure 存储上创建这个 PDF?
    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 2020-06-29
    • 1970-01-01
    • 2011-01-13
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多