使用PHP从HTML元素创建PDF

时间:2016-04-19 17:42:30

标签: php jquery html pdf

我长期以来一直是堆栈溢出的常用用户,但直到今天才开始创建帐户。

我用我的编码打了一堵砖墙。我目前的工作项目是创建一个表格规划器或座位规划器,其中包含打印表格计划的功能(另存为pdf)。

页面上的我的HTML元素是由jquery动态生成的,它们都被附加到一个名为" table-planner-container"的容器中。或$("#table-planner-container")。这些表基本上是div元素,形状为圆形或矩形表,周围有座位,允许将名称放入座位。

在任何时候,我都希望用户能够保存此表计划,但将$("#table-planner-container")的HTML内容转换为pdf。我尝试过使用DOMPDF,但似乎无法将特定的HTML内容传递给方法。它基本上应该是表格在浏览器中的位置和css的快照,直接写为PDF。

非常感谢任何想法/提示。

我们将Symfony 1.4用于我们的项目,因此它遵循MVC风格

这是页面上的HTML代码(indexSucess.php):

    <div id="table-planner-container">
     <!-- jQuery appends div elements here -->
    </div>

tableplan.js:

    function Add_Table(){
    var tableContainer = $("<div id=\"table" + numTables + "\" tabletype=\" + tableType + "\"></div>");
    var table = $("<div id=\"t"+ numTables + "\"></div>");
    var tableLabel = $("<div id=\"table_label\" class=\"table_label\">" + tablename + "</div>");
    $("#table-planner-container").append(tableContainer);
    // more code that does seat appending
    }

    function Create_Guest_Element(){
    var guest = $("<span id=\"" + guestid + "\"  class=\"guest\" gender=\"" + gender + "\">"+ fname + " "+ lname +"</span>");
    $("#table-planner-container").append(guest);
    // More code that does stuff
    }

     function Create_PDF(){
     var html = $("#table-planner-container").html;
 $.ajax({
    url         : "/table_planner/CreatePdf",
    data        : {html:html},
    type        : 'POST',
    error       : function (xhr, ajaxOptions, thrownError){  
                    console.log(xhr.status);          
                    console.log(thrownError);
     }
    });

   }

action.class.php:

  public function executeCreatePdf(sfWebRequest $request)
  {  
  $html = $_POST['html'];
  $this->getResponse()->setContentType('application/pdf');
    // instantiate and use the dompdf class
    $dompdf = new Dompdf();
    $dompdf->load_html($html);

    // (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');

    // Render the HTML as PDF
    $dompdf->render();

    // Output the generated PDF to Browser
    return $dompdf->stream("tableplan.pdf");
   }

每当我尝试将一些数据发布到这个php函数时,它表示它不包含HTML数据,部分我认为DOMPDF不想通过特定的HTML元素生成。

还有其他替代方案吗?

0 个答案:

没有答案