我需要创建一个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");
对于POSTing,我通过
阅读pdf文件$file_contents = file_get_contents("mypdf.pdf");
有没有办法让我不必首先写入文件然后从中回读? 一些做法
$file_contents = $pdf->Output();
答案 0 :(得分:7)
如果我正确地得到了问题,你想要数据流吗?
如果是,Output()
需要2个参数,name and destination
。将S
作为目标参数发送将返回string
的pdf数据。
所以,保留你的代码
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");
答案 1 :(得分:2)
每个fdf Output()
文档:
Output([string name, string dest])
文件的名称。如果未指定,则文档将以名称doc.pdf发送到浏览器(目标I)。
目的地发送文件的位置。它可以采用以下值之一:
- I:将文件内联发送到浏览器。如果可用,则使用插件。当选择"另存为"时,使用名称给出的名称。生成PDF的链接上的选项。
- D:发送到浏览器并使用名称给出的名称强制下载文件。
- F:保存到名称给出的名称的本地文件(可能包含路径)。
- S:将文档作为字符串返回。名称被忽略。
因此,如果要将文件内容传递给变量,请使用:
$pdf_file_contents = $pdf->Output("","S");