У меня есть вопрос здесь.
я бы использовал буферизацию, чтобы получить pdf-файлы, используя mpdf ..
но я немного запутался здесь.
У меня есть javascript на странице, что я был буферизирован. но генерировать контент из javascript не конвертируется в pdf.
позвольте мне понять это прямо.
скажем, у меня этот элемент
<div id='text'></div>
и на моей странице у меня есть код javascript для добавления текста в этот div .. и результаты …
[открыть страницу через браузер]
<div id='text'>TEXT I ADDED USING JAVASCRIPT</div>
но когда я конвертирую его в pdf …
<div id='text'></div> (I DIDNT GET THAT TEXT)
Это скрипт используется .. template.php
ob_start(); // content of page (included inline javascript code) $yourfile = ob_get_content(); $_SESSION[forms] = $yourfile; echo $yourfile;
convert.php
session_start(); include("MPDF54/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); $mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $mpdf->WriteHTML($_SESSION[forms]); $mpdf->Output();
вsession_start(); include("MPDF54/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); $mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $mpdf->WriteHTML($_SESSION[forms]); $mpdf->Output();
Любое тело может помочь мне с этим ???
mpdf
поддерживает базовый javascript.
Читатели PDF понимают основные функции javascript.
например print();
вы можете добавить его с помощью функции SetJS()
библиотеки mpdf.
include("MPDF54/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); $mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $mpdf->WriteHTML($_SESSION[forms]); $mpdf->SetJS('print();') //JS code with <script></script> tags. $mpdf->Output();
вinclude("MPDF54/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); $mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $mpdf->WriteHTML($_SESSION[forms]); $mpdf->SetJS('print();') //JS code with <script></script> tags. $mpdf->Output();
PHP * Библиотеки PDF (tcpdf, fpdf, mpdf и т. Д.) Не могут запускать javascript-код, потому что для этого потребуются возможности интерпретатора javascript и браузера, или если он поддерживает javascript, он не будет работать так, как вы привыкли использовать его в программирование на стороне клиента. Наряду с этим, CSS и интерпретация разметки также очень бедны.
Однако, если вы ищете альтернативы, способные отображать javascript и css, как обычный браузер, я предлагаю wkhtmltopdf .
wkhtmltopdf – утилита оболочки для преобразования html в pdf с использованием механизма рендеринга webkit и qt. Он запускается как консольная программа с параметрами, определяющими, что делать, и имеет множество опций. В принципе, вы можете сказать, чтобы загрузить страницу, подождите 5 секунд, чтобы выполнить javascript, затем создайте pdf. Доступны версии linux и windows, хотя для Linux требуется установка библиотеки X11.
Я уверен, что есть другие варианты, но я использую wkhtmltopdf в течение многих лет, и он создает PDF-файл, выглядящий точно так же, как веб-страница будет выглядеть в браузерах Chrome или Safari, а также выполнение javascript отлично работает.