PDF-API ใดที่ดีที่สุดสำหรับ PHP [ปิด]


110

PDF-API ใดที่ดีที่สุดสำหรับ PHP


6
คำถามอื่นนี้ดูเหมือนจะถูกลบออกจาก StackOverflow แล้ว
rineez

ฉันรู้คำถามเก่า แต่ฉันต้องการ MDF มันสามารถจัดการ html ที่ซับซ้อนใด ๆ ยกเว้นบางประเด็นที่ mdf บอกไปแล้วที่mpdf1.com/mpdf/limitations
dev.meghraj

ที่นี่คุณสามารถดูการเปรียบเทียบที่ดีระหว่าง mPDF และ TCPDF
Pmpr

คำตอบ:


53

โดยส่วนตัวแล้วฉันอยากจะใช้tcpdfซึ่งเป็น fpdf เวอร์ชันที่ปรับปรุงและคงอยู่


12
คุณไม่ได้ระบุเหตุผล - หนึ่งใหญ่คือการสนับสนุน Unicode ใน tcpdf ซึ่ง fpdf ขาดอย่างสิ้นเชิง tcpdf ยังคงได้รับการดูแลอย่างแข็งขัน และยังมีสถาปัตยกรรม OO ที่ดีอีกด้วย word to the wise: fpdf นั้นเป็นสิ่งเก่าที่ถูกแทนที่ด้วย tcpdf
zanlok

2
tcpdf ไม่มีคุณสมบัติที่สำคัญเช่นการฝังแบบอักษรและการตั้งค่าส่วนย่อย (สำคัญสำหรับภาษาเอเชีย)
velcrow

2
ฉันเพิ่งตรวจสอบเว็บไซต์ tcpdf และดูเหมือนว่าจะรองรับการย่อยและการฝังแบบอักษร ดูอาร์กิวเมนต์ย่อยของเมธอดSetFont tcpdf.org/fonts.php
Nerrve

1
tcpdf มีปัญหาบางอย่างเมื่อฉันใช้กับฟอนต์ urdu unicode
rineez

1
หากคุณเรียกคลาสเดียวด้วยโค้ด 24k บรรทัด "OO ที่เหมาะสม" คุณจะต้องสูง ตรวจสอบรุ่นที่ปรับโครงสร้างใหม่ของ FPDF สำหรับ OOP จริง: github.com/bubach/PdfBuilder
Christoffer Bubach

39

จากไซต์mpdf : "mPDF เป็นคลาส PHP ที่สร้างไฟล์ PDF จาก HTML ที่เข้ารหัส UTF-8 โดยอ้างอิงจาก FPDF และ HTML2FPDF พร้อมการปรับปรุงต่างๆ"

mpdf เหนือกว่า FPDF สำหรับการจัดการภาษาและการสนับสนุน UTF-8 สำหรับการสนับสนุน CJK นั้นไม่เพียง แต่รองรับการฝังฟอนต์เท่านั้น แต่ยังรองรับการตั้งค่าฟอนต์อีกด้วย (ดังนั้น CJK PDF ของคุณจะไม่ใหญ่เกินไป) TCPDF และ FPDF ไม่มีสิ่งใดใน UTF-8 และการสนับสนุนแบบอักษรของ mpdf มันยังมาพร้อมกับฟอนต์โอเพนซอร์สบางตัวในเวอร์ชัน 5.0


31

นี่เป็นเพียงการทบทวนอย่างรวดเร็วว่า fPDF ยืนหยัดต่อสู้กับ tcPDF ได้อย่างไรในด้านประสิทธิภาพของแต่ละไลบรารีฟังก์ชันพื้นฐานที่สุด

การทดสอบความเร็ว

17.0366 วินาทีในการประมวลผลไฟล์ PDF 2,000 ไฟล์โดยใช้ fPDF || 79.5982 วินาทีในการประมวลผลไฟล์ PDF 2,000 ไฟล์โดยใช้ tcPDF

ตรวจสอบขนาดไฟล์ (เป็นไบต์)

788 fPDF || 1,860 tcPDF

