Php 页面旋转

Php 页面旋转,php,pdf,rotation,tcpdf,Php,Pdf,Rotation,Tcpdf,我正在尝试生成一个包含202mm宽50mm高标签的PDF文件。我已经设法做到这一点,并添加了所需的文本和条形码,但我的问题是,标签打印出窄边第一,所以整个页面需要旋转90度 我可以在AdobeReader中轻松实现这一点,只需右键单击页面并选择顺时针旋转(Shift+Ctrl++),但我确实需要在代码中实现这一点 有人知道如何使用TCPDF实现这一点吗?我尝试过旋转功能,但似乎无法使其工作。任何代码示例都会很有帮助。在构建页面时将其设置为横向如何 TCPDF::__construct($orie

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

我可以在AdobeReader中轻松实现这一点,只需右键单击页面并选择顺时针旋转(Shift+Ctrl++),但我确实需要在代码中实现这一点


有人知道如何使用TCPDF实现这一点吗?我尝试过旋转功能,但似乎无法使其工作。任何代码示例都会很有帮助。

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

TCPDF::__construct($orientation = 'L',
$   unit = 'mm',
$   format = 'A4',
$   unicode = true,
$   encoding = 'UTF-8',
$   diskcache = false)
$orientation(字符串)页面方向。可能的值为(不区分大小写):

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

旋转
是奇数。文档没有告诉您的是,您必须先执行
开始变换
,然后执行
旋转
,然后执行
停止变换
。只有在以某种方式设置了X/Y位置之后,才能执行
startttransform
调用(例如,我使用
SetXY
来初始定位页面,然后可以调用
startttransform
)。因此,试着做:

  $this->pdfinvoice->StartTransform();
  $this->pdfinvoice->Rotate(-90);
然后添加内容,然后调用

  $this->pdfinvoice->StopTransform();

当你完成的时候。看看它是如何为您工作的。

如果您需要,最简单的选项是将页面设置为横向模式“L”。 否则,如果您需要一个纵向模式但带有旋转对象的页面,那么您可以创建一个XObject模板并将内容放在那里,包括图形转换。
查看中的默认示例,查看图形转换和XObject模板。

我对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();

这很好。

构造函数中的
格式
参数具有广泛的可选参数,包括
旋转
和支持任意页面
宽度
高度
-示例:

// page A4 rotated clockwise 90 deg.
$pdf = new TCPDF('L', 'pt', ['format' => 'A4', 'Rotate' => 90]); 

// page with custom size rotated clockwise 270 deg.
$pdf = new TCPDF('L', 'pt', ['format' => [$width, $height], 'Rotate' => 270]);

文档。

您是否已在创建时旋转页面?请看@James有趣的问题,因为最近我在考虑用PDF自动化我的投资组合,并在每个项目页面的底部添加一个数字条形码。搜索条形码和PDF我在这里登陆。你的问题解决了吗?@Sam最后我不得不用另一个程序来旋转页面。尽管如此,PDF生成和条形码呈现工作正常。由于没有其他选择,我可能会再次使用TCPDF。@James“最后我不得不使用另一个”。。。我给了你一笔赏金,希望更多的关注能带来解决方案。此外,我更喜欢“优雅的解决方案”而不是“妥协的解决方案”:@Sam ah。干杯,直到今天早上我收到完成通知,我才意识到你已经悬赏了。这是我尝试过的第一件事,但这不仅仅是我想旋转的页面。我想让文本和页面内容从页面的底部读到顶部。使用你建议的是我能够在TCPDF中旋转的最接近的方法,但我得到了各种奇怪的异常现象,很可能是因为我完全不了解这些函数是如何工作的。我猜整个坐标系都在移动:你需要调整所有的X/Y位置都是相应的,这需要一些数学知识才能正确。不幸的是,当将0,0移动到右上角时,页面上似乎没有神奇的旋转所有内容的方法。$page_format=array(55,55,'rotate'=>-90)$pdf->AddPage('P',$page_格式,false,false);//也可以,您可以设置$pdf->SetPageUnit(“mm”);如果..anwer@YumYumYum提供的答案实际上应该作为真实答案发布。这实际上比发布的其他解决方案效果更好。