2013-03-14 3 views
1

Мне был предоставлен файл PDF с пятнами, которые необходимо заполнить значениями из базы данных. Я использую FPDF-библиотеку вместе с FPDI, и, похоже, много проб и ошибок, чтобы разместить текст ... Мне нужно было поиграть с координатами X и Y, чтобы получить текст в правильных местах. Похоже на громоздкий и неэффективный способ сделать это. Я что-то упустил?Попытка написать в файл PDF с использованием FPDF и FPDI

require_once('fpdf/fpdf.php'); 
require_once('fpdi/fpdi.php'); 

// initiate FPDI 
$pdf = new FPDI(); 
// add a page 
$pdf->AddPage(); 
// set the sourcefile 
$pdf->setSourceFile('1.pdf'); 
// import page 1 
$tplIdx = $pdf->importPage(1); 
// use the imported page and place it at point 10,10 with a width of 200 mm (This is the image of the included pdf) 
$pdf->useTemplate($tplIdx, 10, 10, 200); 
// now write some text above the imported page 
$pdf->SetTextColor(0,0,0); 

$pdf->SetFont('Arial','B',20); 
$pdf->SetXY(85, 50); 
$pdf->Write(0, "Johnny Walker"); 
$pdf->SetFont('Arial','B',11); 
$pdf->SetXY(92, 69); 
$pdf->Write(0, "3"); 
$pdf->SetFont('Arial','B',10); 
$pdf->SetXY(114, 76); 
$pdf->Write(0, 'Ventilation Management of the Amyotropic Lateral Scleropsis'); 
$pdf->SetFont('Arial','B',10); 
$pdf->SetXY(114, 90); 
$pdf->Write(0, date('m/d/Y')); 
$pdf->SetFont('Arial','B',7); 
$pdf->SetXY(66, 127); 
$pdf->Write(0, '1.5'); 
$pdf->Output('1.pdf', 'I'); 

ответ

3

Я использовал FPDF в прошлом один раз, и вы правы установки XY позиции довольно громоздкими. Но, похоже, нет другого пути.

Единственное, что я хотел бы предложить рассмотреть

$pdf->SetXY($pdf->GetX() + $x_value, $pdf->GetY() + $y_value) 

в тех местах, где вы не уверены в точном положении вы должны поместить в.

+0

Да, это совершенно абсурдно. Это такая распространенная проблема, и я не знаю, почему для нее нет стандартизованного решения. Интересно, легче ли писать текстовые файлы ... Я не знаю. Кстати, ваш код перемещает координаты из текущей позиции на X_value по горизонтали и y_value по вертикали, это правильно? – Ashesh

+0

Ну, мне действительно очень понравилось использовать FPDF. Он довольно прост в использовании, но я думаю, когда вам нужно долго работать с файлами PDF, тогда вам нужен лучший способ, чем координация xy. Да, это правильно. Это просто нужно помнить, поскольку иногда вам нужно добавить несколько строк после «последней» позиции XY. Таким образом, вам не нужно будет помнить точные координатные точки. Просто добавьте несколько, пока вы идете вперед. – mavili

+0

Добавление значений в текущую позицию также затрагивает проблему, когда вы пишете текст из переменной, и вы не знаете, сколько строк оно примет. Яркими значениями для XY могут быть строки, напечатанные друг на друге .. что-то вроде этого: D – mavili

Смежные вопросы