Использование fpdf для изменения существующего pdf в php
у меня есть банк PDF-файлов на моем сервере, который при загрузке нужен текст, добавленный к каждой странице. Я использую fpdf, чтобы попытаться открыть файл, добавить текст на каждую страницу, закрыть файл и служить браузеру.
$pdf = new FPDI();
$pdf->setSourceFile($filename);
// import page 1
$tplIdx = $pdf->importPage(1);
//use the imported page and place it at point 0,0; calculate width and height
//automaticallay and ajust the page size to the size of the imported page
$pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
// now write some text above the imported page
$pdf->SetFont('Arial', '', '13');
$pdf->SetTextColor(0,0,0);
//set position in pdf document
$pdf->SetXY(20, 20);
//first parameter defines the line height
$pdf->Write(0, 'gift code');
//force the browser to download the output
$pdf->Output('gift_coupon_generated.pdf', 'D');
header("location: ".$filename);
в минуту это просто пытается поместить текст в любом месте pdf и сохранить его, но я получаю ошибку
FPDF error: You have to add a page first!
Если я могу заставить его сделать это, мне нужно добавить текст на каждую страницу документа, а не только 1, не уверен, как это сделать это прочитав документацию
3 ответов
попробовать следующие
require_once('fpdf.php');
require_once('fpdi.php');
$pdf =& new FPDI();
$pdf->AddPage();
используйте эту страницу в качестве шаблона, а затем
$pdf->setSourceFile($filename);
// import page 1
$tplIdx = $pdf->importPage(1);
//use the imported page and place it at point 0,0; calculate width and height
//automaticallay and ajust the page size to the size of the imported page
$pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
Дайте мне знать, если у вас есть какие-либо ошибки
поскольку вам нужны все страницы с текстом, один из способов сделать это-поместить код в цикл.
такой:
// Get total of the pages
$pages_count = $pdf->setSourceFile('your_file.pdf');
for($i = 1; $i <= $pages_count; $i++)
{
$pdf->AddPage();
$tplIdx = $pdf->importPage($i);
$pdf->useTemplate($tplIdx, 0, 0);
$pdf->SetFont('Arial');
$pdf->SetTextColor(255,0,0);
$pdf->SetXY(25, 25);
$pdf->Write(0, "This is just a simple text");
}
вы можете использовать графический инструмент Dhek для разработки шаблона в формате JSON, определяя области (границы, имя,...) вы хотите добавить позже существующий PDF (используя FPDF и динамические данные). См. doc at https://github.com/cchantep/dhek/blob/master/README.md#php-integration .