12

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

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

有谁知道如何用 TCPDF 做到这一点?我已经尝试过旋转功能,但似乎无法使其正常工作。任何代码示例都会有所帮助。

4

7 回答 7

12

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

这运作良好。

于 2014-08-25T16:20:07.840 回答
11

在构建页面时将其设置为横向怎么样?

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

$orientation (string) 页面方向。可能的值是(不区分大小写):

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

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

于 2011-05-23T21:41:28.330 回答
5

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

  $this->pdfinvoice->StartTransform();
  $this->pdfinvoice->Rotate(-90);

然后添加您的内容,然后调用

  $this->pdfinvoice->StopTransform();

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

于 2011-05-26T13:40:17.297 回答
1

Landscape最简单的方法是:首先转到您的 tcpdf.config 文件,然后转到该行

 * Page orientation (P=portrait, L=landscape).
 */
define ('PDF_PAGE_ORIENTATION', 'L','P');

只需将“P”更改为“L”保存并运行它。

于 2021-11-10T05:57:29.880 回答
1

构造函数中的format参数具有广泛的可选参数,包括Rotate并支持任意页面widthheight- 示例:

// 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]);

文档在这里

于 2020-12-14T21:47:36.803 回答
0

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

于 2011-09-26T15:31:00.413 回答
0

这是一篇旧帖子,但如果有人遇到此问题,我建议您先尝试页面的横向模式。

这对我有用:

这是设置A4横向的代码:

$pdf->AddPage('L', 'A4');

访问 https://tcpdf.org/examples/example_028/了解更多信息。

于 2022-03-01T10:12:32.290 回答