TCPDF页面旋转

Jam*_*mes 8 php pdf rotation tcpdf

我正在尝试生成一个包含202毫米宽,50毫米高的标签的PDF文件.我设法做到这一点,并添加了所需的文本和条形码,但我的问题是标签先打印出窄边,所以整个页面需要旋转90度.

我可以通过简单地右键单击页面并选择" 顺时针旋转"(Shift + Ctrl ++)在Adobe Reader中轻松完成此操作,但我确实需要在代码中执行此操作.

有谁知道如何使用TCPDF执行此操作?我已经尝试过旋转功能,但似乎无法使其正常工作.任何代码示例都会有所帮助.

Law*_*eGS 10

如何在构建页面时将其设置为横向?

TCPDF::__construct($orientation = 'L',
$   unit = 'mm',
$   format = 'A4',
$   unicode = true,
$   encoding = 'UTF-8',
$   diskcache = false)
Run Code Online (Sandbox Code Playgroud)

$ orientation(字符串)页面方向.可能的值是(不区分大小写):

  • P或纵向(默认)
  • L或风景
  • ''(空字符串)用于自动定位

http://www.tcpdf.org/doc/classTCPDF.html#a5420ac8b0726a604260780d8f4185fc1

  • 我认为你是对的,但你应该将'P'改为'L' (3认同)

jad*_*wyn 6

我用1.5版做了什么

    $pdf->AddPage(); // Orientation for the first page is defined into configuration file.

    $pdf->writeHTML("Portrait 1");

    $pdf->AddPage('L');

    $pdf->writeHTML("Landscape !");

    $pdf->AddPage('P');

    $pdf->writeHTML("Portrait 2");

    $pdf->Output();
Run Code Online (Sandbox Code Playgroud)

而且效果很好.


Fem*_*emi 5

Rotate很奇怪。文档没有告诉您的是,您必须StartTransform先执行 a,然后执行 a Rotate,然后再执行 a StopTransform。您只能StartTransform在以某种方式设置 X/Y 位置后才能进行调用(例如,我用来SetXY初始定位页面,然后您可以调用StartTransform)。所以尝试这样做:

  $this->pdfinvoice->StartTransform();
  $this->pdfinvoice->Rotate(-90);
Run Code Online (Sandbox Code Playgroud)

然后添加您的内容,然后致电

  $this->pdfinvoice->StopTransform();
Run Code Online (Sandbox Code Playgroud)

当你完成时。看看这对你有什么作用。

  • $page_format= array(55,55,'旋转'=>-90); $pdf->AddPage('P', $page_format, false, false); // 也可以,你可以设置 $pdf->SetPageUnit("mm"); 以防万一 .. (6认同)
  • @YumYumYum 提供的答案实际上应该作为真正的答案发布。这实际上比发布的其他解决方案效果更好。 (2认同)