Задать вопрос
@saharok13
начинающий программист

Как данные из формы PHP заполнить готовый шаблон в pdf?

Человек заполняет форму на сайте и эта информация должна генерироваться в готовый pdf, word шаблон, для того чтобы пользователь не заполнял вручную 10 бланков с большинством одинаковых данных. Я так поняла есть библиотеки PHP для этого, но они создают новый pdf шаблон, а мне нужно чтобы в готовый, в котором все уже есть. Скорее всего нужно в pdf или word обозначить поля переменными к примеру ${name} Но я не знаю как это осуществить. Помогите, гугл не может мне помочь в моей ситуации
  • Вопрос задан
  • 748 просмотров
Подписаться 3 Средний 6 комментариев
Пригласить эксперта
Ответы на вопрос 3
@iFunction
PHP
Для word есть PHPWord Templates processing
https://phpword.readthedocs.io/en/latest/templates...
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Pdf легче всего отрендерить из html: https://wkhtmltopdf.org/
Ответ написан
@MikhedValery
//mPDF v 8.1.6
require_once "../vendor/autoload.php";
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];

$mpdf = new \Mpdf\Mpdf([
'format' => 'A4',
'margin_left' => 10,
'margin_right' => 6,
'margin_top' => 6,
'margin_bottom' => 6,
'margin_header' => 0,
'margin_footer' => 0,
'fontDir' => $fontDirs,
'fontdata' => $fontData + [ // lowercase letters only in font key
'tahoma' => [
'R' => 'tahoma.ttf',
'I' => 'tahoma.ttf',
//'B' => 'tahomabd.ttf',
//'BI' => 'tahoma.ttf'
],
],
//'default_font' => 'tahoma'
]);
.....
//PDF
//Кодировка | Формат | Размер шрифта | Шрифт
//Отступы: слева | справа | сверху | снизу | шапка | подвал
$mpdf->charset_in = 'utf-8';

//шаблон html + css
//в шаблоне {field1}...{fieldn}
//в массиве данных $vars['field1'] ... $vars['fieldn']
$templatez = "../../shablon/blank.html";
$stylesheetz = "../../shablon/blank.css";

for ($index = 0; $index < count($vars); $index++) {
$var = current($vars);
$templated = str_replace("{" . key($vars) . "}", $var, $templated);
next($vars);
}

$mpdf->WriteHTML($stylesheetz, 1);
$mpdf->WriteHTML($templatez, 2);

$mpdf->Output('blank.pdf', 'I');
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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