문제

누가 알고있는 좋은 방법 편집 Pdf PHP?바람직하게는 열 근원/zero-라이센스 비용 방법이 있습니다.:)

나의 라인을 따라 생각을 열어의 PDF 파일을 대체 텍스트 PDF 다음를 작성하고 수정 버전 PDF?

나는 프로그래밍 방식으로 만들어의 PDF 파일을 사용하여 과거에 FPDF 지만,그것은 조금 다루기 힘드니다.

도움이 되었습니까?

해결책

을 복용하는 경우에는'빈'접근 방식을,당신은 당신할 수 있는 텍스트의 위치를 정확하게 당신이 원하는 어느 곳에서 페이지입니다.그래서 그것은 상대적으로 쉽게(그렇지 않으면 지금)을 추가하고 누락된 텍스트 문서입니다.예를 들어 Zend Framework:

<?php
require_once 'Zend/Pdf.php';

$pdf = Zend_Pdf::load('blank.pdf');
$page = $pdf->pages[0];
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
$page->setFont($font, 12);
$page->drawText('Hello world!', 72, 720);
$pdf->save('zend.pdf');

하려는 경우를 대체하는 인라인 컨텐츠 등"[자리 표시자 string],"그것은 훨씬 더 복잡합니다.는 동안 그것은 기술적으로 가능하지,당신은 가능성이 엉망의 레이아웃 페이지입니다.

PDF 문서가로 구성된 세트의 원시적인 그리기 작업:여기에,여기에 이미지,텍스트 덩어리,등등.그것은 포함하지 않는 모든 정보를 레이아웃에 대해서는 의도의 기본 요소.

다른 팁

가 무료로 사용하기 쉽 PDF 클래스를 만드는 PDF 문서입니다.라 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');

필요할 경우 정말 간단 Pdf,다음 젠나 FPDF 괜찮습니다.그러나 나는 그들을 찾기 어렵고 실망으로 작동합니다.또한,때문에 방식의 API 를 작동 없이 좋은 방법은 별도의 콘텐츠 프레젠테이션에서 비즈니스에서 논리입니다.

그 이유를 들어,사용 dompdf, 는 자동으로 변환합니다 HTML 과 CSS 하는 PDF 문서입니다.배치할 수 있습니다 템플릿의 경우와 마찬가지로 HTML 페이지를 사용하여 표준 HTML 문입니다.도 포함할 수 있습니다 외부 CSS 파일입니다.라이브러리가 없는 완벽하고 매우 복잡한 마크업 또는 css,가끔 손상,그러나 나는 아무것도 발견하지 않았 다는 것으로 작동합니다.

Zend Framework 로드할 수 있고 편집 기존의 PDF 파일이 있습니다.나는 그것을 지원하의 개정이 너무.

내가 사용하는 그것을 만들기 문서에서 프로젝트,그리고 그것은 위대한 작동합니다.편집하지 않습니다

체크아웃 doc

알지 못하는 경우 이 옵션이 있지만,그것은 매우 비슷하 젠드의 pdf 라이브러리,그러나 당신이 필요하지 않을 로드하는 코드(zend framework).그것은 단지 확장 FPDF.

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

여기서 당신은 할 수 있습니다 기본적으로 동일한 것입니다.부하 PDF,쓰기을 통해 최고의,그리고 저장하는 새로운 PDF.에 FPDI 당신은 기본적으로 삽입하는 PDF 파일로 이미지를 넣을 수 있도록 당신이 무엇을 원하다.

그러나 다시,이것을 사용하 FPDF,그래서 당신이 원하지 않는 경우 사용하는 것,그것은 작동하지 않습니다.

PDF/pdflib 확장자 설명서에서 PHP 가파스(가 주목에 bugs.php.net)-나는 추천 사용할 젠드 라이브러리입니다.

Tcpdf 은 또한 좋은 liabrary 를 생성하는 php 에서 pdf http://www.tcpdf.org/

매일 무료 아침에 대한 높은 기대 dompdf(그것은 멋진 아이디어입니다)하지만 위치에 문제가에 있는 주요 요인이 나를 사용하여 fpdf.하지만 그것은 지루한 모든 요소를 설정할 수 있;그것은 강력한었습니다.

나는 이미지의 아래에 나의 작업 공간에서 문서를 레이아웃의 상단에 맞출 수 있습니다.그는 항상에 대해서도 충분 columns(야의 작은 조금 php 문자열을 계산을 하지만 아무것도 너무 대단히 앞뒤를 헤아 리지 않).

행운을 빕니다.

우리가 사용하는 pdflib PDF 파일을 만들에서 우리의 레일이다.그것은 바인딩에 대한 PHP,톤 다른 언어가 있습니다.

우리가 사용하는 commmercial 버전이지만,그들은 또한 무료로/오픈 소스 버전 는 몇 가지 제한 사항이 있습니다.

불행하게도,이만 생성할 수 있게 합니다 PDF 습니다.

당신이 열려하고 있는'수정'기존 파일 pdflib 제공 제품 이 이, 지만,비용

<?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);
?>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top