Я пробовал несколько разных вещей и не могу понять, почему это не работает. Это напечатает номер страницы внизу объединенного документа. Пример: если фамилия Смит, это должно быть 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";
}
?>






Вы уверены, что $ 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 работает как написано, кавычки и все такое.