Недавно установлен wkhtmltopdf. Попытка захватить всю страницу в текущем состоянии, однако, ниже метод, похоже, переходит к исходному состоянию этой страницы без всех введенных пользователем полей ввода.
PHP
shell_exec('wkhtmltopdf http://localhost/www/bolt/invoice.php invoice.pdf');
Мне было интересно, знает ли кто-нибудь о реализации wkhtmltopdf
который фиксирует текущее состояние страницы, включая любой текст, введенный в текстовые поля?
Я ценю любые предложения.
Спасибо заранее!
wkhtmltopdf попадает на страницу независимо от текущей сессии просмотра. Если вы так нажмете, вы поймете, что увидит кто-нибудь, когда они впервые отправятся на вашу страницу. Вероятно, вы хотите сохранить текущую страницу с помощью выходного буфера, а затем запустите wkhtmltopdf на сохраненной странице. Вот пример кода:
sub.php
<?php $documentTemplate = file_get_contents ("template.html"); foreach ($_POST as $key => $postVar) { $documentTemplate = preg_replace ("/name=\"$key\"/", "value=\"$postVar\"", $documentTemplate); } file_put_contents ("out.html", $documentTemplate); shell_exec ("wkhtmltopdf out.html test.pdf"); ?>
template.php
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> </head> <body> <h1>This is a page</h1> <form action="sub.php" method="post" accept-charset="utf-8"> My Test Field: <input type="text" name="test_field" value=""> <input type="submit" value = "submit"> </form> </body> </html>
Вероятно, в конечном итоге у вас должен быть какой-то базовый шаблон, который будут использовать обе страницы, и у вас есть некоторые маркеры, такие как value = '% valueOfThisVariable%' в ваших полях ввода, которые вы можете заменить пробелами при представлении полей пользователю , и заполнить данные пользователя при создании страницы, которую вы хотите записать в формате pdf. Сейчас он просто проходит и заменяет все имя = 'this_name' значением = 'this_name-> value'.