Задать вопрос
leni_m
@leni_m
ЧупаКобрус

Как открыть pdf по кнопке?

есть файл pdf.php, который открывает pdf, сгенерированный из html кода.
Хочу чтобы при клике на кнопку отправлялись данные на этот файл и открывался pdf в зависимости от пришедших данных.
Попытался написать jquery:
$('#button').on('click', function () {
        var params = {...};
        $.post('pdf.php', params);
    });

И данные уходят(статус 200), но не открывается pdf, хотя если открыть в браузере pdf.php то открывается pdf файл.
Вот содержимое pdf.php:
<?php

ob_start();
include 'pdfInvoice.php';
$html = ob_get_contents();
ob_end_clean();

include("mpdf60/mpdf.php");

$mpdf = new mPDF('utf-8', 'A4', '12', '', 10, 10, 7, 7, 10, 10);

$stylesheet = file_get_contents('css/invoice.css'); //подключаем css
$mpdf->WriteHTML($stylesheet, 1);

$mpdf->WriteHTML($html, 2); //формируем pdf
$mpdf->Output('invoice.pdf', 'I');


А в файле pdfInvoice.php находится таблица на html
  • Вопрос задан
  • 3056 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
@BorisKorobkov Куратор тега PHP
Web developer
При аяксе скачивания не будет.
button/ajax замените на обычный <a href="pdf.php?...">Скачать pdf</a>

Update: ... или на
<form action="pdf.php?..."><input type="submit" value="Скачать pdf"></form>
Ответ написан
Adamos
@Adamos
Во-первых, нужен не ajax-запрос, а простая ссылка на файл.
Во-вторых, не вижу в коде заголовков.
header("Content-Type: application/pdf");
header("Content-Disposition:inline;filename=\"имя_файла.pdf\"");
header("Content-Transfer-Encoding: binary");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы