PHP로 PDF를 편집하는 좋은 방법을 아는 사람 있나요?오픈 소스/제로 라이선스 비용 방식이 바람직합니다.🙂
PDF 파일 열기, PDF 텍스트 대체, PDF 수정판 작성 등을 생각하고 있습니다.
프런트 엔드
질문에 대한 답변
빈칸을 채우는 방법을 사용하는 경우 페이지의 원하는 위치에 텍스트를 정확하게 배치할 수 있습니다.따라서 누락된 텍스트를 문서에 추가하는 것은 비교적 쉽습니다(좀 지루하지는 않더라도).예를 들어 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');
“플레이스 홀더 문자열”과 같은 인라인 콘텐츠를 대체하려는 경우 훨씬 더 복잡해집니다.기술적으로 가능한 일이지만 페이지 레이아웃이 엉망이 될 수 있습니다.
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가 필요한 경우 Zend 또는 FPDF로 충분합니다.하지만 나는 그들과 함께 일하기 어렵고 좌절감을 느낀다.또한 API의 작동 방식 때문에 컨텐츠와 프레젠테이션, 비즈니스 로직을 분리할 수 있는 좋은 방법이 없습니다.
따라서 HTML과 CSS를 PDF 문서로 자동 변환하는 dompdf를 사용하고 있습니다.HTML 페이지와 마찬가지로 템플릿을 배치하고 표준 HTML 구문을 사용할 수 있습니다.외부 CSS 파일을 포함할 수도 있습니다.라이브러리는 완벽하지 않고 매우 복잡한 마크업이나 cSS가 엉망이 되는 경우도 있지만, 다른 기능적인 것은 찾을 수 없었습니다.
이것이 옵션인지는 모르겠지만 Zend의 pdf 라이브러리와 매우 유사하지만 추가 코드(Zend 프레임워크)를 로드할 필요는 없습니다.FPDF를 확장한 것뿐입니다.
http://www.setasign.de/products/pdf-php-solutions/fpdi/
여기서는 기본적으로 동일한 작업을 수행할 수 있습니다.PDF를 로드하고 그 위에 쓴 다음 새 PDF에 저장합니다.FPDI에서는 기본적으로 PDF를 이미지로 삽입하여 원하는 것을 추가할 수 있습니다.
그러나 이 역시 FPDF를 사용하기 때문에 사용하지 않으면 작동하지 않습니다.
Zend Framework는 기존 PDF 파일을 로드 및 편집할 수 있습니다.수정도 지원한다고 생각합니다.
프로젝트에서 문서를 작성할 때 사용하는데, 아주 잘 작동합니다.편집한 적은 없지만.
이 문서를 확인하십시오.