【问题标题】:add content generated by javascript into pdf using dompdf使用 dompdf 将 javascript 生成的内容添加到 pdf 中
【发布时间】:2014-07-20 04:41:32
【问题描述】:

我正在使用完整的日历 java 脚本库生成事件日历。我想将此日历视图转换为 PDF。 我正在使用 codeigniter 框架。以及使用 dompdf 库进行 PDF 转换。

$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>            

【问题讨论】:

  • dompdf 不支持 JavaScript 生成的内容,您要么必须捕获生成的 HTML 并将其发送回服务器,要么使用支持 JS 的库,例如 PhantomJS。跨度>

标签: php fullcalendar dompdf


【解决方案1】:

为什么不使用 HTML 转 PDF。 这是下载它。 http://html2pdf.fr/en/default

很简单,你只需要把你的

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

page 标签内的标签(此标签将在此 HTML2PDF 中使用)。

即使是标准的 CSS 也适用于 HTML2PDF。

【讨论】:

  • 这有助于在 PDF 中显示 JavaScript 生成的内容吗?我怎么知道 HTML2PDF 在生成 PDF 之前不会执行 JS。
【解决方案2】:

我不确定,但请尝试设置此选项:

$dompdf->set_option( 'isJavascriptEnabled' , true );

【讨论】:

  • 这只是在 PDF 中启用 JavScript(可以使用 JavaScript 在 PDF 中编写脚本。因此,JavaScript 代码将被复制粘贴到 PDF 中而不是之前执行。
猜你喜欢
  • 2017-08-14
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2013-12-29
  • 2017-09-21
  • 2020-07-12
  • 2016-07-11
相关资源
最近更新 更多