2012-04-23 11 views
18

क्या कोई जानता है कि पीडीएफ दस्तावेज़ एमपीडीएफ लाइब्रेरी का उपयोग करते हुए जेनरेट किए गए पृष्ठों की संख्या कैसे प्राप्त करें?एक एमपीडीएफ दस्तावेज़ में पेज गिनती कैसे प्राप्त करें?

+0

http://stackoverflow.com/questions/1098156/number-of-pages-in-a-pdf-file - मई आप एक मुख्य mPDF वर्ग में जोड़ना – Rikesh

+0

मदद करता है: समारोह getPageCount() { \t वापसी की गणना ($ यह-> पृष्ठ); } फिर एक एचटीएमएल-पार्सर ऐसी स्ट्रिंग जोड़ें: $ html = str_replace ('{PAGECNT}', $ this-> getPageCount(), $ html); इन कार्रवाइयों के बाद आप परिणाम प्राप्त करने के लिए सीधे अपने पार्स किए गए HTML में {PAGECNT} डाल सकते हैं। यह उपयोगी है कि आपको एक पृष्ठ को इंगित करने की आवश्यकता है, जैसे: "पृष्ठ 2 में से 5"। –

उत्तर

3

एक मुख्य mPDF वर्ग से जोड़ें: करने के लिए अपने पार्स सीधे HTML में

$html = str_replace('{PAGECNT}', $this->getPageCount(), $html); 
इन कार्यों {PAGECNT} सम्मिलित कर सकते हैं के बाद

:

function getPageCount() { 
    return count($this->pages); 
} 

तो एक html-पार्सर ऐसे स्ट्रिंग जोड़ें परिणाम प्राप्त करें।

+0

यह मेरे लिए काम करता है लेकिन केवल अंतिम पृष्ठ पर दिखाता है, क्या यह हर पृष्ठ के पाद लेख में दिखाना संभव है? –

+0

बताओ कि जहां पार्स एचटीएमएल डालने की आवश्यकता है? किस समारोह में? –

22

मैं एक ही functionallity लिए देख रहा था EYiiPdf (Yii पर mPDF के लिए एक आवरण) का उपयोग करते समय और एक आकर्षण की तरह काम किया है::

$mPDF->setFooter('{PAGENO}/{nb}'); 

मैं जाँच की यह उपयोगी है जब आप एक पृष्ठ इंगित करने के लिए की जरूरत है mPDF के स्रोत और mpdf.php पर इस पाया: 1656 (संस्करण 5.4):

function AliasNbPages($alias='{nb}') { 
    //Define an alias for total number of pages 
    $this->aliasNbPg=$alias; 
} 

आशा है कि यह मदद करता है!

+1

असल में स्वीकार्य उत्तर डिनट काम मेरे लिए !! और आपका समाधान काम करता है :) – sravis

+0

मैं mpdf (वाईआई के अंदर) का उपयोग कर पीडीएफ बना रहा हूं, पीडीएफ एचटीएमएल से बनाए गए हैं, और मैंने फ़ुटर सामग्री पर सेटफुटर का उपयोग किया है, लेकिन यह केवल अंतिम पृष्ठ में प्रदर्शित हो रहा है! प्रत्येक पृष्ठ में इसे कैसे प्राप्त करें? $ mPDF1-> setFooter ('{DATE j-m-Y} | {PAGENO}/{nb}', 'O | E'); – nu6A

12

आप उपयोग कर सकते हैं {nbpg}, जैसे

<div align="center"><b>{PAGENO}/{nbpg}</b></div> 
+2

यह एक बहुत ही उपयोगी उत्तर है। यदि आप 'resetpagenum' का उपयोग कर रहे हैं, तो' {nbpg} 'आपके अंतिम रीसेट से वर्तमान पृष्ठ संख्या गिनती दिखाता है। यदि आप कुल पृष्ठ गणना दिखाना चाहते हैं, तो आप '{nb}' का उपयोग कर सकते हैं। –

2

आप पृष्ठों की संख्या लौटने के लिए तो आप एक डेटाबेस या बाहर कुछ अन्य आपरेशन mpdf की यह खींचने के लिए आसान है करने के लिए इस बचा सकता है कोशिश कर रहे हैं यह इस तरह से।

अपनी सामग्री लिखने के बाद:
$ mpdf-> लिखें HTML ($ html);

$ page_count = $ mpdf -> पृष्ठ;

$ mpdf-> आउटपुट();

+0

मैं एजीईएस के लिए यह देख रहा हूं, घंटों के लिए दस्तावेज़ों को देख रहा हूं और मुझे अंत में जवाब मिल गया है। आपको बहुत - बहुत धन्यवाद! –

4

जवाब मूल दस्तावेज में foound जा सकता है:
http://mpdf1.com/manual/index.php?tid=314
प्रतिस्थापन उपनाम {nb} और {nbpg} वर्तमान पृष्ठ संख्या
के लिए कुल संख्या
और {PAGENO} के लिए

0

लाइन के लिए देखें:

preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);

mpdf.php फ़ंक्शन में पाद लेख() यह आपके "{PAGENO}/{nb}" को प्रदर्शित नहीं किया जा सकता है। यह देखने के लिए कि क्या यह उपलब्ध है, बस इसे टिप्पणी करें या strpos('{DATE' > -1) का उपयोग करें। इसके अलावा, आप जोड़ने की जरूरत हो सकता है:

$mpdf->ignore_invalid_utf8 = true;

और भी आप पाद लेख पंक्ति नहीं चाहते हैं, तो:

$mpdf->defaultfooterline = false; 

इन परिवर्तनों पृष्ठांकन पर पिछले मेरे लिए काम किया के बाद।

संबंधित मुद्दे