2011-03-30 37 views
9

我正在使用TCPDF生成pdf。TCPDF - Pagenumbers不完全對齊

我的問題是從頁腳()方法如下行:

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

這是插入文檔的頁腳頁面編號的標準線,但沒有在輸出豆蔻空間的權利。您可以從網站上看到它例子1:http://www.tcpdf.org/examples/example_001.pdf

如果我插入正常的文字是這樣的:

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

文本完全一致的權利,沒有任何問題。

我挖掘到源代碼,它似乎是與編碼的東西,但我真的沒有明確的觀點..有人可以幫助嗎?

問候

回答

0

我相信問題是別名內。這些只是在插入時計算寬度的文本片段,而不是用數字替換它們的時間。

因此,字符串(字面上)的文本寬度計算爲{np}/{nb}。當它被1/9末尾的數字替換爲小於此值時,23/109更大。

您可以將使用的NbPages別名(setAliasNbPages()?)替換爲反映the total number of pages的寬度的東西,如果您可以估計它的寬度,則可以使用這些別名。我相信您可以直接使用當前頁碼而不使用別名,因此至少不會出現該別名的問題。

1

不幸的是TCPDF 對準別名不是最終數替換 的別名。使用$ this-> 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頁,你將再次有對齊的問題!使用別的東西來生成你的學位論文的pdf!的

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

代替:

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

意大利語翻譯及更新Isotypelab.org

3

我已經解決了使用ing for me

+4

這不是真的工作,因爲它打印「第1頁1」和「第2頁2」 – 2012-11-07 17:17:11

+0

不起作用,對我來說這個解決方案是把這個頁面信息對齊左側:) – Jawaad 2015-01-30 17:43:33

-2

試試這個

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

工作:)

+0

你重複了一次不工作解決方案: 這並不奏效,因爲它會打印「第1頁1」和「第2頁,共2頁」 – user2345998 2015-10-21 10:48:33

0

getNumPages不會這樣做。 如果您有3頁,getNumPages()將導致1/1,2/2和3/3 getAliasNbPages()將導致1/3,2/3和3/3 所以問題仍然存在!

+0

應作爲註釋發佈,一旦您擁有足夠的代表:-) – kleopatra 2013-06-30 08:06:42

1

由於我的文檔是不超過10頁我有2個解決方案,給它更多的WIDTH(260在我的情況,因爲我有PDF_PAGE_ORIENTATION =「L」)和對齊「R」:

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

或兩個小區WIDTH = 0,對齊「C」和第二單元的一些空間:

$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'); 

所以用寬度和空間的發揮,如果你有超過10頁。

在我的情況下,這個對齊的頁碼在右邊。