Snappy는 URL이나 HTML 페이지에서 썸네일, 스냅샷 또는 PDF 생성을 허용하는 PHP 라이브러리입니다. 이는 OSX, Linux, Windows에서 사용할 수 있는 뛰어난 웹킷 기반 wkhtmltopdf 및 wkhtmltoimage를 사용합니다.
Snappy를 사용하려면 wkhtmltopdf 0.12.x
를 다운로드해야 합니다.
새 호를 열기 전에 FAQ를 확인하시기 바랍니다. Snappy는 wkhtmltox를 둘러싼 작은 래퍼이므로 많은 문제가 이미 답변, 해결 또는 wkhtmltox 문제에 대해 답변되었습니다.
다음 통합을 사용할 수 있습니다.
knplabs/knp-snappy-bundle
, Symfony용barryvdh/laravel-snappy
, Laravel용mvlabs/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 ' );
NB 이러한 정적 바이너리는 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는 관리자를 찾고 있습니다(이유 확인).
관심이 있으시면 언제든지 PR을 열어 관리자로 추가해 달라고 요청하세요.
우리는 당신의 의견을 기쁘게 생각합니다 :)
Snappy는 원래 KnpLabs 팀에서 개발되었습니다.