이 문서는 FPDI 2를 참조합니다. 버전 1은 더 이상 사용되지 않으며 개발이 중단되었습니다.
FPDI는 개발자가 기존 PDF 문서의 페이지를 읽고 이를 Olivier Plathey가 개발한 FPDF의 템플릿으로 사용할 수 있도록 지원하는 PHP 클래스 모음입니다. FPDF 사본 외에 FPDI에는 특별한 PHP 확장이 필요하지 않습니다.
FPDI는 TCPDF 또는 tFPDF의 확장으로도 사용할 수 있습니다.
FPDI는 FPDF, TCPDF 또는 tFPDF와 함께 사용할 수 있으므로 기본 작곡가.json 파일에 고정 종속성을 추가하지 않았습니다. 선택한 PDF 생성 라이브러리에 종속성을 직접 추가해야 합니다.
FPDF와 함께 FPDI를 사용하려면 작곡가.json 파일에 다음을 포함하십시오.
{"require": {"setasign/fpdf": "1.8.*","setasign/fpdi": "^2.5"} }
TCPDF를 사용하려면 작곡가.json을 다음과 같이 업데이트해야 합니다.
{"요구": {"tecnickcom/tcpdf": "6.6.*","setasign/fpdi": "^2.5"} }
tFPDF를 사용하려면 작곡가.json을 다음과 같이 업데이트해야 합니다.
{"요구": {"setasign/tfpdf": "1.33.*","setasign/fpdi": "^2.3"} }
작곡가를 사용하지 않는 경우 /src 폴더에 autoload.php만 있으면 됩니다.
require_once('src/autoload.php');
PSR-4 자동 로더가 구현된 경우 다음과 같이 src 경로를 등록하면 됩니다.
$loader = new examplePsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');
버전 2는 다음과 함께 제공되는 FPDI를 처음부터 완전히 재작성한 것입니다.
네임스페이스 코드
깔끔하고 최신 코드 베이스와 스타일
PSR-4 호환 자동 로딩
최대 100% 성능 향상
적은 메모리 소비
문자열 또는 스트림 리소스에서 PDF 읽기에 대한 기본 지원
파일 헤더 앞에 "잘못된" 데이터가 있는 문서 지원
최적화된 페이지 트리 해결
개별 예외의 활용
여러 테스트 유형(단위, 기능 및 시각적 테스트)
우리는 주요 방법과 논리적 작업 흐름을 버전 1과 동일하게 유지하려고 노력했지만 버전 2로 업데이트할 때 고려해야 할 호환되지 않는 변경 사항이 있다는 점에 유의하십시오.
classes/FPDI.php
대신 src/autoload.php
파일을 사용하여 코드를 로드해야 합니다.
클래스와 특성은 이제 네임스페이스로 지정됩니다: setasignFpdi
/MediaBox
와 같이 슬래시로 시작하는 페이지 경계는 더 이상 지원되지 않습니다. 슬래시를 제거하거나 PdfReaderPageBoundaries
상수를 사용하십시오.
이제 useTemplate()
또는 getTemplateSize()
메소드의 $x, $y, $width 및 $height 매개변수에 더 논리적이고 올바른 기본값이 있습니다. 이제 너비 또는 높이로 0
전달하면 InvalidArgumentException
이 발생합니다.
getTemplateSize()
의 반환 값은 더 많은 말하기 키와 재사용성을 갖춘 배열로 변경되었습니다. w
대신 width
사용하고 h
대신 height
사용하세요.
TCPDF와 함께 FPDI를 사용하려면 FPDI
대신 TcpdfFpdi
클래스(2.1 이후, TcpdfFpdi
이전)를 사용하도록 코드를 리팩터링해야 합니다.
단일 페이지를 가져와서 새로 생성된 페이지에 배치하는 간단한 예는 다음과 같습니다.
AddPage();// 소스 파일 설정$pdf->setSourceFile("Fantastic-Speaker.pdf");// 페이지 1 가져오기$tplId = $pdf->importPage(1);// 사용 가져온 페이지를 너비 100mm로 10,10 지점에 배치합니다.$pdf->useTemplate($tplId, 10, 10, 100);$pdf->출력();
전체 최종 사용자 문서 및 API 참조는 여기에서 확인할 수 있습니다.