รหัสที่ใช้เหมือนกันมากที่สุดและแสดงผลเป็นไฟล์ PDF ที่สะอาดโดยไม่มีข้อความ นอกจากนี้ยังใช้เวอร์ชันล่าสุดของแต่ละไลบรารี ณ วันที่ 22 มิถุนายน 2554


5
มีการปรับปรุงประสิทธิภาพหลายอย่างที่สามารถปรับปรุงความเร็ว TCPDF ได้อย่างหนาแน่น (ฉันใช้เวลาจาก 1 นาทีในการสร้างไฟล์เดียวเหลือประมาณ 0.5 วินาที): tcpdf.org/performances.php
Dan Smart

1
"การปรับปรุง" เหล่านั้นจะทำงานได้ดีพอ ๆ กันกับ FPDF และจะไม่ช่วยในเกณฑ์มาตรฐาน TCPDF เป็นโค้ดประมาณ 24,000 บรรทัดในขณะที่ FPDF เป็นโค้ดประมาณ 2400 บรรทัด
Christoffer Bubach

อัปเดตลิงก์ของ@DanSmart
Albert

22

ฉันพบว่า mpdf ดีกว่า tcpdf ในแง่ของการแสดงผล html สามารถแยกวิเคราะห์รูปแบบ css ได้ดีขึ้นมากและสร้าง pdf ที่ดูคล้ายกับ html ดั้งเดิมมาก

mpdf ยังรองรับสิ่ง css เช่น border-radius และ gradient เป็นต้น

ฉันแปลกใจที่เห็นว่าทำไม mpdf จึงไม่ค่อยมีคนพูดถึงเมื่อพูดถึง html เป็น pdf

ดูตัวอย่างที่นี่http://www.mpdf1.com/mpdf/index.php?page=Examples

ฉันพบว่ามันมีประโยชน์สำหรับการออกแบบใบแจ้งหนี้ใบเสร็จรับเงินและงานพิมพ์ธรรมดา ๆ อย่างไรก็ตามในเว็บไซต์เองก็บอกว่าไฟล์ pdf ที่สร้างจาก mpdf มักจะมีขนาดใหญ่กว่า


2
ลิงก์เสีย นี่อาจเป็นลิงค์ใหม่: mpdf1.com/mpdf/index.php?page=Examples
Stefan

อัปเดตเดือนสิงหาคม 2019: ใช้สำหรับอ้างอิงmpdf.github.io
CodeJunkie

mpdf น่าเสียดายที่ดูเหมือนจะไม่สามารถจัดการกับเซลล์ตารางขนาดใหญ่ได้ดี ทันทีที่เนื้อหาเกินหน้าเว็บจะเริ่มลดขนาดลงซึ่งทำให้ไม่มีประโยชน์สำหรับโปรเจ็กต์ใด ๆ ที่มีตารางขนาดใหญ่ นอกเหนือจากนี้; ใช้งานง่ายมีประสิทธิภาพและได้รับการบันทึกไว้เป็นอย่างดี
zumek

13

ลองTCPDF ฉันคิดว่ามันดีที่สุดแล้ว

สำหรับบทแนะนำโดยละเอียดเกี่ยวกับการใช้คลาสการสร้างไฟล์ PDF ที่เป็นที่นิยมมากที่สุดสองคลาส: TCPDF และ FPDF .. โปรดไปที่ลิงค์นี้: PHP: สร้าง PDF ได้อย่างง่ายดายทันทีด้วย TCPDF และ FPDF

หวังว่าจะช่วยได้


บางครั้งทับใน Firefox ด้วยการรีเซ็ตการเชื่อมต่อ ยังไม่ได้ตรวจสอบกับเบราว์เซอร์อื่น ๆ
kta

11

โดยส่วนตัวแล้วฉันชอบใช้dompdfสำหรับหน้า PDF แบบธรรมดาเพราะมันเร็วมาก คุณเพียงแค่ป้อนแหล่งที่มา HTML และมันจะสร้างหน้าที่ต้องการ

