TCPDF - 如果 pdf 页面处于横向或纵向模式,如何在 Header/Footer 函数中检测?

TCPDF - How to detect in Header/Footer function if pdf page is in landscape or portrait mode?

我的 TCPDF 文件中有自定义页面和页眉功能。由于我对纵向和横向页面使用了不同的 header/footer,因此我想检测页面的方向并使用正确的 header/footer。

首先,我使用带有 "this->page" 的开关来指示根据页码使用哪个 header/footer。但有时纵向页面上的文字较长,它会增加一个额外的页面,结果我弄得一团糟。

如何检测 pdf 页面是横向模式还是纵向模式?

如果可能的话,这就是我想做的事情。

class MYPDF extends TCPDF {
    public function Header() {
        //Detect if the page is on landscape or portrait mode
        $pageOrientation = ????

        if(//page orientation is landscape){
            //use this custom header
        }
        else {
            //use this other custom header
        }        
    }
}

提前致谢。

我有一个解决方案给你。也许它有点难看,但它会起作用。由于您在创建页面时声明了每个页面的方向,因此只需为该页面设置一个 $orientation 变量,然后在调用您的函数时测试 $orientation 的值。无论当前值在页面下方是什么,它都会相应地采取行动。如果你想变得更复杂,你可以保留一组页码 + 方向。这样您就可以根据特定页码 and/or 循环并根据方向对特定页面执行特定操作。

丑陋但它会有效。

在页眉和页脚中,您可以使用

访问方向
$this->CurOrientation

例如

if($this->CurOrientation=="L") {
    // code for landscape pages
} else {
    // code for portrait pages
}