PDF編輯在PHP中?



(7)

PHP中的PDF / pdflib擴展文檔是稀疏的(在bugs.php.net中已經註明了這一點) - 我推薦你使用Zend庫。

https://ffff65535.com

有誰知道在PHP中編輯PDF的好方法嗎? 優選開源/零許可成本方法。 :)

我正在考慮打開PDF文件,替換PDF中的文本,然後寫出修改後的PDF版本?

我過去使用FPDF編程創建了PDF文件,但有時發現它有點笨拙。



不知道這是否是一種選擇,但它與Zend的pdf庫非常相似,但不需要加載一堆額外的代碼(zend框架)。 它只是擴展了FPDF。

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

在這裡,你基本上可以做同樣的事情。 加載PDF,在其上面寫下,然後保存到新的PDF中。 在FPDI中,您基本上將PDF插入為圖像,以便您可以隨意放置任何內容。

但是,這又一次使用FPDF,所以如果你不想使用它,那麼它將無法工作。


如果你需要真正簡單的PDF,那麼Zend或FPDF就可以。 不過,我發現他們很難和令人沮喪的工作。 而且,由於API的工作方式,沒有好的方法將內容從演示文稿和業務邏輯中分離出來。

出於這個原因,我使用dompdf ,它會自動將HTML和CSS轉換為PDF文檔。 您可以像為HTML頁面一樣佈置模板,並使用標準的HTML語法。 你甚至可以包含一個外部CSS文件。 圖書館不完美,非常複雜的標記或css有時會受到損壞,但我還沒有發現任何其他的工作。


我們使用pdflib從我們的rails應用程序創建PDF文件。 它具有綁定PHP和大量其他語言的功能。

我們使用商業版本,但他們也有一個免費/開源版本 ,它有一些限制。

不幸的是,這只允許創建PDF文件。

如果您想打開並“編輯”現有文件,pdflib確實提供這樣做的產品 ,但成本LOT


我真的對dompdf抱有很高的期望(這是一個很酷的想法),但定位問題是我使用fpdf的主要因素。 雖然每一個元素都必須設置,但它很乏味; 它是強大的,因為所有人都出去了。

我在文檔的工作區下放置一個圖像,以便將我的佈局放在頂部以適應。 對於列來說,它總是足夠的(需要一點點的PHP字符串計算,但沒有太大的興奮)。

祝你好運。


<?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