Поворот страницы TCPDF - PullRequest
       7

Поворот страницы TCPDF

8 голосов
/ 30 марта 2011

Я пытаюсь создать PDF-файл, содержащий метки шириной 202 мм и высотой 50 мм. Мне удалось это сделать, и я добавил необходимый текст и штрих-код, но моя проблема в том, что этикетки сначала печатаются по узкому краю, поэтому всю страницу нужно повернуть на 90 градусов.

Я могу легко сделать это в Adobe Reader, просто щелкнув правой кнопкой мыши на странице и выбрав Повернуть по часовой стрелке (Shift + Ctrl ++), но мне действительно нужно сделать это в коде.

Кто-нибудь знает, как это сделать с помощью TCPDF? Я попробовал функцию Rotate, но не могу заставить ее работать. Любые примеры кода будут полезны.

Ответы [ 4 ]

10 голосов
/ 24 мая 2011

Как насчет установки пейзажа при создании страницы?

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

ориентация страницы (строка) ориентация страницы. Возможные значения (без учета регистра):

  • P или Портрет (по умолчанию)
  • L или Пейзаж
  • '' (пустая строка) для автоматической ориентации

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

6 голосов
/ 25 августа 2014

Что я сделал с версией 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();

И это работает хорошо.

4 голосов
/ 26 мая 2011

Rotate нечетно.То, что документы не говорят вам, что вы должны сначала выполнить StartTransform, а затем Rotate, а затем StopTransform.Вы можете выполнить вызов StartTransform только после того, как вы каким-либо образом установите положение X / Y (поэтому, например, я использую SetXY для первоначального позиционирования страницы, затем вы можете вызвать StartTransform).Поэтому попробуйте сделать:

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

, затем добавьте свой контент, а затем позвоните

  $this->pdfinvoice->StopTransform();

, когда вы закончите.Посмотрите, как это работает для вас.

0 голосов
/ 26 сентября 2011

Самый простой вариант - установить страницу в альбомном режиме 'L', если это то, что вам нужно. В противном случае, если вам нужна страница в портретном режиме, но с повернутыми объектами, вы можете создать шаблон XObject и поместить туда свой контент, включая графические преобразования. Проверьте примеры по умолчанию в http://www.tcpdf.org для графических преобразований и шаблонов XObject.

...