私はmPDFライブラリを使用してPDFを生成しています。私のヘッダとフッタはいくつかのパラメータによってサイズが異なります。mPDFのフッタ重複を防ぐ
静的な解決方法は、フッターの余白を設定することでオーバーラップを解決しますが、フッターのサイズが異なる可能性があるため、これは私が満足している解決策ではありません。フッターの寸法を取得し、それに応じてマージンを適用する方法はありますか?
私はmPDFライブラリを使用してPDFを生成しています。私のヘッダとフッタはいくつかのパラメータによってサイズが異なります。mPDFのフッタ重複を防ぐ
静的な解決方法は、フッターの余白を設定することでオーバーラップを解決しますが、フッターのサイズが異なる可能性があるため、これは私が満足している解決策ではありません。フッターの寸法を取得し、それに応じてマージンを適用する方法はありますか?
問題はmpdfのドキュメントにあります。私はmargin_footerとmargin_headerは文書本体とこれらの間のマージンだと思う。代わりに、margin_footerとmargin_headerは、margin_topとmargin_bottomがあると考えるように、ドキュメントのマージンです。
したがって、下端と上端の余白を変更すると、ドキュメント本文の開始位置が決まります。ヘッダー/フッターの余白を変更すると、印刷マージンが決まります。
希望すると助かります!
更新答え
MPDFのドキュメントは、コンストラクタ呼び出しのためのビットオフになって、私は推測します。 margin_top/bottom引数は実際にはコンテンツマージンで、margin_header/footer引数には適用されません。 (私が正しくリコールすれば)。 margin_top/bottomはドキュメントの先頭からの絶対マージンで、ヘッダー/フッターの高さを含める必要があります。私のために働いた
/**
* Create a new PDF document
*
* @param string $mode
* @param string $format
* @param int $font_size
* @param string $font
* @param int $margin_left
* @param int $margin_right
* @param int $margin_top (Margin between content and header, not to be mixed with margin_header - which is document margin)
* @param int $margin_bottom (Margin between content and footer, not to be mixed with margin_footer - which is document margin)
* @param int $margin_header
* @param int $margin_footer
* @param string $orientation (P, L)
*/
new mPDF($mode, $format, $font_size, $font, $margin_left, $margin_right, $margin_top, $margin_bottom, $margin_header, $margin_footer, $orientation);
アップデートのおかげで、 "実験設定" '$ mpdf-> setAutoTopMargin = 'stretch'と$ mpdf-> setAutoBottomMargin = 'stretch''の設定は、ヘッダとフッタが本体と重ならないようにします。ヘッダーとフッターの余白を手動で計算します。ダイナミックなユーザー作成のヘッダーとフッターを扱うときには非常に便利です – Bogdan
うわー!それが可能であることを知らなかった。その情報をありがとう、すぐに便利になるでしょう。 – Daniel
私は$ mpdf-> setAutoBottomMargin = 'stretch'を成功させようとしましたが、どのような使い方をしてください? – Aiphee
$mpdf->setAutoBottomMargin = 'stretch';
:ここ
はマージンを扱うのが正しい方法です。私がしなければならなかったのは、フッタの前にオプションを含めることでした。
私はフッターの前にそれを設定するまで、それは私のためにもうまくいきませんでした。 –
私も同じ問題を抱えていますが、解決策が見つかったら質問を更新できますか? – Bogdan
私は以下の答えを更新しました。うまくいけばそれはあなたを助けるでしょう。マージンはmargin_header/footerに設定する必要があります。設定ファイルで 'setAutoTopMargin'設定を無効にする必要があるかもしれません。 – Daniel