Переменная TCPDF / TCPDI не печатается в объединенном документе

Я пробовал несколько разных вещей и не могу понять, почему это не работает. Это напечатает номер страницы внизу объединенного документа. Пример: если фамилия Смит, это должно быть Smith POL 0001. Однако он не печатает фамилию ... он просто говорит POL 0001. Код ниже ... есть также phpMailer, который является его частью, но Я исключил его, поскольку он не имеет отношения к делу, однако в этом коде работает та же переменная $lastName. Я пробовал скопировать запрос в тот же раздел, испортил кавычки и многое другое.

<?php

include("db_connection.php");


    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    use setasign\Fpdi;

    require '../PHPMailer/src/Exception.php';
    require '../PHPMailer/src/PHPMailer.php';
    require '../PHPMailer/src/SMTP.php';

    if (isset($_POST))
    {
        $uid = $_POST['uid'];
        $updaterID = $_POST['updaterID'];

        $supp_pol_letter = $_POST['supp_pol_letter'];
        $building_pol = $_POST['building_pol'];
        $RCV_pol = $_POST['RCV_pol'];
        $andy_estimate_letter = $_POST['andy_estimate_letter'];

        $supp_pol_letter_order = $_POST['supp_pol_letter_order'];
        $building_pol_order = $_POST['building_pol_order'];
        $RCV_pol_order = $_POST['RCV_pol_order'];
        $andy_estimate_order = $_POST['andy_estimate_order'];

         $query = "SELECT i.insEmail, i.insAltEmail, i.companyName, i.attn, l.companyID, u.lastName, f.s1_claimno FROM insurancecompany i INNER JOIN letterofrep l on l.companyID = i.companyID INNER JOIN logins u ON u.userID = l.clientid INNER JOIN fcis f ON f.uid = l.clientid WHERE l.clientID = ? AND l.letter_type = ?";
         $query = $con->prepare($query);
         $query->execute([$uid,"letterofrep"]);
         $row = $query->fetch();

        $insEmail = $row['insEmail'];
        $insAltEmail = $row['insAltEmail'];
        $companyName = $row['companyName'];
        $companyID = $row['companyID'];
        $attn = $row['attn'];
        $lastName = $row['lastName'];
        $claimno = $row['s1_claimno'];

        $supppolletterpdf = $uid ."_POLletterofrep.pdf";
        $buildingpdf = $uid ."_building_pol_pol.pdf"; 
        $RCVpdf = $uid ."_RCV_pol_pol.pdf";
        $andyestimatepdf = $uid ."_andy_estimate.pdf";      

        $filesarray = array();

        if (($supp_pol_letter == 1) && (file_exists($supppolletterpdf) == 1)) { 
           $filesarray[$supp_pol_letter_order]=$supppolletterpdf;
        }

        if (($building_pol == 1) && (file_exists($buildingpdf) == 1)) { 
           $filesarray[$building_pol_order]=$buildingpdf;
        }

        if (($RCV_pol == 1) && (file_exists($RCVpdf) == 1)) { 
           $filesarray[$RCV_pol_order]=$RCVpdf;
        }

        if (($andy_estimate_letter == 1) && (file_exists($andyestimatepdf) == 1)) { 
           $filesarray[$andy_estimate_order]=$andyestimatepdf;
        } 

        ksort($filesarray);

        require_once('../tcpdf/tcpdf.php');
        require_once('../tcpdf/tcpdi.php');

        class MyPDF extends TCPDI
        {
            public $stamp_num = 1;
            public function Footer()
            {

                $page_num = $this->PageNo();
                if ((int)$page_num  > 2){

                        $this->SetFont('helvetica', 'N', 12);
                        $number =  str_pad($this->stamp_num, 4, "0", STR_PAD_LEFT);
                        $paragraph = "<font style=\"color:red\">" . $lastName . " POL " . $number ."</font>";

                        $this->SetY(-13);
                        $this->SetX(148);
                        $this->MultiCell(0, 0,  $paragraph, 0, 'C', 0, 12, '', '', true, 0, true);
                        $this->stamp_num++;
                }

            }

        }

        $pdf = new MyPDF(); 


        foreach ($filesarray AS $file) {

        $pageCount = $pdf->setSourceFile($file);

        for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {

        $templateId = $pdf->importPage($pageNo);

        $size = $pdf->getTemplateSize($templateId);

        $pdf->AddPage($size['orientation'], $size);

        $pdf->setPageFormatFromTemplatePage($pageNo, $size['orientation']);

        $pdf->useTemplate($templateId);

        }

        }

        $attachment = $pdf->Output("Merged.pdf", "S");


        echo "Success";

    }

?>
Стоит ли изучать 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
361
1

Ответы 1

Вы уверены, что $ lastName не пусто и доступно внутри вашего класса? Фактически ... вы рассматривали возможность добавления $ lastName в свой MyPDF как глобального?

class MyPDF extends TCPDI {
        global $lastName;
        public $stamp_num = 1;

или даже лучше (чище) создайте установщик переменных:

class MyPDF extends TCPDI {

    protected $lastName = '';
    public $stamp_num = 1;

    public function Footer() {

        $page_num = $this->PageNo();
        if ((int)$page_num  > 2){

                $this->SetFont('helvetica', 'N', 12);
                $number =  str_pad($this->stamp_num, 4, "0", STR_PAD_LEFT);
                $paragraph = "<font style=\"color:red\">" . $this->lastName . " POL " . $number ."</font>";

                $this->SetY(-13);
                $this->SetX(148);
                $this->MultiCell(0, 0,  $paragraph, 0, 'C', 0, 12, '', '', true, 0, true);
                $this->stamp_num++;
        }

    }

    public function setlastName($lastName) {
        $this->lastName = $lastName;
    }

    protected function getlastName() {
        return $this->lastName;
    }

}

$pdf = new MyPDF();
$pdf->setlastName($lastName);

Есть несколько способов сделать это, но я уверен, что вы уловили суть. Я проверил суть того, что вы пытаетесь сделать, с моей собственной установкой TCPDF / TCPDI, и она работает. Ваша переменная $ paragraph работает как написано, кавычки и все такое.

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