#php #fpdf
#php #fpdf
Вопрос:
Я новичок в fpdf, и мне было интересно, есть ли способ предопределить, где разместить текст в документе.
Пример. Я хотел бы указать дату транзакции после «Даты» в шаблоне.
Сейчас я использую скрипт, подобный этому
$nomeFile = date("YmdHis").".pdf";
$pathTmp = "path/to/template.pdf";
$pathTmp1 = "path/to/result.pdf";
$pdf = new Pdf($pathTmp);
$pdf = new TcpdfFpdi();
$pdf->AddPage();
$pdf->setSourceFile($pathTmp);
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
$pdf->SetAutoPageBreak(false);
$pdf->Text(78, 70, '1');
$pdf->Text(38, 78, '2');
$pdf->Text(45, 87, '3');
$pdf->Text(47, 113, '4');
$pdf->Text(65, 145, '5');
$pdf->Output($pathTmp1, "F");
Итак, в основном, размещайте случайные значения и смотрите, какое из них ближе всего к моей метке, но этот способ слишком трудоемкий
Ответ №1:
Используйте функцию getY, чтобы узнать, где вы находитесь в строке, а затем функцию setY для позиционирования следующего бита текста.
Вероятно, вы найдете функцию SetXY удобной также для абсолютного позиционирования, когда она необходима.
Вот фрагмент кода, который создает адресный блок с соответствующими смещениями, чтобы все было выровнено.
$ourpdf->SetFont('Arial','B',11);
$to_offset = $ourpdf->GetStringWidth('To:') 27;
$ourpdf->Cell(0,4,'To:',0,0);
$ourpdf->SetFont('Arial','',10);
$ourpdf->SetXY($to_offset,75);
$ourpdf->Cell(0,4,$coop_data['name'],0,0);
$ourpdf->SetXY($to_offset,79);
$ourpdf->Cell(0,4,$coop_data['contact'],0,1);
$ourpdf->SetXY($to_offset,83);
$ourpdf->Cell(0,4,$coop_data['address1'],0,1);