Мне нужно создать 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();
Если я правильно понял вопрос, вы хотите поток данных?
Если так, 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");
За фдф Output()
документация:
Output([string name, string dest])
Название файла. Если не указан, документ будет отправлен в браузер (пункт назначения I) с именем doc.pdf.
Место назначения, куда отправить документ. Может принимать одно из следующих значений:
- Я: отправить файл в браузере. Плагин используется, если имеется. Имя, данное по имени, используется при выборе опции «Сохранить как» в ссылке, создающей PDF.
- D: отправить в браузер и принудительно загрузить файл с именем, указанным по имени.
- F: сохранить в локальный файл с именем, заданным именем (может включать путь).
- S: вернуть документ в виде строки. имя игнорируется.
Поэтому, если вы хотите передать содержимое файла в переменную, используйте:
$pdf_file_contents = $pdf->Output("","S");