2011-03-30 17 views
9

मैं एक पीडीएफ उत्पन्न करने के लिए टीसीपीडीएफ का उपयोग कर रहा हूं।टीसीपीडीएफ - पेगेनबर्स बिल्कुल सही नहीं है

$this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 'T', false, 'R'); 

इस दस्तावेज़ के पाद लेख में PageNumber डालने के लिए मानक लाइन है, लेकिन उत्पादन में सही करने के लिए एक litte जगह नहीं है:

मेरे मुद्दा विधि पाद() से निम्न पंक्ति है। आप वेबसाइट से उदाहरण 1 में देख सकते हैं: http://www.tcpdf.org/examples/example_001.pdf

अगर मैं इस तरह सामान्य पाठ सम्मिलित करें:

$this->Cell(0, 10, 'Foobar', 'T', false, 'R'); 

पाठ पूरी तरह से बिना किसी समस्या के सही करने के लिए गठबंधन किया है।

मैंने स्रोत में खोला, यह एन्कोडिंग के साथ कुछ प्रतीत होता है, लेकिन मुझे वास्तव में बिंदु नहीं मिलता .. क्या कोई मदद कर सकता है?

संबंध

उत्तर

0

मेरा मानना ​​है कि समस्या उपनाम के भीतर है। ये केवल पाठ के टुकड़े हैं जिनकी चौड़ाई गणना के समय गणना की जाती है, न कि उन्हें संख्याओं के साथ बदलने का समय।

तो टेक्स्ट-चौड़ाई स्ट्रिंग (शाब्दिक) {np}/{nb} के लिए गणना की जाती है। और जब इसे 1/9 पर दाएं नंबरों के साथ प्रतिस्थापित किया जाता है, तब से छोटा होता है, जबकि 23/109 बड़ा होता है।

आप ?) का उपयोग करने वाले एनबीपेज उपनाम को प्रतिस्थापित कर सकते हैं, जो the total number of pages की चौड़ाई को प्रतिबिंबित करता है, यदि आप अनुमान लगा सकते हैं कि यह कितना होगा। और मुझे विश्वास है कि आप उपनाम का उपयोग किए बिना सीधे वर्तमान पृष्ठ संख्या का उपयोग कर सकते हैं ताकि समस्या उस उपनाम के लिए कम से कम दिखाई न दे।

1

दुर्भाग्य से TCPDF उर्फ ​​संरेखित और अंतिम संख्या कि उर्फ ​​की जगह नहीं। $-- AliasNbPages ('{p}') और $ this-> AliasNumPAge ('{n}') का उपयोग करने से बहुत मदद नहीं मिलेगी। अतिरिक्त पैडिंग जगह में रहेगी।

एकमात्र समाधान एलियास के बजाय पेज नंबर डालना है।

Original bug at SourceForge.net (TCPDF bug tracker)

4

मैं इसे इस तरह हल:

$this->Cell(0, 0, $this->getAliasRightShift().$this->PageNo().'/'.$this->getAliasNbPages(), 1, 0, 'R'); 

यदि आप और अधिक से अधिक 99 पृष्ठों है, तो आप फिर से संरेखण समस्याओं होगा! अपनी डिग्री थीसिस के पीडीएफ उत्पन्न करने के लिए कुछ और उपयोग करें!

$txt='Page '.$this->PageNo().' of '.$this->getNumPages() 

के बजाय:

$txt='Page '.$this->getAliasNumPage().' of '.$this->getAliasNbPages() 

Isotypelab.org

3

मैं का उपयोग कर हल कर लिया है मेरे लिए आईएनजी

+4

यह वास्तव में काम नहीं करता है, क्योंकि यह "1 का पृष्ठ 1" और "2 का पेगन 2" प्रिंट करता है –

+0

काम नहीं करता है, मेरे लिए समाधान इस पृष्ठ की जानकारी को बाएं संरेखित करने के लिए रखा गया है :) – Jawaad

-2

पर इतालवी अनुवाद और अद्यतन इस

$txt='Page '.$this->PageNo().' of '.$this->getNumPages() 

काम की कोशिश करो :)

+0

आपने दोहराया समाधान समाधान नहीं: यह वास्तव में काम नहीं करता है, क्योंकि यह "1 का पृष्ठ 1" और "2 के पेज 2 2" – user2345998

0

getNumPages यह नहीं करेंगे। यदि आपके पास 3 पृष्ठ हैं, तो getNumPages() के परिणामस्वरूप 1/1, 2/2 और 3/3 getAliasNbPages() परिणाम 1/3, 2/3 और 3/3 होगा, इसलिए समस्या बनी हुई है!

+0

को एक टिप्पणी के रूप में पोस्ट किया जाना चाहिए, जो एक बार आपके पास पर्याप्त प्रतिनिधि होगा :-) – kleopatra

1

जैसा कि मेरे दस्तावेज़ कोई 10 से अधिक पृष्ठों 2 समाधान है, यह अधिक चौड़ाई (260 मेरे मामले में, क्योंकि मैं PDF_PAGE_ORIENTATION = 'एल' है) देने के लिए और 'आर' align:

$this->Cell(260, 6, 'Page '.$this->getAliasNumPage().' of '.$this->getAliasNbPages(), 0, 0, 'R', 0, '', 0, false, 'T', 'C'); 

या चौड़ाई = 0 के साथ दो कोशिकाओं, कुछ रिक्त स्थान के साथ 'सी' और दूसरा सेल संरेखित: अगर आप 10 से अधिक पृष्ठों है

$this->Cell(0, 6, '', 0, 0, 'C', 0, '', 0, false, 'T', 'C'); 
$this->Cell(0, 6, 'Page '.$this->getAliasNumPage().' of '.$this->getAliasNbPages().'  ', 0, 0, 'C', 0, '', 0, false, 'T', 'C'); 

तो चौड़ाई और रिक्त स्थान के साथ खेलते हैं।

मेरे मामले में दाईं ओर यह गठबंधन पृष्ठ संख्याएं।

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