เอกสารนี้อ้างถึง FPDI 2 เวอร์ชัน 1 เลิกใช้แล้วและการพัฒนาถูกยกเลิก
FPDI คือชุดของคลาส PHP ที่อำนวยความสะดวกให้กับนักพัฒนาในการอ่านหน้าจากเอกสาร PDF ที่มีอยู่ และใช้เป็นเทมเพลตใน FPDF ซึ่งพัฒนาโดย Olivier Plathey นอกเหนือจากสำเนาของ FPDF แล้ว FPDI ไม่ต้องการส่วนขยาย PHP พิเศษใดๆ
FPDI ยังสามารถใช้เป็นส่วนขยายสำหรับ TCPDF หรือ tFPDF ได้เช่นกัน
เนื่องจาก FPDI สามารถใช้กับ FPDF, TCPDF หรือ tFPDF ได้ เราจึงไม่ได้เพิ่มการพึ่งพาแบบตายตัวในไฟล์ composer.json หลัก คุณต้องเพิ่มการขึ้นต่อกันให้กับไลบรารีการสร้าง PDF ที่คุณเลือกด้วยตัวเอง
หากต้องการใช้ FPDI กับ FPDF ให้รวมสิ่งต่อไปนี้ในไฟล์ composer.json ของคุณ:
{"ต้องการ": {"setasign/fpdf": "1.8.*,"setasign/fpdi": "^2.5"} -
หากคุณต้องการใช้ TCPDF คุณต้องอัปเดต composer.json เป็น:
{"ต้องการ": {"tecnickcom/tcpdf": "6.6.*,"setasign/fpdi": "^2.5"} -
หากคุณต้องการใช้ tFPDF คุณต้องอัปเดต composer.json เป็น:
{"ต้องการ": {"setasign/tfpdf": "1.33.*,"setasign/fpdi": "^2.3"} -
หากคุณไม่ได้ใช้ผู้แต่ง เพียงต้องการ autoload.php ในโฟลเดอร์ /src:
need_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:
คุณต้องโหลดโค้ดโดยใช้ไฟล์ src/autoload.php
แทน classes/FPDI.php
ตอนนี้คลาสและลักษณะถูกเนมสเปซแล้ว: setasignFpdi
ไม่รองรับขอบเขตหน้าที่ขึ้นต้นด้วยเครื่องหมายทับ เช่น /MediaBox
อีกต่อไป ลบเครื่องหมายทับหรือใช้ค่าคงที่ของ PdfReaderPageBoundaries
พารามิเตอร์ $x, $y, $width และ $height ของเมธอด useTemplate()
หรือ getTemplateSize()
มีค่าเริ่มต้นที่ถูกต้องทางตรรกะมากขึ้นในขณะนี้ การส่ง 0
เป็นความกว้างหรือความสูงจะส่งผลให้เกิด InvalidArgumentException
ทันที
ค่าที่ส่งคืนของ getTemplateSize()
เปลี่ยนเป็นอาร์เรย์ที่มีปุ่มพูดมากขึ้นและสามารถนำมาใช้ซ้ำได้: ใช้ width
แทน w
และ height
แทน h
หากคุณต้องการใช้ FPDI กับ TCPDF คุณจะต้องปรับโครงสร้างโค้ดของคุณใหม่เพื่อใช้คลาส TcpdfFpdi
(ตั้งแต่ 2.1; ก่อนหน้านี้เป็น TcpdfFpdi
) แทน FPDI
ตัวอย่างง่ายๆ ที่นำเข้าเพจเดียวและวางลงในเพจที่สร้างขึ้นใหม่:
AddPage();// ตั้งค่าไฟล์ต้นฉบับ$pdf->setSourceFile("Fantastic-Speaker.pdf");// นำเข้าหน้า 1$tplId = $pdf->importPage(1);// ใช้ หน้าที่นำเข้าและวางไว้ที่จุด 10,10 โดยมีความกว้าง 100 mm$pdf->useTemplate($tplId, 10, 10, 100);$pdf->เอาท์พุต();
เอกสารสำหรับผู้ใช้ปลายทางฉบับเต็มและข้อมูลอ้างอิง API มีอยู่ที่นี่