php
  • file
  • pdf-generation
  • save
  • dompdf
  • 2012-01-04 29 views 37 likes 
    37

    Tôi đang sử dụng Dompdf để tạo tệp PDF nhưng tôi không biết tại sao nó không lưu tệp PDF được tạo vào máy chủ.cách lưu nội dung đã tạo DOMPDF vào tệp?

    Bất kỳ ý tưởng nào?

    require_once("./pdf/dompdf_config.inc.php"); 
        $html = 
         '<html><body>'. 
         '<p>Put your html here, or generate it with your favourite '. 
         'templating system.</p>'. 
         '</body></html>'; 
    
        $dompdf = new DOMPDF(); 
        $dompdf->load_html($html); 
        $dompdf->render(); 
        file_put_contents('Brochure.pdf', $dompdf->output()); 
    
    +0

    Phiên bản dompdf? Bất kỳ lỗi PHP nào? – BrianS

    +0

    dompdf 0.5.2, php 5.2.13 – user1079810

    +0

    Tôi không thấy bất cứ điều gì có thể ngăn bạn tiết kiệm, vì vậy tôi đoán lỗi cấu hình máy chủ. Có lẽ PHP không thể ghi vào thư mục đó? Nếu đó là trường hợp PHP sẽ báo cáo lỗi. Kiểm tra nhật ký lỗi PHP của bạn hoặc bật hiển thị lỗi. – BrianS

    Trả lời

    58

    Tôi vừa sử dụng dompdf và mã có chút khác biệt nhưng nó hoạt động.

    Ở đây là:

    require_once("./pdf/dompdf_config.inc.php"); 
    $files = glob("./pdf/include/*.php"); 
    foreach($files as $file) include_once($file); 
    
    $html = 
         '<html><body>'. 
         '<p>Put your html here, or generate it with your favourite '. 
         'templating system.</p>'. 
         '</body></html>'; 
    
        $dompdf = new DOMPDF(); 
        $dompdf->load_html($html); 
        $dompdf->render(); 
        $output = $dompdf->output(); 
        file_put_contents('Brochure.pdf', $output); 
    

    Chỉ khác biệt ở đây là tất cả các tập tin trong thư mục bao gồm được bao gồm.

    Ngoài đề xuất duy nhất của tôi là chỉ định đường dẫn thư mục đầy đủ để ghi tệp thay vì chỉ tên tệp.

    1

    Tôi đã kiểm tra mã của bạn và vấn đề duy nhất tôi có thể thấy là thiếu quyền được cấp cho thư mục mà bạn cố gắng ghi tệp vào.

    Cấp quyền "ghi" cho thư mục bạn cần để đặt tệp. Trong trường hợp của bạn, nó là thư mục hiện hành.

    Sử dụng "chmod" trong linux.

    Thêm "Mọi người" bằng "viết" được bật vào tab bảo mật của thư mục nếu bạn đang ở trong Windows.

    -2
    <?php 
    $content='<table width="100%" border="1">'; 
    $content.='<tr><th>name</th><th>email</th><th>contact</th><th>address</th><th>city</th><th>country</th><th>postcode</th></tr>'; 
    for ($index = 0; $index < 10; $index++) { 
    $content.='<tr><td>nadim</td><td>[email protected]</td><td>7737033665</td><td>247 dehligate</td><td>udaipur</td><td>india</td><td>313001</td></tr>'; 
    } 
    $content.='</table>'; 
    //$html = file_get_contents('pdf.php'); 
    if(isset($_POST['pdf'])){ 
        require_once('./dompdf/dompdf_config.inc.php'); 
        $dompdf = new DOMPDF;       
        $dompdf->load_html($content); 
        $dompdf->render(); 
        $dompdf->stream("hello.pdf"); 
    } 
    ?> 
    <html> 
        <body> 
         <form action="#" method="post">   
          <button name="pdf" type="submit">export</button> 
         <table width="100%" border="1"> 
          <tr><th>name</th><th>email</th><th>contact</th><th>address</th><th>city</th><th>country</th><th>postcode</th></tr>   
          <?php for ($index = 0; $index < 10; $index++) { ?> 
          <tr><td>nadim</td><td>[email protected]</td><td>7737033665</td><td>247 dehligate</td><td>udaipur</td><td>india</td><td>313001</td></tr> 
          <?php } ?>    
         </table>   
         </form>   
        </body> 
    </html> 
    
    Các vấn đề liên quan