10

私のサーバーには、ダウンロード時にすべてのページにテキストを追加する必要がある 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ページだけでなく、すべてのページにテキストを追加する必要があります。ドキュメントを読んでこれを行う方法がわかりません

4

3 に答える 3

16

フォローしてみてください

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); 

エラーがあれば教えてください

于 2012-09-20T10:03:57.127 に答える
9

テキストを含むすべてのページが必要なので、それを行う 1 つの方法は、コードをループに入れることです。

このような:

// 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"); 
}
于 2013-11-29T12:54:07.827 に答える