10

TCPDFを使用してPDFを生成しています。

私の問題は、Footer()メソッドからの次の行です。

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

これは、ドキュメントのフッターにページ番号を挿入するための標準行ですが、出力の右側に小さなスペースがあります。例1で、次のWebサイトから確認できます。http ://www.tcpdf.org/examples/example_001.pdf

このような通常のテキストを挿入すると、次のようになります。

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

テキストは問題なく右に完全に配置されます。

私はソースを掘り下げました、それはエンコーディングに何かがあるようです、しかし私は本当に要点を理解していません..誰かが助けることができますか?

よろしく

4

9 に答える 9

2

私は以下を使用して解決しました:

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

それ以外の:

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

Isotypelab.orgでのイタリア語の翻訳と更新

于 2012-07-02T17:33:10.063 に答える
1

私のドキュメントは 10 ページ以下なので、2 つの解決策があります。WIDTH を増やし (私の場合は PDF_PAGE_ORIENTATION='L' であるため 260)、'R' を揃えます。

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

または WIDTH=0 の 2 つのセル、'C' と 2 番目のセルをいくつかのスペースで揃えます。

$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 ページを超える場合は、WIDTH と SPACES で遊んでください。

私の場合、これはページ番号を右に揃えました。

于 2016-03-10T20:37:12.950 に答える
1

残念ながら、TCPDFは、エイリアスを置き換える最終的な番号ではなく、エイリアスを調整します。$this->AliasNbPages('{p}') と $this->AliasNumPAge('{n}') を使用してもあまり役に立ちません。余分なパディングはそのまま残ります。

唯一の解決策は、エイリアスの代わりにページ番号を入れることです。

SourceForge.net の元のバグ (TCPF バグ トラッカー)

于 2011-06-29T12:23:21.683 に答える
0

問題はエイリアス内にあると思います。これらは挿入時に幅が計算される単なるテキストであり、数字に置き換えるときではありません。

したがって、テキスト幅は文字列に対して(文字通り)計算されます{np}/{nb}。そして、それが最後の数字に置き換えられると、1/9それよりも小さくなりますが、23/109大きくなります。

使用されるNbPagesエイリアス(setAliasNbPages()?)を、その幅を反映するものにthe total number of pages置き換えることができます。これは、その数を見積もることができます。また、エイリアスを使用せずに現在のページ番号を直接使用できるため、少なくともそのエイリアスでは問題は発生しないと思います。

于 2011-03-30T10:56:14.680 に答える
-4

これを試して

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

私のために働いている

于 2013-02-26T15:38:20.400 に答える