为什么 SetXY() 似乎与其值不一致?

问题描述

我正在使用 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 (将#修改为@)