Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डोमपीडीएफ के साथ कई पेज कैसे बनाएं?

आपका लूप ठीक काम कर रहा है। जिस तरह से आप अपने पीडीएफ में पेज जोड़ते हैं वह शायद गलत है। जाहिर तौर पर आप एक नया पेज अटैच करने के बजाय एक पेज को बार-बार ओवरराइट कर रहे हैं।

संपादित करें

मैंने कभी भी डोमपीडीएफ का इस्तेमाल नहीं किया है। डॉक्स में एक त्वरित नज़र मुझे लगता है कि आप एक HTML मार्कअप की तरह कुछ बनाते हैं जो तब पीडीएफ में परिवर्तित हो जाता है, क्या मुझे यह सही लगा?

उदाहरण कोड

$html = <<<HTML
  <html>
      <head>
            <style type="text/css">
                /* Your document styling goes here */
            </style>
      </head>
      <body>
HTML;

while ( $row = $dbResult->fetch_assoc() ) {
    $html .= '<div class="teacherPage">'
                 . $row['name'] // your teacher document goes here
             '</div>';
}

$html .= '</body></html>';

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");

यदि आप असामान्य सिंटैक्स के बारे में सोचते हैं $var = <<<HTML \r\nHTML , यह एक heredoc . जब आपके पास बहुत सारे विदेशी इनलाइन कोड हों, तो हेरेडोक्स का उपयोग करना अधिक सुविधाजनक होता है, इसमें चर हो सकते हैं {$varname} और आपको उद्धरणों के बारे में चिंता करने की आवश्यकता नहीं है। आपको केवल यह सुनिश्चित करने की आवश्यकता है कि हेरेडोक HTML . के करीब है नई लाइन में है और इंडेंट नहीं है।

EDIT2

अभी भी निश्चित नहीं है कि आप किस पुस्तकालय का उपयोग कर रहे हैं। मुझे यह एक्सटेंशन मिल गया है बहुत अच्छा लग रहा है और इसे dompdf कहते हैं, जैसा आपने अपने प्रश्न में कहा था।

आपकी नवीनतम टिप्पणी इंगित करती है कि आपने अब तक अपनी समस्या का समाधान नहीं किया है, इसलिए मैंने आपको लक्ष्य तक पहुंचाने के लिए कुछ और जानकारी जोड़ने का निर्णय लिया है।

dompdf आपके इनपुट दस्तावेज़ के CSS2 और CSS3 गुणों को पढ़ने में सक्षम है।

while . में प्रत्येक चक्र ऊपर दिया गया लूप एक शिक्षक का प्रतिनिधित्व करता है, जिनमें से प्रत्येक को आउटपुट दस्तावेज़ में अपना एक पेज मिलता है।

मैंने पृष्ठ को teacherPage . वर्ग के साथ एक div कंटेनर में रखा है . आप इस कंटेनर में वह सारी जानकारी भर सकते हैं जो आप एक शिक्षक के लिए प्रदर्शित करना चाहते हैं।

अब हमें बस इतना करना है कि प्रत्येक teacherPage . को dompdf बताना है एक नया पृष्ठ है। यह @page . का उपयोग करके किया जा सकता है मार्कअप CSS3 के साथ शिप किया गया

मैंने एक खाली सीएसएस कंटेनर जोड़ा <style type="text/css"></style> ऊपर दिए गए उदाहरण दस्तावेज़ में, पेज स्टाइल को यहीं पर जाना चाहिए।

उदाहरण CSS

@page teacher {
  size: A4 portrait;
  margin: 2cm;
}

.teacherPage {
   page: teacher;
   page-break-after: always;
}

@page के साथ आप एक नामित पृष्ठ को परिभाषित कर सकते हैं teacher , जिसमें गुण पूरे पृष्ठ कंटेनर के लिए मान्य हो सकते हैं।

page-break-after: always प्रत्येक कंटेनर के बाद एक नया पृष्ठ शुरू करेगा

आशा है कि यह मदद करता है, कोशिश करने का मज़ा लें :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL FULLTEXT इंडेक्स जारी करता है

  2. mysql में :=ऑपरेटर का क्या अर्थ है?

  3. MySQL पासवर्ड समस्याएँ (मैक ओएस एक्स लायन)

  4. PHP में एक हावर्सिन फॉर्मूला एसक्यूएल कॉल का अनुकूलन

  5. MySQL:कम कार्डिनैलिटी/चयनात्मकता कॉलम =इंडेक्स कैसे करें?