php - 編集 - tcpdf ダウンロード




PHPでのPDF編集? (7)

PHPでPDFを編集するための良い方法を知っている人はいますか? できれば、オープンソース/ゼロライセンスコストの方法。 :)

PDFファイルを開き、PDF内のテキストを置き換え、PDFの修正バージョンを書き出すという考えに沿っていますか?

私は過去にプログラムでFPDFを使用してPDFファイルを作成しましたが、時々少し扱いに​​くいと感じました。


PDFドキュメントを作成するための無料で使いやすいPDFクラスがあります。 FPDFと呼ばれFPDF 。 FPDI( http://www.setasign.de/products/pdf-php-solutions/fpdi )と組み合わせて、PDFドキュメントを編集することもできます。 次のコードは、FPDFとFPDIを使用して、既存のギフトクーポンにユーザーデータを入力する方法を示しています。

require_once('fpdf.php'); 
require_once('fpdi.php'); 
$pdf = new FPDI();

$pdf->AddPage(); 

$pdf->setSourceFile('gift_coupon.pdf'); 
// import page 1 
$tplIdx = $this->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 
$this->pdf->useTemplate($tplIdx, 0, 0, 0, 0, true); 

// now write some text above the imported page 
$this->pdf->SetFont('Arial', '', '13'); 
$this->pdf->SetTextColor(0,0,0);
//set position in pdf document
$this->pdf->SetXY(20, 20);
//first parameter defines the line height
$this->pdf->Write(0, 'gift code');
//force the browser to download the output
$this->pdf->Output('gift_coupon_generated.pdf', 'D');

PHPのPDF / pdflib拡張ドキュメントはまばらです(bugs.php.netで指摘されているもの)-Zendライブラリを使用することをお勧めします。



Zend Frameworkは、既存のPDFファイルをロードおよび編集できます。 リビジョンもサポートしていると思います。

私はプロジェクトでドキュメントを作成するためにそれを使用し、それは素晴らしい作品です。 ただし、編集したことはありません。

hereのドキュメントをhere


これがオプションかどうかはわかりませんが、Zendのpdfライブラリと非常によく似た動作をしますが、大量の追加コード(zendフレームワーク)をロードする必要はありません。 FPDFを拡張するだけです。

http://www.setasign.de/products/pdf-php-solutions/fpdi/

ここでは、基本的に同じことを行うことができます。 PDFをロードし、その上に上書きしてから、新しいPDFに保存します。 FPDIでは、基本的にPDFを画像として挿入するため、必要なものを何でも置くことができます。

ただし、これもFPDFを使用しているため、使用しない場合は機能しません。


本当にシンプルなPDFが必要な場合は、ZendまたはFPDFです。 しかし、私は彼らと仕事をするのは難しく、イライラすることがわかります。 また、APIの動作方法のため、コンテンツをプレゼンテーションからビジネスロジックに分離する良い方法はありません。

そのため、HTMLとCSSを自動的にPDFドキュメントに変換するdompdfを使用します。 HTMLページの場合と同じようにテンプレートをレイアウトし、標準のHTML構文を使用できます。 外部CSSファイルを含めることもできます。 ライブラリは完全ではなく、非常に複雑なマークアップまたはcssが破損することがありますが、同様に機能するものは他にありません。


<?php

//getting new instance
$pdfFile = new_pdf();

PDF_open_file($pdfFile, " ");

//document info
pdf_set_info($pdfFile, "Auther", "Ahmed Elbshry");
pdf_set_info($pdfFile, "Creator", "Ahmed Elbshry");
pdf_set_info($pdfFile, "Title", "PDFlib");
pdf_set_info($pdfFile, "Subject", "Using PDFlib");

//starting our page and define the width and highet of the document
pdf_begin_page($pdfFile, 595, 842);

//check if Arial font is found, or exit
if($font = PDF_findfont($pdfFile, "Arial", "winansi", 1)) {
    PDF_setfont($pdfFile, $font, 12);
} else {
    echo ("Font Not Found!");
    PDF_end_page($pdfFile);
    PDF_close($pdfFile);
    PDF_delete($pdfFile);
    exit();
}

//start writing from the point 50,780
PDF_show_xy($pdfFile, "This Text In Arial Font", 50, 780);
PDF_end_page($pdfFile);
PDF_close($pdfFile);

//store the pdf document in $pdf
$pdf = PDF_get_buffer($pdfFile);
//get  the len to tell the browser about it
$pdflen = strlen($pdfFile);

//telling the browser about the pdf document
header("Content-type: application/pdf");
header("Content-length: $pdflen");
header("Content-Disposition: inline; filename=phpMade.pdf");
//output the document
print($pdf);
//delete the object
PDF_delete($pdfFile);
?>






pdf