Генерация PDF из данных указанных в форме

Menro

web, seo, email, hack
Регистрация
27 Янв 2008
Сообщения
689
Реакции
138
Всем привет!
В PHP разбираюсь, но плохо, что-то принципиально понять не могу.
Поэтому прощу Вашей помощи.

Смысл такой, мне нужно сделать форму, где человек условно указывает имя, фамилию и т.д, нажимает на кнопку и ему формируется PDF документ.
Нашёл я библиотеку tcpdf - с ней всё понятно.


В примерах, которые идут в составе с библиотекой, есть вот такой вывод:

Код:
$pdf->AddPage();
$s= '<h1>Привет мир!</h1><p>Это тестовый пример!</p>';
$pdf->writeHTML($s, true, false, true, false, '');
$pdf->Output('test.pdf', 'I');

Теперь собственно сам вопрос: как мне передать поля из формы в $s??

Вот предположим моя форма:

Код:
    <form action="action.php" method="post" enctype="multipart/form-data">
        Ваше имя: <input type="text" name="name" /><br />
        Ваша фамилия: <input type="text" name="surname" /><br />
        Ваш телефон: <input type="text" name="phone" /><br />
        <input type="submit" value="Отправить форму" />
    </form>

Вот PHP-код формы:

Код:
//Принимаем постовые данные
$name=$_POST['name'];
$surname=$_POST['surname'];
$phone=$_POST['phone'];

Вот код полностью, который формирует PDF:

Код:
<?
require_once('/tcpdf/examples/lang/eng.php');
require_once('/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// устанавливаем описание документа
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Test');
$pdf->SetTitle('Test');
$pdf->SetSubject('Test');
$pdf->SetKeywords('Test');
// выключаем заголовки, т.к. они нам не нужны
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// устанавливаем поля
$pdf->SetMargins(10,10,10,10);
// автоперенос на новую страницу
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// пропорционирование картинок
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// языковые настройки
$pdf->setLanguageArray($l);
// Устанавливаем шрифт
$pdf->setFontSubsetting(true);
$pdf->SetFont('dejavusans', '', 12, '', true);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// Вывод данных из HTML в PDF
$pdf->AddPage();
$s= '<h1>Привет мир!</h1><p>Это тестовый пример!</p>';
$pdf->writeHTML($s, true, false, true, false, '');
$pdf->Output('test.pdf', 'I');
?>

Как всё это связать?
Я вот не пойму, это два файла должно быть или один даже.
Буду очень признателен!
 
Всем привет!
В PHP разбираюсь, но плохо, что-то принципиально понять не могу.
Поэтому прощу Вашей помощи.

Смысл такой, мне нужно сделать форму, где человек условно указывает имя, фамилию и т.д, нажимает на кнопку и ему формируется PDF документ.
Нашёл я библиотеку tcpdf - с ней всё понятно.


В примерах, которые идут в составе с библиотекой, есть вот такой вывод:

Код:
$pdf->AddPage();
$s= '<h1>Привет мир!</h1><p>Это тестовый пример!</p>';
$pdf->writeHTML($s, true, false, true, false, '');
$pdf->Output('test.pdf', 'I');

Теперь собственно сам вопрос: как мне передать поля из формы в $s??

Вот предположим моя форма:

Код:
    <form action="action.php" method="post" enctype="multipart/form-data">
        Ваше имя: <input type="text" name="name" /><br />
        Ваша фамилия: <input type="text" name="surname" /><br />
        Ваш телефон: <input type="text" name="phone" /><br />
        <input type="submit" value="Отправить форму" />
    </form>

Вот PHP-код формы:

Код:
//Принимаем постовые данные
$name=$_POST['name'];
$surname=$_POST['surname'];
$phone=$_POST['phone'];

Вот код полностью, который формирует PDF:

Код:
<?
require_once('/tcpdf/examples/lang/eng.php');
require_once('/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// устанавливаем описание документа
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Test');
$pdf->SetTitle('Test');
$pdf->SetSubject('Test');
$pdf->SetKeywords('Test');
// выключаем заголовки, т.к. они нам не нужны
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// устанавливаем поля
$pdf->SetMargins(10,10,10,10);
// автоперенос на новую страницу
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// пропорционирование картинок
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// языковые настройки
$pdf->setLanguageArray($l);
// Устанавливаем шрифт
$pdf->setFontSubsetting(true);
$pdf->SetFont('dejavusans', '', 12, '', true);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// Вывод данных из HTML в PDF
$pdf->AddPage();
$s= '<h1>Привет мир!</h1><p>Это тестовый пример!</p>';
$pdf->writeHTML($s, true, false, true, false, '');
$pdf->Output('test.pdf', 'I');
?>

Как всё это связать?
Я вот не пойму, это два файла должно быть или один даже.
Буду очень признателен!

Надеюсь, что ты это делаешь чисто для себя, а не кому-то на заказ...

Как связать? Берешь и вяжешь. Подставляешь данные из своей формы в HTML шаблон и формируешь PDF-ку.
А если сам не можешь - лучше заплати тому, кто может. Либо разбирайся.
 
Если бы мне нужны были платные доработки, я бы обратился к тому кто их делает. Я обращаюсь сюда, потому как хочу понять принцип работы.
Если быть более конкретным то как выполнить файл формирующий pdf передав туда переменные формы.
 
Если бы мне нужны были платные доработки, я бы обратился к тому кто их делает. Я обращаюсь сюда, потому как хочу понять принцип работы.
Если быть более конкретным то как выполнить файл формирующий pdf передав туда переменные формы.
Код:
$s= "<h1>Привет $name!</h1>";
Так понятно? Синтаксис сам уточнишь, ибо я не помню, как в PHP переменные в строки добавлять.
 
Код:
$s= "<h1>Привет $name!</h1>";
Так понятно? Синтаксис сам уточнишь, ибо я не помню, как в PHP переменные в строки добавлять.
Это тоже понимаю.
Не понимаю как сформировать документ после отправки формы.
 
папка в которой выполняеш скрипт должна иметь права на запись или укажи путь куда сохранять
$pdf->Output('test.pdf', 'I'); // тут ты и сохраняеш файл
Чтобы понять принцип нужно читать документацию. А если конкретная проблема, или что то не получается задавай конкретный вопрос
*документация- Для просмотра ссылки Войди или Зарегистрируйся

* конкретно про сохранение и тд Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху