问题描述
我正在使用 FPDF 使用以下代码将多个项目添加到 PDF:
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile($pdfLocation);
$page1 = $pdf->importPage(1);
$pdf->useImportedPage($page1);
foreach ($audit->getCertificateTextItems() as $certificateTextItem) {
$pdf->SetFont($certificateTextItem->getCertificateTextPlacement()->getFont());
$pdf->SetTextColor(
// R
self::COLOURARRAY[$certificateTextItem->getCertificateTextPlacement()->getFontColour()]['r'],// G
self::COLOURARRAY[$certificateTextItem->getCertificateTextPlacement()->getFontColour()]['g'],// B
self::COLOURARRAY[$certificateTextItem->getCertificateTextPlacement()->getFontColour()]['b'],);
// Set position. We divide by an offset because the X/Y pos values against the certificate text placement are CSS PX values
// because they are set by a frontend interface
$pdf->SetXY(
( $certificateTextItem->getCertificateTextPlacement()->getXPos() / SELF::XOFFSET ),( $certificateTextItem->getCertificateTextPlacement()->getYPos() / SELF::YOFFSET )
);
// Add data to position
$pdf->Write(0,$certificateTextItem->getText());
// Reset text position - This is a "stab in the dark"
$pdf->SetXY(0,0);
$pdf->Write(0,'');
}
$certificateTextItem->getCertificateTextPlacement()->getXPos()
和 $certificateTextItem->getCertificateTextPlacement()->getYPos()
的值是根据 CSS px 值创建的,所以我知道它们与 PDFP XY 值无关
为了解决这个问题,我查看了值差异并找出了 XY 偏移量 (SELF::XOFFSET & SELF::YOFFSET)
这适用于我的第一个 write() 但任何进一步的 write() 调用,使用偏移量,都在位置上
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)