Я создаю страницу, на которой пользователь может настроить PDF, после создания PDF я хочу отобразить предварительный просмотр сгенерированного PDF и позволить пользователю загрузить или распечатать его. У меня правильно работает PHP для генерации PDF, и теперь я перехожу к использованию вызова AJAX для приема входных данных формы для динамически генерируемого текста. При отправке я хотел бы, чтобы PDF-файл отображался в div, чтобы пользователь мог просмотреть PDF-файл перед его печатью / сохранением.
Вот мой PHP (generate_pdf.php
) для генерации PDF:
<?php
use setasign\Fpdi\Fpdi;
require_once('fpdf.php');
require_once('autoload.php');
// initiate FPDI
$pdf = new Fpdi();
// add a page
$pdf->AddPage();
// set the source file
$pdf->setSourceFile('template.pdf');
// import page 1
$tplIdx = $pdf->importPage(1);
$size = $pdf->getTemplateSize($tplIdx);
$orientation = $size['width'] > $size['height'] ? 'L' : 'P';
$mid_x = $size['width']/2;
$company = $_POST['company'];
$pdf->useTemplate($tplIdx, null, null, $size['width'], $size['height'],FALSE);
// now write some text above the imported page
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(0, 0, 0);
$pdf->SetXY($mid_x - ($pdf->GetStringWidth($company) / 2), 110);
$pdf->Write(0, $company);
$pdf->Output();
и вот мой HTML / JavaScript для вызова AJAX:
<form method="post">
<input name="company" type="text" />
<input type="submit" />
</form>
<div id="pdf"></div>
<script>
var $form = $('form'),
form_data;
$form.submit(function(e) {
e.preventDefault();
form_data = $(this).serialize();
$.ajax({
type: 'POST',
url: 'generate_pdf.php',
data: form_data
}).done(function(response) {
$('#pdf').append(response);
});
});
</script>
К сожалению, это просто создает кучу бреда, я предполагаю, что это как-то связано с заголовком content-type
?