อย่างไรก็ตามสำหรับการออกแบบที่ซับซ้อนมากขึ้นฉันชอบpdflibแบบคลาสสิกมากกว่าซึ่งมีให้เป็น pecl สำหรับ PHP มีการควบคุมการออกแบบที่ดีขึ้นและช่วยให้คุณทำการออกแบบที่ซับซ้อนมากขึ้นเช่นรูปแบบพิกเซลที่สมบูรณ์แบบ


แต่มีข้อเสียของการใช้ dompdf คือไม่ได้ผลหากคุณต้องการสร้าง pdf หลาย ๆ ไฟล์พร้อมกันหรือวนซ้ำ
hmjha

5

http://sourceforge.net/projects/html2ps/จะดีที่สุดหากคุณต้องการ css และ 3c ที่เข้ากันได้

ถ้าคุณสามารถติดตั้งซอฟต์แวร์บนเซิร์ฟเวอร์ของคุณผมขอแนะนำให้คุณใช้http://wkhtmltopdf.org/

นอกจากนี้ยังมีโมดูล drupal โดยใช้ wkhtmltopdf :)

PHP ใช้ทรัพยากรมากมายในการแปลง html เป็น pdf, imho, php ไม่ใช่ภาษาที่เหมาะสมในการทำเช่นนั้น (หากคุณคาดหวังว่าจะมีการแปลงไฟล์ครอบคลุมจำนวนมากหรือไฟล์ขนาดใหญ่)


ฉันโหวตให้ wkhtmltopdf แต่โดยเฉพาะอย่างยิ่งเมื่อใช้วิธีการเช่นการใช้ตัวแปลง PHP ภายนอกไม่ถือเป็นการสูญเสียความเร็ว ฉันคิดว่าการใช้ wkhtmltopdf หรือ prince จาก asp.net จะเร็วพอ ๆ กันกับ PHP (แม้ว่าฉันจะใช้ asp.net) แน่นอนว่า PHP ไม่มีการควบคุมกระบวนการทั้งหมดของ. net แต่ฉันจะพนันได้เลยว่ามันยังคงทำงานได้เร็วพอสำหรับโครงการส่วนใหญ่
Joel Peltonen

4

Zend_Pdfของ Zend Framework นั้นดีมาก เทียบเท่ากับ pdflib ในแง่ของการควบคุมเอาต์พุตและความซับซ้อนและพกพาสะดวกกว่าเนื่องจากเป็นโซลูชัน php ที่บริสุทธิ์ ที่กล่าวว่าช้ากว่าและใช้หน่วยความจำมากกว่า pdflib โมดูล Pecl มีประสิทธิภาพมากกว่าโซลูชัน php เสมอ

DOMPdfเป็นวิธีที่ง่ายที่สุดในการสร้าง pdf อย่างรวดเร็ว เช่นเดียวกับที่ไมค์กล่าวว่าป้อน html และส่งออกเป็น pdf ภายใต้ประทุนมีตัวเลือกให้ใช้r & ospdfหรือpdflibเป็นเครื่องมือแสดงผล


1
Zend PDF มีนัยสำคัญ (ปัญหาประสิทธิภาพการทำงานถ้าคุณฝัง PNGs กับใส) [ framework.zend.com/issues/browse/ZF-3392] นอกจากนี้ Zend PDF ยังเป็นเครื่องมือที่แย่มากในการเปลี่ยนข้อมูลเมตาบนไฟล์ PDF ของบุคคลที่สามเนื่องจากไม่สามารถจัดการอะไรที่ใกล้เคียงกับมาตรฐาน PDF เต็มรูปแบบและเกิดปัญหา อย่างไรก็ตามหากคุณไม่ต้องการคุณสมบัติเหล่านี้ Zend PDF ก็ทำงานได้ดีและรองรับ UTF-8 ได้ดี
chrishiestand

3

ฉันสร้าง XSL: FO จาก PHP เป็นการส่วนตัวและใช้Apache FOPเพื่อแปลงเป็น PDF ไม่ใช่โซลูชัน PHP แบบเนทีฟไม่มีประสิทธิภาพมากนัก แต่ก็ใช้งานได้ดีแม้ว่าคุณจะต้องการสร้าง PDF ด้วยรูปแบบที่ซับซ้อนมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.