TCPDFでPDF出力の際に、ページ番号を出力時に右寄せ出力がうまくいかない
解決したいこと
TCPDFを用いてPDFを作成する際に、フッターにページ番号を出力したいが、右寄せ指定しても若干左に位置がずれる。
正しい位置で出力するにはどうすればよいか、お知恵を貸してください。
発生している問題・エラー
黒枠内で右寄せとなるような出力位置を想定しているが、実際より左側に出力されてしまう。
該当するソースコード
以下のコードで、Footerの出力処理をオーバーライドしている。
class MYPDF extends TCPDF {
// ヘッダ
function Header() {
}
// フッタ
function Footer() {
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont('kozminproregular', '', 10);
$text = $this->getAliasNumPage() . ' / ' . $this->getAliasNbPages();
$this->Cell(0, 0, $text, 0, 0, 'R');
}
}
自分で試したこと
getAliasNumPage や getAliasNbPages は、実際に数値を返す関数ではなく、後でページ数を埋め込むためのエイリアス文字列がセットされるようでした。(出力処理中に、最終の全体ページの取得ができないため)
getAliasNumPage = {{:pnp:}}
getAliasNbPages = {{:ptp:}}
考察
表示位置的は、"{{:pnp:}} / {{:ptp:}}" という文字列を基に出力位置が決定されたうえで、出力されているのではないかと推測されるが、良い解決方法が見つかりません。
※例では、変換されないように「:」を「;」にしている
この現象が起こるのは、中央ぞろえ、右詰めにしたときだけであり、左詰めの場合は、不自然な余白が空くことはないため、おとなしく左詰めで座標を指定して出力すべきかもしれませんが、コード的にもナンセンスなので、何かいい解決方法があればおしえてください。
0