Транзакция TCPDF: пустое семейство шрифтов

Я использую TCPDF для создания PDF-файла и получаю следующую ошибку при использовании транзакции: ОШИБКА TCPDF: пустое семейство шрифтов

У меня есть следующий фрагмент кода (с транзакцией для разрыва страницы):

            $titleDesc = $sPDFQuestion;
            $pageNum = $this->pdf->PageNo();
            $this->pdf->startTransaction();

            $this->pdf->Bookmark($sPDFQuestion, 1, 0);

            $this->pdf->titleintopdf($pdfTitle, $sPDFQuestion);
            if ($pageNum != $this->pdf->PageNo()){
               $this->pdf->rollbackTransaction(false);
                $this->pdf->AddPage('P', 'A4');
                $this->pdf->Bookmark($sPDFQuestion, 1, 0);
                $this->pdf->titleintopdf($pdfTitle, $sPDFQuestion);
            }
            else {
                $this->pdf->commitTransaction();
            }

Это функция titleintopdf():

    public function titleintopdf($title, $description = '')
{
    if (!empty($title)) {
        $title = $this->delete_html($title);
        $oldsize = $this->FontSizePt;
        $this->SetFontSize($oldsize + 4);
        $this->Line(5, $this->y, ($this->w - 5), $this->y);
        $this->ln(3);
        $this->MultiCell('', '', $title, '', 'C', 0);
        $this->MultiCell('', '', "Number:".$this->PageNo(), '', 'C', 0);
        if (!empty($description) && isset($description)) {
            $description = $this->delete_html($description);
            $this->ln(7);
            $this->SetFontSize($oldsize + 2);
            $this->MultiCell('', '', $description, '', 'C', 0);
            $this->ln(2);
        } else {
            $this->ln(4);
        }
        $this->MultiCell('', '', "Number:".$this->PageNo(), '', 'C', 0);

        $this->Line(5, $this->y, ($this->w - 5), $this->y);
        $this->ln(5);
        $this->SetFontSize($oldsize);
    }
}

Когда я не откатываю транзакцию, а просто фиксирую ее, все работает нормально. Я понятия не имею, почему возникает эта ошибка. Вы знаете, в чем может быть проблема?

Приветствую!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
861
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибка заключается в

$this->pdf->rollbackTransaction(false);

«false» здесь означает не восстанавливать $this->pdf в исходное состояние, а вернуть в исходное состояние как объект TCPDF, поэтому правильным будет либо:

$this->pdf = $this->pdf->rollbackTransaction(false);

или

$this->pdf->rollbackTransaction(true);

Ошибка «ОШИБКА TCPDF: пустое семейство шрифтов» — это просто последующая ошибка $this->pdf, которая больше недействительна.

Другие вопросы по теме