TCPDF现在是世界上最活跃的开源项目之一, 每天都有数百万的用户使用, 并且包含在成千上万的CMS和Web应用程序中, 以使用php生成pdf文件。
要在symfony 2中使用tcpdf, 我们将添加一个包, 使我们的实现更容易。在symfony 2中, 一种好的做法是使用捆绑软件, 而不是在控制器中使用require一次来包含我们的库。该捆绑包(不是PHPExcel库)的创建者是WhiteOctober, 可以在github的官方存储库中查看源代码。
【如何使用tcpdf在Symfony 2和3中使用php创建pdf文件】要安装我们的捆绑包, 我们将在require区域中添加composer.json文件。
"whiteoctober/tcpdf-bundle": "dev-master",
如果直接在控制台中使用composer, 则执行:
$ composer require whiteoctober/tcpdf-bundle
下载了必需的组件后, 只需将捆绑包添加到你的内核(位于/app/AppKernel.php中的AppKernel.php文件), 即可:
$bundles = array(// ...new WhiteOctober\TCPDFBundle\WhiteOctoberTCPDFBundle(), // register bundle);
TCPDF允许你从html标记创建pdf(很棒吗?)。要在响应中返回PDF, 请使用以下代码:
public function returnPDFResponseFromHTML($html){
//set_time_limit(30);
uncomment this line according to your needs
// If you are not in a controller, retrieve of some way the service container and then retrieve it
//$pdf = $this->
container->
get("white_october.tcpdf")->
create('vertical', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//if you are in a controlller use :
$pdf = $this->
get("white_october.tcpdf")->
create('vertical', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->
SetAuthor('Our Code World');
$pdf->
SetTitle(('Our Code World Title'));
$pdf->
SetSubject('Our Code World Subject');
$pdf->
setFontSubsetting(true);
$pdf->
SetFont('helvetica', '', 11, '', true);
//$pdf->
SetMargins(20, 20, 40, true);
$pdf->
AddPage();
$filename = 'ourcodeworld_pdf_demo';
$pdf->
writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', $html, $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = '', $autopadding = true);
$pdf->
Output($filename.".pdf", 'I');
// This will output the PDF as a response directly}
前面的示例直接在浏览器中返回PDF响应, 现在, 如果我们想在symfony控制器中使用此函数, 我们可以简单地在任何行中调用该函数。是的, 将Output用作在线PDF时, 不需要特殊的symfony响应, 这由TCPDF库处理。然后在我们的控制器中可以使用:
public function indexAction(){
// You can send the html as you want
//$html = '<
h1>
Plain HTML<
/h1>
';
// but in this case we will render a symfony view !// We are in a controller and we can use renderView function which retrieves the html from a view// then we send that html to the user.
$html = $this->
renderView(
'Templates/template.html.twig',
array(
'someDataToView' =>
'Something'
)
);
$this->
returnPDFResponseFromHTML($html);
}
TCPDF使开发人员的工作变得非常简单。你可以在此处阅读官方的TCPDF文档以及此处的所有示例。
推荐阅读
- 如何使用请求ip免费检测php或javascript中访客的国家
- 程序员|手把手教你使用 Python 制作贪吃蛇游戏
- “App not not installed”在一台设备上
- Android(了解APK安装过程)
- Android应用程序包在手机上安装在哪里
- 将Git添加到PATH变量 - 在AppData / Local下找不到GitHub
- 我以普通用户的身份安装了Android Studio软件包。那么如何以root身份打开它呢()
- 如何在PySide / PyQt中连接QApplication()和QWidget()对象()
- 使用Jmeter在移动App上执行负载测试