TCPDF不会两次打印数组元素

时间:2015-11-27 13:10:18

标签: php arrays tcpdf

我正在开发一个项目,用于根据用户输入创建 pdf 发票。 输入放入一个数组:array ('input1' => 'value1', 'input2' => 'value2') 我让我的PHP解析数组并计算TCPDF所需的高度/宽度,以便能够在正确的位置打印带边框的所有内容。 现在,如果用户input1和input2不同,一切正常,但如果它们完全相同(这是可能的话) TCPDF 只打印第二个输入。

这是我的代码:

public function PrintInvoiceContent() {
// settings
$rowcount = 0;
$borderL = 'L';
$borderR = 'R';
$firstBorder = true;
$firstInfo = true;
$lastBorder = true;
$dimensions = $this->getPageDimensions();

foreach ($this->input['invoice_content'] as $key => $value) { 
// key contains text, value contains actual amount in dollar
    // measurements
    $lines = ($this->getNumLines($key, 130) * 5);
    $rowcount = $rowcount + $lines;
    $startY = $this->GetY();
    $height = ceil($startY + $rowcount + $dimensions['bm']);

    if (floor($dimensions['hk']) - $height < 1) {
        $borderL = 'LB';
        $borderR = 'RB';
        $firstBorder = true;
        $lastBorder = false;
    } else if (floor($dimensions['hk']) - $height == 1) {
        $borderL = 'LB';
        $borderR = 'RB';
        $firstBorder = true;
        $lastBorder = true;
    }
    if ($firstBorder) {
        $this->Cell(0, 5, '', 'LTR', 1);
        if ($firstInfo) {
            $this->Cell(14, ($this->getNumLines($this->input['betreft'], 153) * 5), 'About: ', 'L', 0, 'L', false);
            $this->MultiCell(156, ($this->getNumLines($this->input['betreft'], 153) * 5), $this->input['About'], 'R', 'L', false);
 // prints discription of bill contents
            $this->Cell(0, 5, '', 'LR', 1, 'L', false);
            $firstInfo = false;
        }
        $this->MultiCell(130, $lines, $key, $borderL, 'L', false, 0);
        $this->Cell(40, $lines, $value, $borderR, 1, 'L', false);
        $firstBorder = false;
    } else {
        $this->MultiCell(130, $lines, $key, $borderL, 'L', false, 0);
        $this->Cell(40, $lines, $value, $borderR, 1, 'L', false);
    }
    $this->Cell(0, 2, '', 'LR', 1);
  }
}

如果用户输入变化多达1个字符,一切正常。 有没有人知道为什么如果输入的部分完全相同,第一个输入会被省略?

0 个答案:

没有答案