dompdf

2012-10-08 14 views
8

में पृष्ठ संख्या के साथ शीर्षलेख और पाद लेख जोड़ना मैं कोडनिर्देशक के साथ काम कर रहा हूं और मैंने पीडीएफ फाइलें उत्पन्न करने के लिए सफलतापूर्वक dompdf लागू किया है। अब मुझे जेनरेट किए गए पीडीएफ में हेडर और पाद लेख जोड़ने पर समस्याएं हैं।dompdf

<?php 

$data['store']=$res; 
$this->load->helper(array('dompdf', 'file')); 
$html = $this->load->view('store/sales_pdf', $data, true); 
$html.= $this->load->view('footer'); 
$filename="salesbill".$id; 
pdf_create($html, $filename); 
$data = pdf_create($html, '', false); 
write_file('name', $data); 
?> 

मैं पृष्ठ संख्या प्राप्त करने के लिए इस स्क्रिप्ट का उपयोग लेकिन यह केवल यदि दूसरे पृष्ठ मुद्रित:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
function pdf_create($html, $filename='', $stream=TRUE) 
{ 
require_once("dompdf/dompdf_config.inc.php"); 

$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->render(); 
    $dompdf->set_paper("A4"); 
if ($stream) { 
    $dompdf->stream($filename.".pdf",1); 
} else { 
    return $dompdf->output(); 
} 
} 
?> 

यहाँ मेरी नियंत्रक पीडीएफ पीढ़ी कॉल करने के लिए है:

यहाँ मेरी dompdf_helper कोड है अन्यथा बाहर निकलता है यह प्रिंट नहीं करेगा।

<script type="text/php"> 

    if (isset($pdf)) { 

     $font = Font_Metrics::get_font("helvetica", "bold"); 
     $pdf->page_text(500,10, "Page: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0)); 

    } 
    </script> 

मैं कंपनी के नाम और संपर्क विवरण और बिल संख्या को प्रत्येक पृष्ठ में शीर्षलेख के रूप में एक पाद लेख में मुद्रित करना चाहता हूं। मैं "3 में से 1" जैसे पेज नंबर जोड़ना चाहता हूं।

+1

शुरू करने के लिए जब डिबगिंग dompdf बल्कि प्रक्रिया है कि दस्तावेज़ बनाता है की तुलना में, HTML दस्तावेज़ आप प्रतिपादन कर रहे हैं को देखने के लिए पहले स्थान पर। उस तरह से dompdf से संबंधित त्रुटियों की पहचान करना आसान है। तो, क्या आप एक नमूना दस्तावेज पोस्ट कर सकते हैं जो त्रुटि प्रदर्शित करता है? मेरा एकमात्र प्रश्न होगा, क्या आपके पास कम से कम HTML सामग्री के आसपास बॉडी टैग हैं? यदि नहीं, तो दस्तावेज़ प्रक्रियाओं के कारण स्क्रिप्ट dompdf के लिए पहुंच योग्य नहीं होगा। – BrianS

उत्तर

21

मुझे उम्मीद है कि यह आपको dompdf में शीर्षलेख और पाद लेख प्राप्त करने के तरीके में समझने में बहुत मदद करेगा। इस लिंक पर भी चेक .... Example

<html> 
    <head> 
    <style> 
    @page { margin: 180px 50px; } 
    #header { position: fixed; left: 0px; top: -180px; right: 0px; height: 150px; background-color: orange; text-align: center; } 
    #footer { position: fixed; left: 0px; bottom: -180px; right: 0px; height: 150px; background-color: lightblue; } 
    #footer .page:after { content: counter(page, upper-roman); } 
    </style> 
    <body> 
    <div id="header"> 
    <h1>Widgets Express</h1> 
    </div> 
    <div id="footer"> 
    <p class="page">Page <?php $PAGE_NUM ?></p> 
    </div> 
    <div id="content"> 
    <p>the first page</p> 
    <p style="page-break-before: always;">the second page</p> 
    </div> 
</body> 
</html> 
+1

मैं भी एक पेज नंबर जोड़ने की कोशिश कर रहा हूं लेकिन यह मेरे लिए काम नहीं करता है। मैंने 'और' की कोशिश की; ?> 'और' <स्क्रिप्ट टाइप = टेक्स्ट/php> $ PAGE_NUM गूंजें; 'और उनमें से कोई भी कुछ भी आउटपुट नहीं करता है। मेरे पास मेरे विकल्पों में PHP सक्षम है। कोई विचार? – danielson317

+0

वही वही प्रयास करें और त्रुटियां। इसे काम करने के लिए नहीं मिल सकता है। सीएसएस 'काउंटर (पेज)' का एकमात्र तरीका है, लेकिन '0' से कुछ और दिखाने के लिए 'काउंटर (पेज)' नहीं मिल सकता है ... –

11

मैं भी html में PHP कोड को जोड़ने की कोशिश की है, लेकिन कभी यह काम करने का मौका मिला है। यहाँ पूरा इनलाइन कोड जो मैं काम करता है की गारंटी है:

require_once("dompdf_config.inc.php"); 
$html ='<html> 
     <body> 
     <p>Hello Hello</p><p style="page-break-after:always;page-break-before:always">Hello Hello 2</p><p>Hello Hello 3</p> 
     </body> 
     </html>'; 

$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 

$dompdf->render(); 

$canvas = $dompdf->get_canvas(); 
$font = Font_Metrics::get_font("helvetica", "bold"); 
$canvas->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0)); 

$dompdf->stream("my_pdf.pdf", array("Attachment" => 0)); 
?> 
+1

शायद स्पष्ट है लेकिन सुनिश्चित करें कि आप निरंतर DOMPDF_ENABLE_PHP को सत्य पर सेट करते हैं। – tomvo

+0

@tomvo - इतना स्पष्ट नहीं है! पारितोषिक के लिए धन्यवाद। – SPRBRN