Snappy هي مكتبة PHP تسمح بإنشاء الصور المصغرة أو اللقطات أو ملفات PDF من عنوان URL أو صفحة html. يستخدم wkhtmltopdf وwkhtmltoimage الممتازين القائمين على webkit والمتوفرين على OSX وlinux وwindows.
سيتعين عليك تنزيل wkhtmltopdf 0.12.x
لتتمكن من استخدام Snappy.
من فضلك، قم بمراجعة الأسئلة الشائعة قبل فتح عدد جديد. Snappy عبارة عن غلاف صغير حول wkhtmltox، لذلك تم بالفعل الإجابة على الكثير من المشكلات أو حلها أو مشكلات wkhtmltox.
التكاملات التالية متاحة:
knplabs/knp-snappy-bundle
لـ Symfonybarryvdh/laravel-snappy
، لـ Laravelmvlabs/mvlabs-snappy
لإطار عمل Zend 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.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 ' );
ملاحظة: يتم استخراج هذه الثنائيات الثابتة من حزم Debian7، لذلك قد لا تكون متوافقة مع توزيعات Linux التي لا تعتمد على دبيان
إذا كنت تريد إنشاء جدول محتويات وتريد استخدام ورقة أنماط 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.