1
我正在編輯一個代碼,該表格用填充了從數據庫調用的數據的表格創建PDF。FPDF表格超出右邊距
該代碼可以完美地在列中打印第一行中指定的參數數據,如圖所示。
但當DB詢問幾個參數,列超過右邊距極限。你可以在這張圖片中看到。
我已經看到了這個網站,從具有表和FPDF問題的人每一個崗位,但我不能找到一個出路。
這是我在PDF打印數據的代碼:
$type = 'application/pdf';
$pdf=new \FPDF('L');//Querformat
$name=$arbeitsplatz->getName();
$pdf->AliasNbPages();
$pdf->SetFont('Arial','',10);
$pdf->SetTitle('Arbeitsplatzliste');
$pdf->SetAuthor($user_info->getKuerzel());
$pdf->SetCreator('PMA Manager');
$pdf->SetSubject("Arbeitsplatzliste drucken");
$pdf->SetAutoPageBreak(true, 10);
$pdf->SetMargins(10, 10, 10);
//$pdf->SetTopMargin(20);//in mm
$pdf->AddPage();
$cellLength_array=array();
//set initial Y axis position
$y_axis = 20;
$pdf->SetY($y_axis);
if ($pdf->GetY() == $y_axis)
{
//Kopfzeile(Tabelle header)
$pdf->Cell(30,7,"Probe",1,0,'L');
$pdf->Cell(20,7,"Frist",1,0,'L');
//Start to write table
foreach($apParamArray as $parameter)
{
if($bereich==='W' || $bereich==='I'){
$arbeit_para_name=utf8_decode($parameter->getName()).' ['.utf8_decode($parameter->getEinheit()).']';
}
else
{
$arbeit_para_name=utf8_decode($parameter->getNameD()).' ['.utf8_decode($parameter->getEinheit()).']';
}
$length=strlen($arbeit_para_name)*2;
array_push($cellLength_array,$length);
$pdf->Cell($length,7,$arbeit_para_name,1,0,'C');
}
$pdf->Ln(7);//mm
}
//Start to add data
foreach($apProbenArray as $probe)
{
$frist=$probe->getFrist();
$keys=array();
$keys=array_keys($probe->getParameterliste());
if($bereich==='W' || $bereich==='I'){$pma_nr=$probe->getPmaNr();} else{$pma_nr= $probe->getLaborNr();}
$pdf->Cell(30,7,$pma_nr,'LRB',0,'L');
$pdf->Cell(20,7,$frist,'LRB',0,'L');
for($j=0;$j<(sizeof($arbeit_para_r_ID_array));$j++)
{
$breite=$cellLength_array[$j];
$arbeit_parameterID=$arbeit_para_r_ID_array[$j];
if(in_array($arbeit_parameterID , $keys))
{
$parameterliste=$probe->getParameterliste();
//print_r($parameterliste);
$ergebnis=$parameterliste[$arbeit_parameterID]->getErgebnis();
if($ergebnis!==null)
$pdf->Cell($breite,7,utf8_decode($ergebnis),'LRB',0,'C');
else
$pdf->Cell($breite,7,'...','LRB',0,'C');
}
else
$pdf->Cell($breite,7,'','LRB',0,'C');
}
$pdf->Ln(7);//mm
}
//end of writting data
//Print and get file
$pdf->Output('prints/Arbeitsplatzliste.pdf','F');
$fichier='../web/prints/Arbeitsplatzliste.pdf';
$response = new Response();
$filename='Arbeitsplatzliste.pdf';
$response->setContent(file_get_contents($fichier));
$response->headers->set('Content-Type', $type);
$response->headers->set('Content-disposition', 'filename='.$filename);
return $response;
`
我tryed添加一個條件
if ($pdf->GetY() == $y_axis) && ($pdf->GetX() == -10)
$pdf->AddPage();
但沒有奏效。
我的意圖是在所有頁面顯示標題行,但它也不起作用。
我tryed本 - >How to display table header in every page using FPDF library?
這 - >Add sub-headers in all pages with FPDF
使用MultiCell代替Cell http://www.fpdf.org/en/doc/multicell.htm –
我想我已經在使用MultiCell了。因爲它打破每一個新的測試打印線。 行 - >測試| 列 - >要顯示/編輯的參數 – Franco
在第一張圖像中它接收4個參數,所以它正確打印4列。但在第二個圖像中,它爲每個測試接收9個參數。在頁邊距結束時,它應該分頁5個靜止列(即使表格格式看起來很奇怪) – Franco