добавить содержимое, сгенерированное javascript, в pdf, используя dompdf

Я создаю календарь событий, используя полную библиотеку java-скриптов календаря. я хочу преобразовать этот вид календаря в PDF. Я использую фреймворк codeigniter. и для преобразования PDF с использованием библиотеки dompdf.

$html = $this->load->view('pdf_html', $data,true);    
 require_once("dompdf/dompdf_config.inc.php");    
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    if ($stream) {
        $dompdf->stream($filename.".pdf");
    } else {
        return $dompdf->output();
    }    

просмотреть файл

<script type="text/javascript">
            $(document).ready(function() {
                $('#calendar').fullCalendar({
                    header: {
                        left: '',
                        center: 'title'
                    },
                    editable: false,
                    selectable: false,
                    weekends: false,
                    month: <?php echo $selected_month; ?>
                });
                $(".fc-button-prev").css('display', 'none');
                $(".fc-button-next").css('display', 'none');
                $(".fc-button-today").css('display', 'none');
                $(".fc-day-header").css('padding-top', '10px');
                $(".fc-day-header").css('padding-bottom', '10px');
                $(".fc-day-header").css('background-color', '#FFB848');
                $(".fc-event-container").css('top', '10px');
                $(".fc-event").css('border-radius', '4px !important');
                $(".fc-event").css('margin-bottom', '3px');
                $(".fc-event").css('border', '2px solid #ccc');


            });
        </script>  
<div id='calendar' style="widyh:100%;background-color: #f5f5f5;margin-top:15px;margin-bottom:15px;"></div>            

person priyanka patel    schedule 30.05.2014    source источник
comment
dompdf не поддерживает контент, сгенерированный JavaScript, вам придется либо захватить сгенерированный HTML и отправить его обратно на сервер, либо использовать библиотеку с поддержкой JS, например PhantomJS.   -  person BrianS    schedule 04.06.2014


Ответы (2)


почему бы вам не использовать HTML в PDF. вот скачать его. http://html2pdf.fr/en/default

Это довольно просто, вам просто нужно поставить

div id='calendar' style="widyh:100%;background-color: #f5f5f5;margin-top:15px;margin-bottom:15px;"></div>

тег внутри тега page (этот тег будет использоваться в этом HTML2PDF).

Даже стандартный CSS также работает с HTML2PDF.

person Hraday Joshi    schedule 30.05.2014
comment
И каким образом это помогает отображать содержимое, сгенерированное JavaScript, в PDF? Насколько я знаю, HTML2PDF также не выполняет JS до того, как сгенерирует PDF. - person Gummibeer; 20.02.2017

Я не уверен, но попробуйте установить эту опцию:

$dompdf->set_option( 'isJavascriptEnabled' , true );
person ioannup    schedule 18.08.2016
comment
Это просто включает JavScript внутри PDF (можно создавать сценарии в PDF-файлах с помощью JavaScript. Таким образом, при этом код JavaScript будет скопирован в PDF и не будет выполняться раньше. - person Gummibeer; 20.02.2017