Как вернуть объект PDF вместо сохранения с помощью fpdf

Мне нужно создать 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();

1

Решение

Если я правильно понял вопрос, вы хотите поток данных?

Если так, 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");

источник

3

Другие решения

За фдф Output() документация:

Output([string name, string dest])

название

Название файла. Если не указан, документ будет отправлен в браузер (пункт назначения I) с именем doc.pdf.

Dest

Место назначения, куда отправить документ. Может принимать одно из следующих значений:

  • Я: отправить файл в браузере. Плагин используется, если имеется. Имя, данное по имени, используется при выборе опции «Сохранить как» в ссылке, создающей PDF.
  • D: отправить в браузер и принудительно загрузить файл с именем, указанным по имени.
  • F: сохранить в локальный файл с именем, заданным именем (может включать путь).
  • S: вернуть документ в виде строки. имя игнорируется.

Поэтому, если вы хотите передать содержимое файла в переменную, используйте:

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

По вопросам рекламы [email protected]