Мне был предоставлен файл 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');
Да, это совершенно абсурдно. Это такая распространенная проблема, и я не знаю, почему для нее нет стандартизованного решения. Интересно, легче ли писать текстовые файлы ... Я не знаю. Кстати, ваш код перемещает координаты из текущей позиции на X_value по горизонтали и y_value по вертикали, это правильно? – Ashesh
Ну, мне действительно очень понравилось использовать FPDF. Он довольно прост в использовании, но я думаю, когда вам нужно долго работать с файлами PDF, тогда вам нужен лучший способ, чем координация xy. Да, это правильно. Это просто нужно помнить, поскольку иногда вам нужно добавить несколько строк после «последней» позиции XY. Таким образом, вам не нужно будет помнить точные координатные точки. Просто добавьте несколько, пока вы идете вперед. – mavili
Добавление значений в текущую позицию также затрагивает проблему, когда вы пишете текст из переменной, и вы не знаете, сколько строк оно примет. Яркими значениями для XY могут быть строки, напечатанные друг на друге .. что-то вроде этого: D – mavili