Snappy เป็นไลบรารี PHP ที่ให้ภาพขนาดย่อ สแน็ปช็อต หรือการสร้าง PDF จาก url หรือหน้า html มันใช้ wkhtmltopdf และ wkhtmltoimage ที่ใช้ webkit ที่ยอดเยี่ยมบน OSX, linux, windows
คุณจะต้องดาวน์โหลด wkhtmltopdf 0.12.x
เพื่อที่จะใช้ Snappy
กรุณาตรวจสอบคำถามที่พบบ่อยก่อนที่จะเปิดฉบับใหม่ Snappy เป็น wrapper เล็กๆ รอบๆ wkhtmltox ดังนั้นปัญหามากมายจึงมีคำตอบ แก้ไขแล้ว หรือ wkhtmltox
มีการผสานรวมต่อไปนี้:
knplabs/knp-snappy-bundle
สำหรับ Symfonybarryvdh/laravel-snappy
สำหรับ Laravelmvlabs/mvlabs-snappy
สำหรับ Zend Framework composer require knplabs/knp-snappy
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Knp Snappy Pdf ;
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
// or you can do it in two steps
$ snappy = new Pdf ();
$ snappy -> setBinary ( ' /usr/local/bin/wkhtmltopdf ' );
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
header ( ' Content-Type: application/pdf ' );
echo $ snappy -> getOutput ( ' http://www.github.com ' );
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
header ( ' Content-Type: application/pdf ' );
header ( ' Content-Disposition: attachment; filename="file.pdf" ' );
echo $ snappy -> getOutput ( ' http://www.github.com ' );
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
header ( ' Content-Type: application/pdf ' );
header ( ' Content-Disposition: attachment; filename="file.pdf" ' );
echo $ snappy -> getOutput ( array ( ' http://www.github.com ' , ' http://www.knplabs.com ' , ' http://www.php.net ' ));
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
$ snappy -> generateFromHtml ( ' <h1>Bill</h1><p>You owe me money, dude.</p> ' , ' /tmp/bill-123.pdf ' );
// Type wkhtmltopdf -H to see the list of options
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
$ snappy -> setOption ( ' disable-javascript ' , true );
$ snappy -> setOption ( ' no-background ' , true );
$ snappy -> setOption ( ' allow ' , array ( ' /path1 ' , ' /path2 ' ));
$ snappy -> setOption ( ' cookie ' , array ( ' key ' => ' value ' , ' key2 ' => ' value2 ' ));
$ snappy -> setOption ( ' post ' , array ( ' key ' => ' value ' ));
$ snappy -> setOption ( ' cover ' , ' pathToCover.html ' );
// .. or pass a cover as html
$ snappy -> setOption ( ' cover ' , ' <h1>Bill cover</h1> ' );
$ snappy -> setOption ( ' toc ' , true );
$ snappy -> setOption ( ' cache-dir ' , ' /path/to/cache/dir ' );
ตัวเลือกสามารถรีเซ็ตเป็นค่าเริ่มต้นได้ด้วยวิธี resetOptions()
$ snappy = new Pdf ( ' /usr/local/bin/wkhtmltopdf ' );
// Set some options
$ snappy -> setOption ( ' copies ' => 4 );
// ..
// Reset options
$ snappy -> resetOptions ();
หากคุณต้องการดาวน์โหลด wkhtmltopdf และ wkhtmltoimage ด้วย composer ให้เพิ่มใน composer.json
:
composer require h4cc/wkhtmltopdf-i386 0.12.x
composer require h4cc/wkhtmltoimage-i386 0.12.x
หรือสิ่งนี้หากคุณอยู่ในระบบที่ใช้ 64 บิต:
composer require h4cc/wkhtmltopdf-amd64 0.12.x
composer require h4cc/wkhtmltoimage-amd64 0.12.x
แล้วคุณก็สามารถใช้งานได้
<?php
use Knp Snappy Pdf ;
$ myProjectDirectory = ' /path/to/my/project ' ;
$ snappy = new Pdf ( $ myProjectDirectory . ' /vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386 ' );
// or
$ snappy = new Pdf ( $ myProjectDirectory . ' /vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 ' );
NB ไบนารีแบบคงที่เหล่านี้ถูกแยกออกจากแพ็คเกจ Debian7 ดังนั้นจึงอาจเข้ากันไม่ได้กับ linux distros ที่ใช้ไม่ใช่เดเบียน
หากคุณต้องการสร้างสารบัญและต้องการใช้สไตล์ชีต XSL แบบกำหนดเอง ให้ทำดังต่อไปนี้:
<?php
$ snappy = new Pdf ( ' /path/to/binary ' );
$ snappy -> setOption ( ' toc ' , true );
$ snappy -> setOption ( ' xsl-style-sheet ' , ' http://path/to/stylesheet.xsl ' ) //or local file;
$ snappy -> generateFromHtml ( ' <p>Some content</p> ' , ' test.pdf ' );
หากคุณพบข้อบกพร่อง โปรดกรอกปัญหาโดยละเอียดโดยระบุประเด็นต่อไปนี้ทั้งหมด หากคุณต้องการความช่วยเหลือ โปรดจัดเตรียมโปรแกรมสร้างสำเนาที่สมบูรณ์เพื่อที่เราจะได้ช่วยเหลือคุณตามข้อเท็จจริงมากกว่าการสันนิษฐาน
หากตัวทำซ้ำของคุณมีขนาดใหญ่ โปรดลองย่อขนาดลง มันจะช่วยให้ทุกคนจำกัดข้อผิดพลาดให้แคบลง
KNPLabs กำลังมองหาผู้ดูแล (ดูสาเหตุ)
หากสนใจสามารถเปิดประชาสัมพันธ์เพื่อขอเพิ่มเป็นผู้ดูแลได้เลย
เรายินดีที่จะรับฟังจากคุณ :)
Snappy ได้รับการพัฒนาโดยทีมงาน KnpLabs